Introducción
📘 ¿Qué es una Base de Datos?
💻 SQL (Structured Query Language)
⚙️ Primeros Pasos con SQLite
🖥️ Consejos de Terminal (Terminal Tips)
🔍 SELECT
🔢 LIMIT
🎯 WHERE
🧩 LIKE
📈 Rangos (Ranges)
📊 ORDER BY
🧮 Funciones Agregadas (Aggregate Functions)
¿Qué es una base de datos?
Una base de datos es una forma de organizar la información de modo que puedas realizar cuatro operaciones sobre ella:
-
crear
-
leer
-
actualizar
-
eliminar
Un sistema de gestión de bases de datos (DBMS, por sus siglas en inglés) es una forma de interactuar con una base de datos usando una interfaz gráfica o un lenguaje textual.
Ejemplos de DBMS: MySQL, Oracle, PostgreSQL, SQLite, Microsoft Access, MongoDB, etc.
La elección de un DBMS depende de factores como:
-
Costo: software propietario vs. software libre.
-
Nivel de soporte: el software libre y de código abierto como MySQL, PostgreSQL y SQLite tiene la desventaja de que debes configurar tú mismo la base de datos.
-
Peso: los sistemas más completos como MySQL o PostgreSQL son más pesados y requieren más recursos que sistemas más ligeros como SQLite.
En este curso comenzaremos con SQLite y luego avanzaremos a MySQL y PostgreSQL.
SQL
SQL significa Structured Query Language (Lenguaje de Consulta Estructurado). Es un lenguaje utilizado para interactuar con bases de datos, mediante el cual puedes crear, leer, actualizar y eliminar datos.
Algunos puntos importantes sobre SQL:
-
Es estructurado, como veremos en este curso.
-
Tiene palabras clave que se usan para interactuar con la base de datos.
-
Es un lenguaje de consulta: permite “preguntar” a los datos dentro de una base de datos.
En esta lección aprenderemos a escribir consultas SQL simples.
Preguntas
¿Existen subconjuntos de SQL?
SQL es un estándar tanto del American National Standards Institute (ANSI) como de la International Organization for Standardization (ISO). La mayoría de los DBMS admiten un subconjunto del lenguaje SQL. Por ejemplo, en SQLite usamos el subconjunto de SQL que este sistema soporta. Si quisiéramos migrar nuestro código a otro sistema como MySQL, probablemente tendríamos que cambiar parte de la sintaxis.
Primeros pasos con SQLite
Vale la pena destacar que SQLite no es algo que usemos solo para este curso, sino una base de datos utilizada en muchas aplicaciones: teléfonos, programas de escritorio y sitios web.
Consideremos ahora una base de datos de libros que han sido seleccionados para la lista larga del Premio Internacional Booker. Cada año hay 13 libros en la lista, y nuestra base contiene 5 años de estas listas.
Antes de comenzar a interactuar con esta base de datos:
-
Inicia sesión en Visual Studio Code para CS50. Allí escribiremos y editaremos código.
-
El entorno de SQLite ya está configurado en tu Codespace. Ábrelo en la terminal.
Consejos para la terminal
-
Para limpiar la pantalla de la terminal: Ctrl + L.
-
Para recuperar la instrucción anterior: Flecha hacia arriba.
-
Si una consulta SQL es muy larga, puedes presionar Enter y continuar en la línea siguiente.
-
Para salir de una base de datos o del entorno SQLite: .quit.
SELECT
¿Qué datos hay realmente en nuestra base de datos?
Para responder, usamos la primera palabra clave de SQL: SELECT, que nos permite seleccionar algunas (o todas) las filas de una tabla.
Esto selecciona todas las filas de la tabla llamada longlist.
El resultado contiene todas las columnas y filas, lo cual puede ser mucha información. Podemos simplificar seleccionando solo una columna, por ejemplo, el título:
Ahora vemos una lista con los títulos en esta tabla.
Pero, ¿qué pasa si queremos ver títulos y autores en los resultados de nuestra búsqueda?
Para ello, ejecutamos:
¿Es necesario usar comillas dobles (“) alrededor de los nombres de tablas y columnas?
Sí, es una buena práctica. Los nombres de tablas y columnas se llaman identificadores SQL. Las cadenas de texto usan comillas simples, para diferenciarlas de los identificadores.
¿De dónde provienen los datos de esta base?
De distintas fuentes:
-
Las listas largas (2018–2023) provienen del sitio web del Booker Prize.
-
Las calificaciones y otra información, de Goodreads.
¿Cómo sabemos qué tablas y columnas hay en una base de datos?
La estructura o esquema de la base de datos contiene esa información. Más adelante aprenderemos a obtenerlo y entenderlo.
¿SQLite 3 distingue mayúsculas de minúsculas? ¿Por qué algunas partes están en mayúsculas y otras no?
SQLite no distingue mayúsculas de minúsculas. Sin embargo, por convención:
-
Las palabras clave SQL se escriben en mayúsculas para mejorar la legibilidad.
-
Los nombres de tablas y columnas suelen ir en minúsculas.
Ejemplo:
LIMIT
Si una base de datos tuviera millones de filas, no tendría sentido seleccionar todas. Podemos usar LIMIT para mostrar solo una cantidad específica de filas: