Tipos de datos de SQLite y sus tipos de Python correspondientes

SQLite es una biblioteca basada en lenguaje C que proporciona un motor de base de datos SQL portátil y sin servidor. Tiene una arquitectura basada en archivos; por lo tanto, lee y escribe en un disco. Dado que SQLite es una base de datos de configuración cero, no se necesita instalación ni configuración antes de su uso. A partir de Python 2.5.x, SQLite3 viene por defecto con python.

En este artículo, discutiremos los tipos de datos de SQLite y sus tipos de Python correspondientes .

Clase de almacenamiento en SQLite

Una clase de almacenamiento puede llamarse una colección de tipos de datos similares. SQLite proporciona las siguientes clases de almacenamiento:

Clase de almacenamiento

valor almacenado

NULO

NULO

ENTERO

Entero con signo (1, 2, 3, 4, 5 u 8 bytes según la magnitud)

REAL

Valor de coma flotante (números de coma flotante IEEE de 8 bytes)

TEXTO

String de TEXTO (codificada en UTF-8, UTF-16BE o UTF-16LE

BLOB (objeto binario grande)

Los datos se almacenan exactamente como se ingresaron, generalmente en formato binario

El término clase de almacenamiento se puede usar conjuntamente con tipo de datos .

Tipos de datos de Python correspondientes

Los tipos de datos de SQLite y sus tipos de Python correspondientes son los siguientes

Clase de almacenamiento

Tipo de datos de Python

NULO

Ninguna

ENTERO

En t

REAL

flotar

TEXTO

calle

GOTA

bytes

La función type() se puede usar en python para obtener la clase de un argumento. En el programa a continuación, la función type() se usa para imprimir las clases de cada valor que almacenamos en una base de datos.

Nota: El programa a continuación utiliza el logotipo de GeeksforGeeks como logo.png de esta página para una demostración.

Tomemos un ejemplo en el que estamos creando una base de datos con el nombre ‘gfg’ y luego creamos una tabla llamada exam_hall que tiene algunas columnas que son las siguientes:

  1. NOMBRE (TEXTO),
  2. PIN (ENTERO),
  3. OCUPACIÓN (REAL),
  4. LOGOTIPO (BLOB).

Luego insertamos algunas filas en él y verificamos los tipos de datos de los valores obtenidos con la ayuda de consultas SQL en Python.

Python3

# Python3 program to demonstrate SQLite3 datatypes
# and corresponding Python3 types
  
# import the sqlite3 package
import sqlite3  
  
# create connection to database
cnt = sqlite3.connect('gfg.db')  
  
# Create a exam_hall relation
cnt.execute('''CREATE TABLE exam_hall(
NAME TEXT,
PIN INTEGER,
OCCUPANCY REAL,
LOGO BLOB);''')
  
# Open the logo file in read, binary mode
# read the image as binary data into a variable
fileh = open('/content/JSBinCollaborativeJavaScriptDebugging6-300x160.png', 'rb')
img = fileh.read()
  
# Insert tuples for the relation
cnt.execute('''INSERT INTO exam_hall VALUES(
'centre-a',1125,98.6,?)''', (img,))
cnt.execute('''INSERT INTO exam_hall VALUES(
NULL,1158,80.5,?)''', (img,))
  
# Query the data, print the data and its type
# note: Printing the image binary data is impractical due to its huge size
# instead number of bytes are being printed using len()
cursor = cnt.execute('''SELECT * FROM exam_hall;''')
for i in cursor:
    print(str(i[0])+" "+str(i[1])+" "+str(i[2])+" "+str(len(i[3])))
    print(str(type(i[0]))+" "+str(type(i[1]))+" " +
          str(type(i[2]))+" "+str(type(i[3]))+"\n")

Producción:

A partir de la salida de este programa, se pueden hacer las siguientes observaciones:

  1. ‘centre-a’ que se insertó como TEXT ha sido interpretado por python como str
  2. 1125, 1158 que se insertaron como INTEGER han sido interpretados por python como int
  3. 98.6, 80.5 que se insertaron como REAL han sido interpretados por python como flotantes
  4. NULL fue interpretado por python como NoneType
  5. La imagen del logotipo que se insertó en formato binario como BLOB ha sido interpretada por python como bytes .

Publicación traducida automáticamente

Artículo escrito por sanatr y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *