Curso de SQL
¿Qué aprenderás?
Si estás arrancando de cero con bases de datos, este curso te lleva de la mano desde el primer "¿qué es una tabla?" hasta escribir consultas complejas como un experto.
Y si ya conocés las bases del lenguaje SQL pero sentís que te manejás solo con lo básico, acá vas a encontrar todo lo que te falta para poder encarar cualquier desarrollo: JOINs bien entendidos, subconsultas, procedimientos almacenados, triggers y todas las herramientas que separan al que "sabe usar MySQL" del que realmente lo domina.
Al terminar el curso vas a poder planificar y diseñar una base de datos desde cero, crear y modelar sus estructuras, y escribir consultas optimizadas para resolver cualquier necesidad administrativa o funcional.
Cada tema se explica con ejemplos prácticos, implementados sobre un proyecto troncal que verás crecer progresivamente, para que puedas ver cómo se integra al ámbito profesional.
En la última unidad vas a meterte con temas de administración de la base de datos como servicio, que te inician en el rol del DBA (Database Administrator), abriendo una puerta más al mercado laboral.
Módulo 1 - Fundamentos
De qué se trata este curso de Base de Datos, cómo se integra en el ecosistema backend de la aplicación que esté haciendo.
Cuál es el objetivo que vamos a alcanzar al finalizar el curso.
Qué es una base de datos.
Qué es un servicio, diferencias con una aplicación.
Cuáles son los elementos que participan en la interacción con la base de datos.
El modelo cliente-servidor.
Bases de datos relacionales y no-relacionales
Qué hace un Sistema Gestor de Base de Datos.
MySQL: para qué se usa, dónde se usa.
Diferencia ente MariaDB, MySQL, PostgreSQL, SQL Server, Oracle y cuál elegir.
Instalar MySQL/MariaDB según el sistema operativo.
Hosting, instalación de binarios o emuladores "all in one"
Cómo acceder a través del CLI. Las credenciales de conexión, el usuario root.
Comandos básicos desde la terminal para moverse dentro del servidor MySQL.
Cómo usar el CLI como herramienta del DBA.
Herramientas GUI: HeidiSQL y DBeaver.
PHPMyAdmin como alternativa estilo web app.
Cómo conectarse al servidor de base de datos.
Cómo explorar las bases de datos.
Cómo ejecutar el código SQL que vamos a aprender.
Módulo 2 - Teoría sobre MySQL
La estructura fundamental: base de datos → tabla → fila → columna.
Las bases de datos del sistema: MYSQL e INFORMATION_SCHEMA, qué información administran.
Exploramos el PHPMyAdmin como interfaz para crear una base de datos.
Aprendemos qué es el character set y el collation.
Qué conjuntos de caracteres existen y cuáles se usan habiltualmente.
Diferencias entre latin1, utf8 y utf8mb4
Panorámica de los tipos de datos existentes.
Dónde y para qué se usan.
Los tipos de datos principales.
INT, TINYINT, SMALLINT, BIGINT: cuándo usar cada uno.
DECIMAL vs FLOAT vs DOUBLE.
Qué es la precisión del punto flotante
Los tipos de datos CHAR vs VARCHAR: diferencia real de almacenamiento
Qué son BINARY y VARBINARY.
TEXT vs BLOB y sus variantes.
Los tipos de datos DATE, TIME e YEAR.
El tipo de dato DATETIME y su diferencia con TIMESTAMP
El problema de los tipos de datos booleanos.
Los tipos BOOL y BOOLEAN.
Cómo se interpreta el BIT en MySQL / MariaDB.
Los tipos de datos para pre-definir opciones: SET y ENUM:
Qué necesidades resuelven, cuándo convienen usarlos, diferencias entre ambos y sus limitaciones.
El tipo de dato JSON. Cuándo se incoporó su soporte nativo en MySQL.
Qué herramientas ofrece y cuándo tiene sentido usarlo en una base de datos relacional.
Qué es la anchura del tipo de dato y qué representa según el tipo al que se lo defina.
Otos atributos que modifican el comportamiento de una columna.
Valores obligatorios y únicos.
Valores por defecto.
Atributos solo para números:
Qué es una clave primaria (Primary Key), por qué toda tabla suele tener una.
Las claves primarias como números de serie.
Qué son las claves externas (Foreign Keys)
Módulo 3 - Modelado de Bases de Datos
Qué es el modelado de datos y qué herramientas lo conforman: el relevo, el diagrama entidad-relación, el proceso de normalización y las pruebas de escritorio.
Definimos el proyecto que nos han solicitado: una plataforma de venta de cursos.
Detectando las entidades y los atributos de nuestro proyecto.
Como diferenciar una entidad de un atributo.
Hacemos la primera vesión rústica del diagrama con Photoshop
Cómo detectar las relaciones entre entidades.
Cómo saber cuántas relaciones tengo entre las mismas entidades.
Qué es el Foreign Key (FK) en una relación.
Qué es el grado de la relación (unión entre tablas)
Qué es la cardinalidad y cómo se obtiene (relación entre filas).
Qué reglas salen de las cardinalidades uno a uno (1:1), uno a muchos (1:N( y muchos a muchos (N:N)
Dónde se ubica el Foreign Key según el grado y la cardinalidad obtenidos
Qué es la redundancia en una base de datos y por qué se debe evitar.
La normalización como proceso de optimización del diagrama entidad-relación.
Las Formas Normales más comunes que aplican a todo DER (1FN, 2FN y 3FN).
Agregamos algunos conceptos al diagrana entidad-relación que estuvimos armando:
¿Es necesario tener un Primary Key en una relacion N:N o de Grado 3? Uso de Primary Key compuestos.
Fusionar entidades normalizadas que en realidad guardan el mismo contenido.
Uso del Foreign Key como Primary Key en las relaciones con cardinalidad 1:1
Uso del MySQL Workbench como herramienta profesional de diagramado de bases de datos.
Dónde descargarlo y cómo instalarlo.
Manejo de la interfaz de archivos (crear y exportar diagramas y modelos).
Cómo insertar tables. Cómo definir sus columnas y atributos.
Establecer relaciones en el MySQL Workbench.
Cómo diagramar una relación de Grado 3 en el MySQL Workbench.
Cómo insertar valores de prueba en el diagrama y exportar el código SQL de generación de la base de datos.
Módulo 4 - El lenguaje de consultas SQL
Reglas sintácticas de MySQL y MaríaDB.
Creación y eliminación de bases de datos:
- Instrucciones CREATE DATABASE, CREATE SCHEMA y USE.
- Eliminación con DROP DATABASE y condicionales IF EXISTS / IF NOT EXISTS.
- Comportamiento de errores en scripts de creación.
- Definición de character set y collation en DDL.
Creación de tablas en código SQL:
- Sintaxis de CREATE TABLE y definición de columnas.
- Anchura del tipo de dato y atributos por columna.
- Traslado del diagrama entidad-relación al script de creación.
- Utilidades SHOW TABLES, DESCRIBE y SHOW CREATE TABLE.
Claves primarias y valores únicos:
- Definición de PRIMARY KEY y UNIQUE como atributo o como función.
- Claves compuestas y claves candidatas.
- Tipo de dato SERIAL como atajo para identificadores secuenciales.
- Adaptación del modelo ante cambios de requerimientos.
Claves foráneas y restricciones referenciales:
- Declaración de FOREIGN KEY vinculada a la tabla de origen.
- Validación de integridad referencial en inserciones.
- Eventos ON DELETE y ON UPDATE.
- Criterios de elección entre CASCADE y RESTRICT.
Motores de almacenamiento:
- Rol del storage engine en lectura y escritura de datos.
- Instrucción ENGINE y consulta con SHOW ENGINES.
- Diferencias funcionales entre InnoDB y MyISAM.
- Impacto del motor elegido sobre claves foráneas e integridad.
Restricciones CHECK:
- Validación de valores en inserciones y actualizaciones.
- Definición inline o como restricción separada de la columna.
- Condiciones sobre una o varias columnas de la misma fila.
- Nombrado de constraints y restricción de valores booleanos.