SQLite Tutorial
Instrucciones sobre el uso de SQLite
Fundamentos de SQLite
SQLite es una biblioteca en lenguaje C que implementa un motor de base de datos SQL pequeño, rápido, autónomo, de alta fiabilidad y completo. SQLite es el motor de base de datos más utilizado en el mundo. SQLite está integrado en todos los teléfonos móviles y en la mayoría de las computadoras, y se incluye en innumerables aplicaciones que las personas usan todos los días.
Hay diferentes variantes de SQL dependiendo de qué software de base de datos estamos usando. En SQLite, los tipos de dato que incluyen son:
- BLOB
- INTEGER
- NUMERIC
- REAL
- TEXT
Dentro de los tipos INTEGER, podríamos especificar el tamaño como smallint, integer, o biginit, en el cual cada uno de ellos es manejado con un número diferente de bytes. Puede que estemos tentados a usar biginit por ejemplo, pero sería un uso innecesario de espacio que nos costará recursos a medida que nuestras filas almacenen más y más datos.
Los números REAL pueden ser de tipo real para números de punto flotante, o double precision, con más bytes asignados.
Los tipo NUMERIC representan otros tipos de números, tales como boolean (Booleanos), date (Fecha), datetime (Fecha y tiempo), numeric(scale, precision) (Para números decimales con números de dígitos específicos), time (Tiempo) y timesamp (Fecha y tiempo).
Un campo TEXT puede ser un campo char(n) , con un número fijo de caracteres. Un varchar(n), una variable con un número de caracteres que llega hasta n, o un campo más grande de tipo text, el cual no se le especifica un número de caracteres máximo. Podemos inferir por nuestra experiencia con los arreglos en C que los números asignados de caracteres para cada fila son más rápidos de indexar, ya que podemos calcular exactamente donde se encuentra cada valor. Nuestro software de base de datos nos proveerá esta representación, y usará la estructura de datos y algoritmos correctos para el almacenamiento y acceso a nuestros datos, más rápido que algo que nosotros mismos podríamos implementar.
Uso de SQLite
Ahora procedamos a abrir el IDE de CS50 y usemos la terminal para explorar SQLite, un software de gestión de base de datos. SQLite es una tecnología para el almacenamiento de datos en un disco de servidor como un archivo binario, por ende no tiene un servidor u otro software para montar. (Otras tecnologías, como Postgres y MySQL, usan un programa activo que actúa como servidor de base de datos, el cual tiene mejor desempeño pero requiere algunas de configuraciones y memoria.) En su lugar, usaremos sqlite3 en nuestro IDE como una interfaz humana para nuestro archivo de base de datos, y en nuestro código, usaremos abstracciones que puedan abrir y permitan trabajar con un archivo de base de datos de SQLite.
Empecemos por escribir en la ventana de comando sqlite3 database.db, y seremos capaces de crear una tabla en esa base de datos con el comando CREATE TABLE ‘solicitantes’ (‘id’ integer, ‘nombre’ varchar(255)); . Especificamos el nombre de nuestra nueva tabla, columna o campo y el tipo de dato. Por conveniencia, usamos 255 para nuestros campos varchar, ya que solía ser el máximo para muchas bases de datos antiguas, y son probablemente suficiente para todas las posibles realidades, sin ser muy excesivo.
Debido a que nada le pasa a nuestra ventana de comando después, podemos usar .schema y ver el esquema o descripción de nuestra tabla.
Podemos añadir una fila a nuestra base de datos hacemos uso del comando INSERTO INTO solicitantes (id, nombre) VALUES (1, ‘Penny’); , convencionalmente las mayúsculas son palabras reservadas de SQL, mientras que el resto son de nuestros datos.
Podemos ver nuestra tabla con SELECT * FROM solicitantes; .
También podemos filtrar fácilmente nuestros datos con SELECT * FROM solicitantes WHERE nombre = ‘Penny’; . Para especificar solo el campo que necesitamos, de igual manera, sería algo así SELECT nombre FROM solicitantes WHERE nombre = ‘ Penny’; .
Para actualizar nuestros datos con UPDATE solicitantes SET nombre = ‘Mattews’ WHERE id = 1; .
Podemos borrar una fila con el comando DELETE FROM solicitantes WHERE id = 1;
El IDE de CS50 también tiene una interfaz gráfica, phpLiteAdmin, el cual abre archivos de SQLite. Podemos dar doble-click en database.db (nuestra base de datos) en nuestra lista de archivos del IDE, y seremos capaces de navegar en las filas de la base de datos. Intentemos insertar una fila también, al clickear en el nombre de nuestra base de datos.
Podemos comenzar de nuevo al borrar el archivo database.db y crear un archivo en blanco con el mismo nombre. Le damos doble-click y phpLiteAdmin nuestro primer campo id, haremos que sea integer, y podemos usar la opción Primary Key (llave primaria) para indicarle a nuestra base de datos que esa columna será la usada para identificar cada registro. Usaremos Autoincrement (auto-incrementar) para que nuestra base de datos se provea por si sola del siguiente valor de id cada vez que se añada un nuevo registro, y la opción Not NULL se asegura de que no el registro de esa fila no quede vacío. Luego podemos proceder a agregar las tablas que necesitaremos en nuestra base de datos.
Podemos dar click en la opción SQL para insertar filas manualmente, o usar la opción Insert, pero escribir código para ejecutar una consulta nos conducirá datos más organizados, porque seremos capaces de ajustar todo de manera coherente.