En este capítulo se muestran distintas formas de extraer filas de las tablas a través de consultas select, desde seleccionar todos los registros, a seleccionar un sólo registro o seleccionar registros entre un rango con BETWEEN, la extracción de filas se hará de la tabla test que fue creada en el capítulo anterior.
Por defecto el cursor de sqlite3 permite extraer el valor de los campos accediendo de forma indexada a las columnas, aunque también se muestra un ejemplo de como acceder a los campos a través de la clave (nombre de la columna) o mejor dicho en forma de diccionario, este ejemplo se encuentra en el script seleccionar-datos-clave.py.
Más información sobre el módulo sqlite3
Más información sobre el módulo sqlite3
Código del capítulo del vídeo tutorial ...
seleccionar-datos.py
#IMPORTANTE codificar el script en UTF-8 import sqlite3 conexion = sqlite3.connect("sqlite3/test.sqlite3") consulta = conexion.cursor() #Extrayendo todas las filas sql = "SELECT * FROM test" if (consulta.execute(sql)): filas = consulta.fetchall() for fila in filas: print(fila[0], fila[1], fila[2], fila[3], fila[4]) #Extrayendo una sola fila sql = "SELECT * FROM test WHERE id=%s" % 2 consulta.execute(sql) fila = consulta.fetchone() print("Seleccionando del registro con id 2:", fila[0], fila[1], fila[2], fila[3], fila[4]) argumentos = (2, 3) #Extrayendo entre un rango con BETWEEN sql = "SELECT * FROM test WHERE id BETWEEN ? AND ?" consulta.execute(sql, argumentos) filas = consulta.fetchall() print("Mostrando filas con BETWEEN") for fila in filas: print(fila[0], fila[1], fila[2], fila[3], fila[4]) consulta.close() conexion.commit() conexion.close()
seleccionar-datos-clave.py
#IMPORTANTE codificar el script en UTF-8 import sqlite3 def dict_factory(cursor, row): d = {} for idx, col in enumerate(cursor.description): d[col[0]] = row[idx] return d conexion = sqlite3.connect("sqlite3/test.sqlite3") conexion.row_factory = dict_factory consulta = conexion.cursor() sql = "SELECT * FROM test" consulta.execute(sql) filas = consulta.fetchall() for fila in filas: print(fila["cadena_texto"], fila["entero"], fila["decimal"], fila["fecha"])
No hay comentarios:
Publicar un comentario