Curso de Bases de Datos en SQL

Jul 15, 2024

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

  1. Definir requerimientos del sistema.
  2. Desarrollar pantallas del sistema.
  3. 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.