Curso de Bases de Datos en SQL
Introducción
- Instructor: Lukas
- No se necesita conocimiento previo.
- Se aprenderá desde el diseño de bases de datos hasta consultas complejas.
- Recomendaciones: Suscribirse, dar like, activar la campanita y compartir.
Qué es una base de datos
- Definición: Lugar para guardar datos de manera ordenada.
- Ejemplo: Videojuego Herbert (archivos de texto como base de datos).
- Evolución: De archivos de texto a programas especializados.
- Data Centers: Conjuntos de computadoras que proveen servicios de bases de datos.
- Blockchain: Base de datos descentralizada, replicada en varias computadoras.
Tipos de Bases de Datos
Relacionales
- Definición: Basadas en relaciones entre datos, no en su orden de almacenamiento.
- Estructura: Tablas compuestas por filas y columnas.
- Optimización: Evita la repetición de información mediante el uso de claves.
- Lenguaje: Normalmente se usa SQL.
- Ejemplos: MySQL, MariaDB, PostgreSQL, SQLite, Oracle PL/SQL, Microsoft SQL Server.
No Relacionales (NoSQL)
- Definición: Diseñadas para modelos de datos específicos, con esquemas flexibles.
- Ventajas: Facilidad de desarrollo, buen rendimiento y escalabilidad.
- Formato: Usan JSON para almacenar datos.
- Ejemplos: MongoDB, CouchDB, Firebase, Hadoop, Cassandra, Voldemort.
- Comparación:
- SQL: Madurez, atomicidad, estándares definidos, sencillez en escritura.
- NoSQL: Versatilidad, facilidad de cambios en la estructura, crecimiento horizontal, optimización automatizada.
Diseño de una Base de Datos Relacional
Pasos del Diseño
- Definir requerimientos del sistema.
- Desarrollar pantallas del sistema.
- Diseñar la estructura de la base de datos.
- Identificar componentes del sistema (usuarios, clientes, control de stock, etc.).
- Predecir los componentes necesarios.
- Diseñar primero, ejecutar después.
Ejemplo de Diseño
- Componentes: Profesores, alumnos, cursos, notas, academias.
- Tablas:
- Listado de materias (con identificadores).
- Listado de alumnos (nombre, apellido, otros datos).
- Listado de calificaciones (materia, nombre del alumno, nota).
- Optimización: Usar identificadores para no repetir información.
Tipos de Datos
- Texto:
char
, varchar
, text
.
- Números:
int
, tinyint
, bigint
, float
, double
.
- Fechas:
date
, datetime
, timestamp
.
Herramientas
- SQL DBM: Herramienta online para diseño de bases de datos.
- PHPMyAdmin: Gestión de bases de datos MySQL.
- Workbench: IDE profesional para MySQL.
- Samp: Plataforma local para servidor de bases de datos.
Consultas en SQL
Tipos de Consultas
- Definir estructura:
CREATE DATABASE
, DROP DATABASE
, CREATE TABLE
, ALTER TABLE
, DROP TABLE
.
- Modificar información:
INSERT
, UPDATE
, DELETE
, SELECT
.
Creación y Modificación de Tablas
- Crear base de datos:
CREATE DATABASE nombre;
- Eliminar base de datos:
DROP DATABASE nombre;
- Crear tabla:
CREATE TABLE usuarios (
id INT(11) NOT NULL AUTO_INCREMENT,
nombre VARCHAR(80) NOT NULL,
apellido VARCHAR(80) NOT NULL,
fecha_nacimiento DATETIME,
PRIMARY KEY (id)
);
- Eliminar tabla:
DROP TABLE usuarios;
- Agregar columna:
ALTER TABLE usuarios ADD telefono VARCHAR(45) NULL;
- Eliminar columna:
ALTER TABLE usuarios DROP COLUMN telefono;
- Modificar columna:
ALTER TABLE usuarios MODIFY COLUMN telefono VARCHAR(35) NULL;
Agregar y eliminar datos
- Insertar datos:
INSERT INTO usuarios (nombre, apellido, fecha_nacimiento, telefono) VALUES ('Lukas', 'Moy', '1990-05-13 00:00:00', '123456789');
- Eliminar datos:
DELETE FROM usuarios WHERE id = 1;
- Modificar datos:
UPDATE usuarios SET nombre = 'PP', apellido = 'Angelini' WHERE id = 2;
- Consultar datos:
SELECT * FROM usuarios WHERE id = 1;
- Contar filas:
SELECT COUNT(*) FROM usuarios;
- Máximo valor:
SELECT MAX(precio) FROM productos;
- Mínimo valor:
SELECT MIN(precio) FROM productos;
- Promedio:
SELECT AVG(precio) FROM productos;
- Sumar valores:
SELECT SUM(precio) FROM productos;
Consultas con múltiples tablas
- Join:
SELECT p.*, CONCAT(u.nombre, ' ', u.apellido) AS autor
FROM publicaciones p
INNER JOIN usuarios u ON p.autor_id = u.id;
- Tipos de Join:
INNER JOIN
: Solo las coincidencias.
LEFT JOIN
: Todas de la tabla izquierda y las coincidencias de la derecha.
RIGHT JOIN
: Todas de la tabla derecha y las coincidencias de la izquierda.
FULL OUTER JOIN
: Todas de ambas tablas, sean coincidencias o no.
- Subconsulta: Consulta dentro de otra consulta.
- Unión:
UNION
para concatenar resultados de dos consultas.
- Group By: Agrupación de resultados para funciones agregadas (sum, avg, min, max, count).
Herramientas Adicionales y Referencias
- SQL ZOO: Prácticas de consultas en SQL.
- w3schools SQL: Referencias y ejemplos prácticos.
- SQLite Online: Herramienta online para practicar SQL.
Finalmente, es importante prácticas y experimentar con diferentes consultas y datos para afianzar el conocimiento y las habilidades en SQL.