Clase 02 · 21 minGratis
Bases de datos relacionales y tipos de datos
Clase 2 del curso gratis SQL desde Cero: de qué se compone una base de datos relacional (tablas, registros, columnas y campos) y qué tipos de datos existen para números, texto, fechas y booleanos.
Toca cualquier marca ▸ 0:00 de los apuntes y el video salta a ese momento. Abrir en YouTube
Para qué existen las bases de datos
Antes, encontrar un dato era mandar a alguien a una bodega llena de archivos. Las bases de datos nacen para aprovechar lo que una máquina hace mejor que nosotros: guardar, buscar, insertar y modificar información organizada, en segundos. ¿Cuántas casas se vendieron en 1995? A mano es contar año por año; con una base de datos es una consulta .
Tablas, registros, columnas y campos
Si usas Excel, ya conoces la forma: una base de datos relacional guarda la información en tablas . Excel sigue dominando el mundo porque tiene muy poca fricción; la idea del curso es que puedas hacer lo mismo, pero con más volumen, más reglas y más velocidad.
- Registro (la fila): una unidad única de información, por ejemplo, una venta. Dos registros no deberían ser idénticos .
- Columna: una característica de todos los registros, con un solo tipo de dato. Si la columna es de fechas, la base rechaza un texto cualquiera .
- Campo: la intersección de un registro y una columna; el dato concreto .
- Entidad: lo que representa una tabla (clientes, ventas, productos). Las tablas se cruzan entre sí: la venta guarda el código del usuario, y con ese código se busca su nombre en la tabla de usuarios .
Números: enteros y decimales
Decir «número» no basta. Una edad es un número entero y además tiene límites razonables: nadie tiene 1.500 años ni −3 .
- Enteros (
INT,INTEGER, y variantes por tamaño): un entero de 8 bits va de −128 a 127, uno de 64 bits llega a más de nueve trillones . Elegir el tamaño justo hace la base más eficiente . - Decimales (
DECIMAL,FLOAT,REAL): para precios, medidas o una edad de 5.3 años si el sistema la necesita .
Texto
CHAR(n): exactamentencaracteres. Útil para códigos fijos, como el de un país.VARCHAR(n): hastancaracteres.VARCHAR(50)guarda un nombre de hasta 50 letras .TEXT: texto sin un límite práctico.
Fechas, horas y booleanos
DATE: año, mes y día.DATETIMEsuma la hora.TIMESTAMP: la «huella de tiempo» exacta de un evento, hasta el milisegundo .BOOLEAN: verdadero o falso. Muchas bases lo guardan como 1 y 0 .
Hay más tipos especiales (JSON, geográficos, binarios…) que se componen de estos básicos .
El tipo como regla
Cada motor aplica los tipos a su manera. SQLite, el que usamos en el editor,
es flexible por defecto, pero con STRICT se comporta como las bases
tradicionales: si el dato no es del tipo de la columna, lo rechaza. Ejecuta el
bloque y lee el error:
CHECK es una restricción: una regla adicional sobre los valores. Cambia
'veintinueve' por 29 y vuelve a ejecutar; luego prueba con -3.
Tablas que se relacionan
Una tabla de salarios y otra de empleados solo pueden cruzarse si comparten
una columna con la misma información . Hay formas típicas de
organizar esas relaciones, como el modelo estrella o el copo de nieve
, y todas persiguen lo mismo: que no le pagues a alguien que
no existe, ni que una tabla diga nombre y la otra nombres para el mismo
dato . La clase 3 formaliza esto con las llaves.
El reto de esta clase
Crea una tabla productos con nombre (texto), precio (decimal, mayor que
cero) y stock (entero, no negativo), e inserta dos productos válidos.
