21. BBDD - manuelmarinduque/Apuntes_Python_3 GitHub Wiki
-
Importar librería psycopg2.
-
Crear String variable datos de conexión en la que se indique el host, nombre de la BBDD (dbname), el usuario y su contraseña.
-
Crear variable conexión, la cual crea y abre la BBDD, usando la librería psycopg2 con el método connect(variable datos).
- Es necesario controlar con una excepción la creación de la BBDD, para que no aparezca error en la ejecución del programa debido a una BBDD ya existente.
-
Crear variable puntero, la cual sirve para ejecutar consultas y manejar sus resultados, usando la variable conexión con el método cursor().
-
Ejecutar instrucción SQL (query), usando la variable puntero con el método execute(instrucción SQL). La instrucción SQL debe estar entre triple comilla simple:
-
Manejar los resultados de la consulta: Realizar CRUD:
-
Confirmar los cambios hechos en la BBDD, usando la variable conexión con el método commit().
-
Cerrar puntero, usando la variable puntero con el método close().
-
Cerrar conexión, usando la variable conexión con el método close().
Crear una lista compuesta de tuplas con los valores a insertar correspondiente a los campos de la tabla. Las tuplas son los registros a insertar. Luego, usando la variable puntero, ejecutar el método executemany(instrucción insert con %s, lista), donde en values de la instrucción insert se escribe entre paréntesis tantos %s como campos a insertar en la tabla o NULL en los campos a omitir.
Los registros de una tabla se obtienen con la instrucción select. Luego, usando la variable puntero, ejecutar el método fetchall() que devuelve una lista compuesta de tuplas correspondiente a todos los registros, por tanto se debe crear la lista para almacenarlos. Para manipular los registros usar un bucle for que recorra la lista y también usar las funciones de lista y tuplas dependiendo de la funcionalidad del programa.
Nota: Crear funciones que definan una instrucción SQL a partir de los parámetros que reciban y retornen un String que sea pasado al método execute()