Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- #
- # Bases de datos RELACIONALES en Python: existe una interfaz de programación común
- # para todos los motores de bbdd --> es una API de programación API-db
- #
- # la biblioteca std solo soporta SQLite. Si quiero trabajar con otros
- # productos debo instalar bibliotecas de terceros
- from pprint import pprint
- """
- MySQL (o MariaDB): mysql-connector-python, PyMySQL, MySQLdb
- PostgreSQL: psycopg, pg8000
- SQLite : (en biblio std): sqlite3
- SQL Server: pymssql, pyodbc
- Oracle: cx_Oracle
- """
- import sqlite3
- # Me conecto a una base de datos (si no existe la crea)
- conn = sqlite3.connect("base.sqlite")
- # creo una variable cursor para ejecutar consultas en SQL
- cursor = conn.cursor()
- # Creo una tabla Personas
- cursor.execute("CREATE TABLE IF NOT EXISTS Personas(nombre TEXT, edad NUMERIC)")
- # confirmo los cambios
- conn.commit()
- # creo una tupla de datos para insertar en la tabla
- personas = (
- ("Juan",34),
- ("Ana", 11),
- ("Rocio", 19),
- ("Juana", 29),
- ("Sofia",48)
- )
- # forma no recomendada, susceptible de un ataque de sql injection
- # for nombre,edad in personas:
- # cursor.execute(f"INSERT INTO Personas Values('{nombre}', {edad})")
- # conn.commit()
- # forma recomendada
- for nombre,edad in personas:
- cursor.execute("INSERT INTO Personas VALUES(?,?)",(nombre, edad))
- conn.commit()
- # si quiero imprimir por consola los datos
- cursor.execute("SELECT * FROM Personas")
- # vuelco los datos del cursor y éste queda vacío
- datos = cursor.fetchall() # fetchone() para mostrar un solo dato
- pprint(datos)
- # cierro la base de datos
- conn.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement