Advertisement
teslariu

sqlite final

Oct 4th, 2022
1,118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.65 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. # Bases de datos RELACIONALES en Python: existe una interfaz de programación común
  5. # para todos los motores de bbdd --> es una API de programación API-db
  6. #
  7. # la biblioteca std solo soporta SQLite. Si quiero trabajar con otros
  8. # productos debo instalar bibliotecas de terceros
  9.  
  10. from pprint import pprint
  11.  
  12.  
  13. """
  14. MySQL (o MariaDB): mysql-connector-python, PyMySQL, MySQLdb
  15.  
  16. PostgreSQL: psycopg, pg8000
  17.  
  18. SQLite : (en biblio std): sqlite3
  19.  
  20. SQL Server: pymssql, pyodbc
  21.  
  22. Oracle: cx_Oracle
  23.  
  24. """
  25. import sqlite3
  26.  
  27. # Me conecto a una base de datos (si no existe la crea)
  28. conn = sqlite3.connect("base.sqlite")
  29.  
  30. # creo una variable cursor para ejecutar consultas en SQL
  31. cursor = conn.cursor()
  32.  
  33. # Creo una tabla Personas
  34. cursor.execute("CREATE TABLE IF NOT EXISTS Personas(nombre TEXT, edad NUMERIC)")
  35.  
  36. # confirmo los cambios
  37. conn.commit()
  38.  
  39. # creo una tupla de datos para insertar en la tabla
  40. personas = (
  41.     ("Juan",34),
  42.     ("Ana", 11),
  43.     ("Rocio", 19),
  44.     ("Juana", 29),
  45.     ("Sofia",48)
  46. )
  47. # forma no recomendada, susceptible de un ataque de sql injection
  48. # for nombre,edad in personas:
  49. #    cursor.execute(f"INSERT INTO Personas Values('{nombre}', {edad})")
  50. # conn.commit()
  51.  
  52. # forma recomendada
  53. for nombre,edad in personas:
  54.     cursor.execute("INSERT INTO Personas VALUES(?,?)",(nombre, edad))
  55. conn.commit()
  56.  
  57. # si quiero imprimir por consola los datos
  58. cursor.execute("SELECT * FROM Personas")
  59.  
  60. # vuelco los datos del cursor y éste queda vacío
  61. datos = cursor.fetchall()  # fetchone() para mostrar un solo dato
  62. pprint(datos)
  63.  
  64. # cierro la base de datos
  65. conn.close()
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement