Cómo instalar y utilizar SQLite en Ubuntu 20.04

El autor seleccionó el Fondo de Código Libre y Abierto para recibir una donación como parte del programa Write for DOnations.

Introducción

SQLite es un sistema de gestión de bases de datos libre y multiplataforma. Es popular por su eficiencia y capacidad para interactuar con muchos lenguajes de programación diferentes.

En este tutorial instalará SQLite en Ubuntu 20.04. A continuación, creará una base de datos, leerá datos de ella, insertará elementos, eliminará elementos y unirá elementos de tablas separadas.

Nota: Este tutorial incluye instrucciones prácticas para instalar y utilizar SQLite. No cubre cuestiones conceptuales más amplias ni preocupaciones de producción, como por ejemplo cuándo se debe, o no, considerar el uso de una base de datos SQLite. Para una excelente visión general de las bases de datos relacionales más populares y su comparación, consulte nuestro artículo, SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.

Además, muchos lenguajes mantienen integraciones con SQLite. Para obtener instrucciones sobre el uso de SQLite dentro de su código Python, consulte nuestro tutorial, Cómo utilizar el módulo sqlite3 en Python 3.

Requisitos previos

Para completar este tutorial, necesitará:

  • Una máquina o servidor local que ejecute Ubuntu 20.04. Para configurar un servidor, incluyendo un usuario sudo no root y un firewall, puedes crear un Droplet de DigitalOcean que ejecute Ubuntu 20.04 y luego seguir nuestra Guía de configuración inicial del servidor.

Paso 1 – Instalar SQLite en Ubuntu 20.04

Para instalar la interfaz de línea de comandos de SQLite en Ubuntu, primero actualice su lista de paquetes:

  • sudo apt update

Ahora instale SQLite:

  • sudo apt install sqlite3

Para verificar la instalación, compruebe la versión del software:

  • sqlite --version

Recibirá una salida como esta:

Output
3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837balt1

Con SQLite instalado, ya está listo para crear una nueva base de datos.

Paso 2 – Crear una base de datos SQLite

En este paso crearás una base de datos que contenga diferentes tiburones y sus atributos. Para crear la base de datos, abra su terminal y ejecute este comando sqlite3:

  • sqlite3 sharks.db

Esto creará una nueva base de datos llamada sharks. Si el archivo sharks.db ya existe, SQLite abrirá una conexión a él; si no existe, SQLite lo creará.

Recibirá una salida como esta:

Output
SQLite version 3.31.1 2020-01-27 19:55:54Enter ".help" for usage hints.

A continuación, su prompt cambiará. Un nuevo prefijo, sqlite>, aparece ahora:

    Con su base de datos Shark creada, ahora creará una nueva tabla y la rellenará con datos.

    Paso 3 – Crear una tabla SQLite

    Las bases de datos SQLite se organizan en tablas. Las tablas almacenan información. Para visualizar mejor una tabla, se pueden imaginar filas y columnas.

    El resto de este tutorial seguirá una convención común para introducir los comandos de SQLite. Los comandos de SQLite van en mayúsculas y la información del usuario en minúsculas. Las líneas deben terminar con un punto y coma.

    Ahora vamos a crear una tabla y algunas columnas para varios datos:

    • Un ID
    • El nombre del tiburón
    • El tipo de tiburón
    • La longitud media del tiburón (en centímetros)

    Usa el siguiente comando para crear la tabla:

    • CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);

    Usar NOT NULL hace que ese campo sea obligatorio. Hablaremos de NOT NULL con más detalle en la siguiente sección.

    Después de crear la tabla, volverá un prompt vacío. Ahora vamos a insertar algunos valores en ella.

    Inserción de valores en tablas

    En SQLite, el comando para insertar valores en una tabla sigue esta forma general:

    • INSERT INTO tablename VALUES(values go here);

    Donde tablename es el nombre de su tabla, y values va dentro de paréntesis.

    Ahora inserte tres filas de VALUES en su tabla sharks:

    • INSERT INTO sharks VALUES (1, "Sammy", "Greenland Shark", 427);
    • INSERT INTO sharks VALUES (2, "Alyoshka", "Great White Shark", 600);
    • INSERT INTO sharks VALUES (3, "Himari", "Megaladon", 1800);

    Como antes especificó NOT NULL para cada una de las variables de su tabla, debe introducir un valor para cada una.

    Por ejemplo, intente añadir otro tiburón sin establecer su longitud:

    • INSERT INTO sharks VALUES (4, "Faiza", "Hammerhead Shark");

    Recibirá este error:

    Output
    Error: table sharks has 4 columns but 3 values were supplied

    En este paso ha creado una tabla y ha insertado valores en ella. En el siguiente paso leerás desde la tabla de tu base de datos.

    Paso 4 – Lectura de tablas en SQLite

    En este paso, nos centraremos en los métodos más básicos de lectura de datos de una tabla. Reconocer que SQLite proporciona métodos más específicos para ver los datos en las tablas.

    Para ver su tabla con todos los valores insertados, utilice SELECT:

    • SELECT * FROM sharks;

    Verá las entradas previamente insertadas:

    Output
    1|Sammy|Greenland Shark|4272|Alyoshka|Great White Shark|6003|Himari|Megaladon|1800

    Para ver una entrada en función de su id (los valores que establecimos manualmente), añade el comando WHERE a tu consulta:

    • SELECT * FROM sharks WHERE id IS 1;

    Esto devolverá el tiburón cuyo id sea igual a 1:

    Output
    1|Sammy|Greenland Shark|427

    Veamos con más detalle este comando.

    1. Primero, SELECT todos los valores (*) de nuestra base de datos, sharks.
    2. Después, miramos todos los valores id.
    3. Después, devolvemos todas las entradas de la tabla en las que id es igual a 1.

    Hasta ahora has creado una tabla, has insertado datos en ella y has consultado esos datos guardados. Ahora va a actualizar la tabla existente.

    Paso 5 – Actualización de tablas en SQLite

    En las dos secciones siguientes primero añadirá una nueva columna en su tabla existente y luego actualizará los valores existentes en la tabla.

    Añadir columnas a tablas SQLite

    SQLite le permite cambiar su tabla utilizando el comando ALTER TABLE. Esto significa que puede crear nuevas filas y columnas, o modificar las filas y columnas existentes.

    Use ALTER TABLEpara crear una nueva columna. Esta nueva columna registrará la edad de cada tiburón en años:

    • ALTER TABLE sharks ADD COLUMN age integer;

    Ahora tienes una quinta columna, age.

    Actualización de valores en tablas SQLite

    Usando el comando UPDATE, añade nuevos valores age para cada uno de tus tiburones:

    • UPDATE sharks SET age = 272 WHERE id=1;
    • UPDATE sharks SET age = 70 WHERE id=2;
    • UPDATE sharks SET age = 40 WHERE id=3;
    Output
    1|Sammy|Greenland Shark|427|2722|Alyoshka|Great White Shark|600|703|Himari|Megaladon|1800|40

    En este paso has alterado la composición de tu tabla y luego has actualizado valores dentro de la tabla. En el siguiente paso borrarás información de una tabla.

    Paso 6 – Borrar información en SQLite

    En este paso borrarás las entradas de tu tabla basándote en la evaluación de un argumento.

    En el siguiente comando estás consultando tu base de datos y solicitando que borre todos los tiburones de tu tabla sharks cuya edad sea inferior a 200:

    • DELETE FROM sharks WHERE age <= 200;

    Al teclear SELECT * FROM sharks; se verificará que Alyoshka y Himari, que tenían menos de 200 años cada uno, fueron borrados. Sólo queda Sammy el tiburón de Groenlandia:

    Output
    1|Sammy|Greenland Shark|427|272

    Paso 7 – Unir información en SQLite

    Imaginemos que tuviéramos dos tablas: nuestra tabla actual sharks y una tabla endangered. Ahora bien, ¿qué pasaría si la tabla endangered tuviera un valor id que mapeara a los id de tu tabla sharks, y también tuviera un valor status que indicara el estado de conservación de cada tiburón?

    Si quisieras consultar los datos de ambas tablas, podrías utilizar uno de los cuatro comandos de unión de SQLite:

    • INNER JOIN
    • OUTER JOIN
    • LEFT JOIN
    • CROSS JOIN

    Creemos esa segunda tabla y luego utilizamos INNER JOIN para unir algunos datos.

    Primero, cree su tabla endangered:

    • CREATE TABLE endangered (id integer NOT NULL, status text NOT NULL);
    • INSERT INTO endangered VALUES (1, "near threatened");

    Ahora una sus tablas:

    • SELECT * FROM sharks INNER JOIN endangered on sharks.id = endangered.id;`

    Su salida se verá así:

    Output
    1|Sammy|Greenland Shark|427|272|1|near threatened

    Note que la salida también incluye el valor id de endangered. Puede especificar la salida deseada con un comando más explícito:

    • SELECT sharks.id, sharks.name, sharks.sharktype, sharks.length, sharks.age, endangered.status FROM sharks INNER JOIN endangered on sharks.id = endangered.id;

    Esta vez la salida excluye el segundo valor id:

    Output
    1|Sammy|Greenland Shark|427|272|near threatened

    Ahora ha unido con éxito la información de múltiples tablas.

    Conclusión

    SQLite es una herramienta útil para la gestión de bases de datos. Uno puede crear rápidamente una base de datos y manipularla con varios comandos. Siguiendo este tutorial, ahora tiene una comprensión básica de SQLite y está preparado para profundizar en este sistema de gestión de bases de datos.

    Para una excelente visión general de los sistemas de bases de datos relacionales y cómo se comparan, echa un vistazo a nuestro artículo, SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.

    Además, muchos lenguajes mantienen integraciones con SQLite. Para obtener instrucciones sobre el uso de SQLite dentro de su código Python, consulte nuestro tutorial, Cómo utilizar el módulo sqlite3 en Python 3.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada.