Bases de datos relacionales y SQL
Clase de lectura. Antes de instalar MySQL, entendé qué es una base de datos, cómo se organiza en tablas y para qué sirve el lenguaje SQL.
Idea clave
Una base de datos relacional guarda la información en tablas relacionadas entre sí. SQL (Structured Query Language) es el lenguaje estándar para crear esas tablas, cargar datos y, sobre todo, consultarlos.1. Base de datos y sistema gestor (SGBD)
Una base de datos es un conjunto organizado de datos. El programa que la administra es el sistema gestor de bases de datos (SGBD o DBMS): se encarga de guardar, proteger y devolver los datos cuando se los pedís. MySQL es uno de los SGBD relacionales más usados del mundo; es de código abierto (licencia GPL) y funciona como cliente/servidor:
- Servidor MySQL: el “motor” que guarda los datos y ejecuta las consultas.
- Cliente: el programa desde el que escribís SQL, como MySQL Workbench o la consola
mysql.
2. El modelo relacional: tablas, filas y columnas
Cada tabla representa una cosa del mundo real (alumnos, cursos, profesores). Las columnas son los atributos y cada fila (registro) es un elemento. Así se ve la tabla alumnos de la base de práctica tablas_libro:
| ID_ALUMNO | NOMBRE | APELLIDOS | F_NACIMIENTO |
|---|---|---|---|
| 1 | Pablo | Hernandaz Mata | 1995-03-14 |
| 2 | Jeremias | Santo Lote | 1993-07-12 |
| 3 | Teresa | Lomas Trillo | 1989-06-19 |
Todas las filas de una columna tienen el mismo tipo de dato. Los principales en MySQL:
| Categoría | Tipos | Ejemplo |
|---|---|---|
| Numéricos | INT, BIGINT, DECIMAL(10,2) | cantidad, precio |
| Texto | VARCHAR(n), CHAR(n), TEXT, ENUM | nombre, ciudad |
| Fecha y hora | DATE, DATETIME, TIMESTAMP, TIME, YEAR | fecha de venta |
| Otros | JSON, tipos espaciales | datos semiestructurados, mapas |
Para montos usá DECIMAL
DECIMAL guarda valores exactos; FLOAT y DOUBLE son aproximados. En tablas_libro los precios son FLOAT y por eso SELECT CANTIDAD * PRECIO FROM lineas_factura devuelve 27.780000686645508 en lugar de 27.78.3. Claves: cómo se identifican y conectan las filas
- Clave primaria (PRIMARY KEY): identifica cada fila de forma única y no admite repetidos ni vacíos (por ejemplo,
alumnos.ID_ALUMNO). - Clave foránea (FOREIGN KEY): una columna que apunta a la clave primaria de otra tabla (por ejemplo,
cursos.ID_PROFE→profesores.ID_PROFE). Así se relacionan las tablas, y MySQL impide asignar a un curso un profesor que no existe.
Separar la información en tablas relacionadas evita repetir datos (el nombre del profesor se guarda una sola vez, aunque dicte varios cursos) y mantiene la información consistente.
4. ¿Qué es SQL?
SQL es un lenguaje declarativo: le decís qué datos querés y el motor decide cómo buscarlos. Sus instrucciones se agrupan así:
| Grupo | Para qué | Instrucciones |
|---|---|---|
| DDL · definición | Crear y modificar la estructura | CREATE, ALTER, DROP |
| DML · manipulación | Cargar y cambiar datos | INSERT, UPDATE, DELETE |
| DQL · consulta | Leer y analizar datos | SELECT |
| DCL · control | Permisos de usuarios | GRANT, REVOKE |
-- DDL: crear la tabla (así está en tablasLibro.sql)
CREATE TABLE alumnos (
ID_ALUMNO INT NOT NULL,
NOMBRE VARCHAR(30) NOT NULL,
APELLIDOS VARCHAR(50) NOT NULL,
F_NACIMIENTO DATE NOT NULL,
PRIMARY KEY (ID_ALUMNO)
);
-- DML: cargar un registro
INSERT INTO alumnos VALUES (1, 'Pablo', 'Hernandaz Mata', '1995-03-14');
-- DQL: consultar
SELECT NOMBRE, APELLIDOS FROM alumnos WHERE F_NACIMIENTO >= '1992-01-01';5. ¿Por qué SQL en Business Intelligence?
- La mayoría de los datos de una empresa (ventas, stock, clientes) vive en bases de datos relacionales.
- Con SQL extraés, filtrás y resumís millones de filas directamente en el servidor, antes de llevarlas a Excel o Power BI.
- Es un estándar: lo que aprendas en MySQL sirve, con pocas diferencias, en SQL Server, PostgreSQL u Oracle.
Ojo con DELETE y UPDATE
UnDELETE o UPDATE sin WHERE afecta a todas las filas de la tabla. Probá siempre primero con un SELECT usando el mismo filtro.Bibliografía
- MySQL 8.0 Reference Manual. What is MySQL?.
- MySQL 8.0 Reference Manual. Chapter 5 Tutorial.
- MySQL 8.0 Reference Manual. Creating a Table.
- MySQL 8.0 Reference Manual. Chapter 13 Data Types.
- MySQL 8.0 Reference Manual. FOREIGN KEY Constraints.
El manual oficial de MySQL está en inglés; podés usar el traductor del navegador.
Siguiente clase: Instalación de MySQL.
