Subido por kladel8

SQL desde Principiante hasta Experto: Guía Completa

Anuncio
Índice: SQL desde Principiante hasta Experto
Sección 1: Introducción a SQL
1. ¿Qué es SQL?
1.1 Historia y evolución de SQL
1.2 Bases de datos relacionales vs no relacionales
1.3 Sistemas de gestión de bases de datos (DBMS): MySQL, PostgreSQL, SQL
Server y más
1.4 Instalación y configuración de un entorno SQL
2. Conceptos básicos de bases de datos
2.1 Tablas, filas y columnas
2.2 Tipos de datos en SQL
2.3 Claves primarias y foráneas
3. Primeros pasos con SQL
3.1 Creación de bases de datos
3.2 Creación de tablas
3.3 Insertar datos en tablas
3.4 Consultas básicas con SELECT
Sección 2: Manipulación de Datos (DML - Data Manipulation Language)
4. Recuperar datos
4.1 Filtrar resultados con WHERE
4.2 Ordenar resultados con ORDER BY
4.3 Uso de funciones de agregación: SUM, AVG, COUNT, MAX, MIN
4.4 Agrupar datos con GROUP BY y HAVING
5. Modificar y eliminar datos
5.1 Actualizar registros con UPDATE
5.2 Eliminar registros con DELETE
5.3 Buenas prácticas al modificar datos
Sección 3: Definición de Datos (DDL - Data Definition Language)
6. Gestión de esquemas y tablas
6.1 Creación y modificación de tablas (CREATE, ALTER, DROP)
6.2 Restricciones en tablas: NOT NULL, UNIQUE, CHECK, DEFAULT
6.3 Índices en SQL: creación y usos
7. Relaciones y claves
7.1 Claves foráneas y relaciones entre tablas
7.2 Integridad referencial y reglas de cascada
Sección 4: Consultas Intermedias y Avanzadas
8. Joins y combinaciones de tablas
8.1 Tipos de JOIN: INNER, LEFT, RIGHT, FULL
8.2 Uso práctico de joins para análisis de datos
9. Subconsultas y consultas anidadas
9.1 Subconsultas correlacionadas
9.2 Subconsultas en WHERE, SELECT y FROM
10. Operaciones avanzadas en SQL
10.1 Unión de resultados con UNION y UNION ALL
10.2 Operaciones de conjuntos: INTERSECT, EXCEPT
11. Funciones avanzadas
11.1 Funciones de ventana (OVER, PARTITION BY)
11.2 Operaciones con fechas y tiempos
11.3 Funciones avanzadas de texto
Sección 5: Optimización y Buenas Prácticas
12. Índices y rendimiento
12.1 Cómo funcionan los índices
12.2 Cuándo usar índices
12.3 Optimización de consultas con ejemplos
13. Transacciones y control de concurrencia
13.1 Conceptos de transacciones: COMMIT, ROLLBACK, SAVEPOINT
13.2 Aislamiento de transacciones y niveles (READ UNCOMMITTED, SERIALIZABLE)
14. Manejo de errores y debugging en SQL
14.1 Detectar y manejar errores comunes
14.2 Logs y herramientas de debugging
Sección 6: Temas Avanzados y Casos Prácticos
15. Procedimientos almacenados, vistas y triggers
15.1 Creación de vistas
15.2 Introducción a procedimientos almacenados (CREATE PROCEDURE)
15.3 Triggers: conceptos y ejemplos
16. Seguridad en bases de datos
16.1 Gestión de usuarios y permisos
16.2 Encriptación de datos y mejores prácticas
17. SQL dinámico y programático
17.1 Uso de SQL con otros lenguajes (Python, R, etc.)
17.2 Introducción a ORMs (Object-Relational Mappers): SQLAlchemy, Django
ORM
Sección 7: Proyectos y Casos Prácticos
18. Análisis de datos con SQL
18.1 Tablas grandes: estrategias para manejar Big Data
18.2 Informes y visualizaciones básicas
19. Proyectos integradores
19.1 Gestión de inventarios
19.2 Análisis de ventas y clientes
19.3 Creación de un sistema de gestión para una librería
Anexos




A. Recursos adicionales para aprender SQL
B. Comparación entre DBMS populares
C. Respuestas a ejercicios prácticos
D. Glosario de términos
Capítulo 1: ¿Qué es SQL?
1.1 Historia y evolución de SQL
SQL (Structured Query Language) es un lenguaje estándar para interactuar con bases de
datos relacionales. Fue desarrollado en los años 70 por IBM y se convirtió en un estándar
reconocido por ANSI en 1986.
Algunos sistemas populares que implementan SQL son:




MySQL (de código abierto, ideal para aplicaciones web).
PostgreSQL (con características avanzadas y extensibilidad).
Microsoft SQL Server (orientado a empresas).
SQLite (embebido, ligero y portátil).
Aplicación práctica: SQL permite realizar operaciones como:



Crear bases de datos y tablas.
Insertar, consultar, actualizar y eliminar datos.
Gestionar la estructura de las bases de datos.
1.2 Bases de datos relacionales vs no relacionales
Las bases de datos relacionales organizan la información en tablas relacionadas entre sí
mediante claves. Por ejemplo:


Una tabla de "Clientes".
Una tabla de "Órdenes", relacionada con los clientes mediante una clave foránea.
En contraste, las bases de datos no relacionales (como MongoDB) usan estructuras más
flexibles, como documentos JSON.
Ventajas de las bases de datos relacionales:


Consistencia y normalización de datos.
Facilidad para realizar consultas complejas con SQL.
1.3 Sistemas de gestión de bases de datos (DBMS)
Un DBMS es un software que permite gestionar bases de datos. MySQL es uno de los más
populares y es ideal para comenzar con SQL debido a su simplicidad y amplia
documentación.
Práctica: Configuración de MySQL
1. Instalar MySQL: Descarga desde https://www.mysql.com/.
2. Configurar un cliente: Usa MySQL Workbench o la línea de comandos (CLI) para
interactuar con el servidor de MySQL.
1.4 Instalación y configuración de un entorno SQL
Antes de trabajar con MySQL, configura el entorno:
1. Instalación básica
o
o
Descarga e instala MySQL Community Server.
Durante la instalación, configura una contraseña para el usuario root.
2. Acceso a MySQL
o
Desde MySQL Workbench o CLI, inicia sesión:
bash
Copiar código
mysql -u root -p
Ingresa tu contraseña cuando se solicite.
Ejemplo práctico: Primera interacción con MySQL
Crear una base de datos y una tabla simple
A continuación, un ejercicio básico para entender la sintaxis y estructura de SQL.
Paso 1: Crear una base de datos
sql
Copiar código
-- Crear una nueva base de datos llamada "Libreria"
CREATE DATABASE Libreria;
-- Seleccionar la base de datos para usarla
USE Libreria;
Explicación:


CREATE DATABASE: Crea una base de datos llamada "Libreria".
USE: Indica que todas las operaciones siguientes se realizarán en esta base de datos.
Paso 2: Crear una tabla
sql
Copiar código
-- Crear una tabla para almacenar información de libros
CREATE TABLE Libros (
ID INT AUTO_INCREMENT PRIMARY KEY, -- Identificador único para cada
libro
Titulo VARCHAR(255) NOT NULL,
-- Título del libro, obligatorio
Autor VARCHAR(255),
-- Nombre del autor
Precio DECIMAL(8,2)
-- Precio del libro con dos
decimales
);
Explicación:




ID: Es una clave primaria que se incrementa automáticamente con cada nuevo registro.
Titulo: Almacena el título del libro y no permite valores nulos (NOT NULL).
Autor: Almacena el nombre del autor.
Precio: Almacena el precio, con hasta 8 dígitos y 2 decimales.
Paso 3: Insertar datos en la tabla
sql
Copiar código
-- Insertar datos en la tabla Libros
INSERT INTO Libros (Titulo, Autor, Precio)
VALUES
('El Quijote', 'Miguel de Cervantes', 15.99),
('Cien Años de Soledad', 'Gabriel García Márquez', 12.49),
('1984', 'George Orwell', 9.99);
Paso 4: Consultar datos de la tabla
sql
Copiar código
-- Consultar todos los registros de la tabla Libros
SELECT * FROM Libros;
Resultado esperado:
ID
Titulo
1 El Quijote
Autor
Precio
Miguel de Cervantes
15.99
2 Cien Años de Soledad Gabriel García Márquez 12.49
3 1984
George Orwell
Conclusión del capítulo
9.99
En este capítulo hemos aprendido:
1.
2.
3.
4.
Qué es SQL y su importancia en bases de datos relacionales.
La diferencia entre bases de datos relacionales y no relacionales.
Cómo configurar MySQL para trabajar con SQL.
Cómo crear, usar y realizar operaciones básicas en una base de datos.
Capítulo 2: Conceptos básicos de bases de datos
2.1 Tablas, filas y columnas
En una base de datos relacional:



Tablas: Son como hojas de cálculo; contienen datos organizados en filas y
columnas.
Filas: Representan una instancia o registro único (por ejemplo, un cliente).
Columnas: Representan atributos o características de las filas (por ejemplo, nombre
o correo electrónico).
Ejemplo:
ID Nombre
Correo
Edad
1 Ana Pérez [email protected] 30
2 Luis Gómez [email protected] 25
2.2 Tipos de datos en SQL
Al definir las columnas de una tabla, es necesario especificar su tipo de datos. Algunos de
los tipos de datos más comunes en MySQL son:

Enteros:
o
o



INT: Números enteros, por ejemplo, 123.
TINYINT: Números pequeños (-128 a 127).
Decimales y flotantes:
o DECIMAL(8,2): Números decimales con 8 dígitos totales y 2 después del
punto decimal.
Texto:
o VARCHAR(n): Cadena de texto de hasta n caracteres.
o TEXT: Texto largo.
Fechas y horas:
o DATE: Fecha (AAAA-MM-DD).
o DATETIME: Fecha y hora (AAAA-MM-DD HH:MM:SS).
Práctica: Crear una tabla con diferentes tipos de datos
sql
Copiar código
-- Crear una tabla llamada "Clientes"
CREATE TABLE Clientes (
ID INT AUTO_INCREMENT PRIMARY KEY,
cada cliente
Nombre VARCHAR(100) NOT NULL,
-- Identificador único para
-- Nombre del cliente
Correo VARCHAR(255) UNIQUE,
para cada cliente
FechaNacimiento DATE,
Saldo DECIMAL(10,2) DEFAULT 0.00
defecto
);
-- Correo electrónico, único
-- Fecha de nacimiento
-- Saldo inicial con valor por
Explicación del código:

AUTO_INCREMENT: Incrementa automáticamente el valor del campo ID en cada



nueva fila.
NOT NULL: No permite valores vacíos en la columna.
UNIQUE: Garantiza que los valores de la columna Correo no se repitan.
DEFAULT: Establece un valor por defecto para la columna Saldo.
2.3 Claves primarias y foráneas
Las claves son esenciales para mantener la integridad de los datos:


Clave primaria (Primary Key): Identifica de forma única cada fila en una tabla.
Clave foránea (Foreign Key): Relaciona una tabla con otra.
Ejemplo práctico: Crear tablas relacionadas
Imagina que tenemos dos tablas: Clientes y Ordenes. Cada cliente puede realizar
múltiples órdenes.
Paso 1: Crear la tabla Clientes
sql
Copiar código
CREATE TABLE Clientes (
ID INT AUTO_INCREMENT PRIMARY KEY,
Nombre VARCHAR(100) NOT NULL,
Correo VARCHAR(255) UNIQUE,
FechaNacimiento DATE,
Saldo DECIMAL(10,2) DEFAULT 0.00
);
Paso 2: Crear la tabla Ordenes con una clave foránea
sql
Copiar código
CREATE TABLE Ordenes (
ID INT AUTO_INCREMENT PRIMARY KEY,
para cada orden
ClienteID INT,
que realizó la orden
-- Identificador único
-- Referencia al cliente
Fecha DATETIME NOT NULL,
-- Fecha de la orden
Monto DECIMAL(10,2) NOT NULL,
-- Monto total de la
orden
FOREIGN KEY (ClienteID) REFERENCES Clientes(ID) -- Relación con la
tabla Clientes
);
Explicación del código:


ClienteID es una clave foránea que apunta al campo ID de la tabla Clientes.
La instrucción FOREIGN KEY establece esta relación.
Práctica completa: Insertar y consultar datos en tablas relacionadas
Paso 1: Insertar datos en la tabla Clientes
sql
Copiar código
INSERT INTO Clientes (Nombre, Correo, FechaNacimiento, Saldo)
VALUES
('Ana Pérez', '[email protected]', '1993-05-15', 500.00),
('Luis Gómez', '[email protected]', '1998-11-20', 300.00);
Paso 2: Insertar datos en la tabla Ordenes
sql
Copiar código
INSERT INTO Ordenes (ClienteID, Fecha, Monto)
VALUES
(1, '2025-01-08 10:30:00', 120.50),
(1, '2025-01-08 15:45:00', 50.00),
(2, '2025-01-08 12:00:00', 80.00);
Paso 3: Consultar las órdenes de un cliente específico usando un JOIN
sql
Copiar código
-- Mostrar las órdenes realizadas por "Ana Pérez"
SELECT Clientes.Nombre, Ordenes.Fecha, Ordenes.Monto
FROM Clientes
JOIN Ordenes ON Clientes.ID = Ordenes.ClienteID
WHERE Clientes.Nombre = 'Ana Pérez';
Resultado esperado:
Nombre
Fecha
Monto
Ana Pérez 2025-01-08 10:30:00 120.50
Ana Pérez 2025-01-08 15:45:00 50.00
Conclusión del capítulo
En este capítulo hemos cubierto:
1.
2.
3.
4.
La estructura básica de una base de datos: tablas, filas y columnas.
Cómo definir tipos de datos apropiados para cada columna.
La importancia de las claves primarias y foráneas para establecer relaciones.
Cómo insertar y consultar datos en tablas relacionadas.
Capítulo 3: Primeros pasos con SQL
Este capítulo introduce las operaciones básicas que puedes realizar con SQL, como la
creación de bases de datos, tablas, y el uso de consultas simples para insertar y recuperar
datos.
3.1 Creación de bases de datos
En SQL, una base de datos es el contenedor principal de las tablas. Crear una base de datos
en MySQL es sencillo.
Ejemplo práctico: Crear una base de datos
sql
Copiar código
-- Crear una base de datos llamada "Empresa"
CREATE DATABASE Empresa;
-- Seleccionar la base de datos para usarla
USE Empresa;
Explicación:


CREATE DATABASE: Crea una nueva base de datos llamada "Empresa".
USE: Indica que todas las operaciones posteriores se realizarán en esta base de datos.
3.2 Creación de tablas
Las tablas son los componentes principales donde se almacenan los datos. Cada tabla tiene
columnas con tipos de datos definidos.
Ejemplo práctico: Crear una tabla
sql
Copiar código
-- Crear una tabla llamada "Empleados"
CREATE TABLE Empleados (
ID INT AUTO_INCREMENT PRIMARY KEY,
empleado
Nombre VARCHAR(100) NOT NULL,
(obligatorio)
Puesto VARCHAR(50),
Salario DECIMAL(10,2),
decimales
FechaIngreso DATE
);
-- Identificador único para cada
-- Nombre del empleado
-- Puesto del empleado
-- Salario del empleado con dos
-- Fecha de ingreso a la empresa
Explicación:




ID INT AUTO_INCREMENT PRIMARY KEY: Crea un identificador único que se
incrementa automáticamente.
VARCHAR(100): Permite almacenar texto de hasta 100 caracteres.
DECIMAL(10,2): Almacena números con hasta 10 dígitos, de los cuales 2 están después
del punto decimal.
DATE: Almacena fechas en formato YYYY-MM-DD.
3.3 Insertar datos en tablas
Usa el comando INSERT INTO para agregar registros a una tabla.
Ejemplo práctico: Insertar datos en una tabla
sql
Copiar código
-- Insertar registros en la tabla Empleados
INSERT INTO Empleados (Nombre, Puesto, Salario, FechaIngreso)
VALUES
('Ana López', 'Gerente', 5000.00, '2020-06-15'),
('Carlos Pérez', 'Analista', 3000.00, '2022-01-10'),
('Marta Gómez', 'Desarrollador', 4000.00, '2021-03-20');
Explicación:


INSERT INTO: Especifica la tabla donde se insertarán los datos.
Los valores entre paréntesis corresponden a las columnas de la tabla en el mismo orden.
3.4 Consultas básicas con SELECT
El comando SELECT se usa para recuperar datos de una tabla.
Ejemplo práctico 1: Seleccionar todos los datos
sql
Copiar código
-- Consultar todos los registros de la tabla Empleados
SELECT * FROM Empleados;
Resultado esperado:
ID
Nombre
1 Ana López
Puesto
Gerente
Salario FechaIngreso
5000.00 2020-06-15
ID
Nombre
Puesto
2 Carlos Pérez Analista
Salario FechaIngreso
3000.00 2022-01-10
3 Marta Gómez Desarrollador 4000.00 2021-03-20
Ejemplo práctico 2: Filtrar datos con WHERE
sql
Copiar código
-- Consultar empleados con salario mayor a 4000
SELECT Nombre, Puesto, Salario
FROM Empleados
WHERE Salario > 4000;
Resultado esperado:
Nombre Puesto Salario
Ana López Gerente 5000.00
Explicación:

WHERE Salario > 4000: Filtra las filas donde el salario sea mayor a 4000.
Ejemplo práctico 3: Ordenar resultados con ORDER BY
sql
Copiar código
-- Consultar todos los empleados ordenados por salario de mayor a menor
SELECT Nombre, Puesto, Salario
FROM Empleados
ORDER BY Salario DESC;
Resultado esperado:
Nombre
Ana López
Puesto
Gerente
Salario
5000.00
Marta Gómez Desarrollador 4000.00
Carlos Pérez Analista
3000.00
Explicación:

ORDER BY Salario DESC: Ordena los resultados por la columna Salario en orden
descendente (DESC).
Ejemplo práctico 4: Seleccionar columnas específicas
sql
Copiar código
-- Consultar solo los nombres y puestos de los empleados
SELECT Nombre, Puesto
FROM Empleados;
Resultado esperado:
Nombre
Puesto
Ana López
Gerente
Carlos Pérez Analista
Marta Gómez Desarrollador
Práctica completa
Ejercicio: Gestión básica de empleados
1. Crear la base de datos y tabla
sql
Copiar código
CREATE DATABASE Empresa;
USE Empresa;
CREATE TABLE Empleados (
ID INT AUTO_INCREMENT PRIMARY KEY,
Nombre VARCHAR(100) NOT NULL,
Puesto VARCHAR(50),
Salario DECIMAL(10,2),
FechaIngreso DATE
);
2. Insertar registros
sql
Copiar código
INSERT INTO Empleados (Nombre, Puesto, Salario, FechaIngreso)
VALUES
('Ana López', 'Gerente', 5000.00, '2020-06-15'),
('Carlos Pérez', 'Analista', 3000.00, '2022-01-10'),
('Marta Gómez', 'Desarrollador', 4000.00, '2021-03-20');
3. Consultar registros
o
Todos los empleados:
sql
Copiar código
SELECT * FROM Empleados;
o
Empleados con salario mayor a 4000:
sql
Copiar código
SELECT Nombre, Puesto, Salario
FROM Empleados
WHERE Salario > 4000;
o
Ordenados por fecha de ingreso:
sql
Copiar código
SELECT Nombre, Puesto, FechaIngreso
FROM Empleados
ORDER BY FechaIngreso ASC;
Conclusión del capítulo
En este capítulo hemos aprendido:
1.
2.
3.
4.
Cómo crear bases de datos y tablas en MySQL.
Cómo insertar datos en una tabla.
Cómo usar consultas básicas con SELECT para recuperar datos.
Cómo aplicar filtros y ordenar los resultados de las consultas.
Capítulo 4: Recuperar datos
Recuperar datos es una de las operaciones más comunes en SQL. En este capítulo
aprenderás a usar el comando SELECT con filtros, ordenamientos y funciones de agregación
para obtener la información que necesitas.
4.1 Filtrar resultados con WHERE
El comando WHERE se utiliza para filtrar filas que cumplan ciertas condiciones.
Ejemplo práctico 1: Filtrar por una condición
sql
Copiar código
-- Crear una base de datos y una tabla
CREATE DATABASE Tienda;
USE Tienda;
CREATE TABLE Productos (
ID INT AUTO_INCREMENT PRIMARY KEY,
Nombre VARCHAR(100),
Categoria VARCHAR(50),
Precio DECIMAL(10,2),
Stock INT
);
-- Insertar datos en la tabla
INSERT INTO Productos (Nombre, Categoria, Precio, Stock)
VALUES
('Laptop', 'Electrónica', 800.00, 10),
('Smartphone', 'Electrónica', 600.00, 20),
('Silla', 'Muebles', 150.00, 5),
('Mesa', 'Muebles', 300.00, 3);
-- Consultar productos con precio mayor a 500
SELECT *
FROM Productos
WHERE Precio > 500;
Resultado esperado:
ID
Nombre
1 Laptop
Categoria Precio Stock
Electrónica 800.00 10
2 Smartphone Electrónica 600.00 20
Ejemplo práctico 2: Filtrar por varias condiciones
sql
Copiar código
-- Consultar productos con precio mayor a 500 y categoría "Electrónica"
SELECT Nombre, Precio, Stock
FROM Productos
WHERE Precio > 500 AND Categoria = 'Electrónica';
Resultado esperado:
Nombre
Laptop
Precio Stock
800.00 10
Smartphone 600.00 20
Ejemplo práctico 3: Filtrar con operadores de comparación
sql
Copiar código
-- Consultar productos con stock entre 5 y 15
SELECT Nombre, Stock
FROM Productos
WHERE Stock BETWEEN 5 AND 15;
Resultado esperado:
Nombre Stock
Laptop 10
Silla
5
4.2 Ordenar resultados con ORDER BY
El comando ORDER BY organiza los resultados en un orden específico.
Ejemplo práctico 1: Ordenar de menor a mayor
sql
Copiar código
-- Consultar todos los productos ordenados por precio de menor a mayor
SELECT Nombre, Precio
FROM Productos
ORDER BY Precio ASC;
Resultado esperado:
Nombre
Silla
Precio
150.00
Nombre
Mesa
Precio
300.00
Smartphone 600.00
Laptop
800.00
Ejemplo práctico 2: Ordenar de mayor a menor
sql
Copiar código
-- Consultar productos ordenados por stock de mayor a menor
SELECT Nombre, Stock
FROM Productos
ORDER BY Stock DESC;
Resultado esperado:
Nombre
Stock
Smartphone 20
Laptop
10
Silla
5
Mesa
3
4.3 Uso de funciones de agregación
Las funciones de agregación permiten realizar cálculos sobre un conjunto de valores.
Función COUNT: Contar registros
sql
Copiar código
-- Contar cuántos productos hay en total
SELECT COUNT(*) AS TotalProductos
FROM Productos;
Resultado esperado:
TotalProductos
4
Función SUM: Sumar valores
sql
Copiar código
-- Calcular el valor total del inventario
SELECT SUM(Precio * Stock) AS ValorTotalInventario
FROM Productos;
Resultado esperado:
ValorTotalInventario
17900.00
Función AVG: Calcular el promedio
sql
Copiar código
-- Calcular el precio promedio de los productos
SELECT AVG(Precio) AS PrecioPromedio
FROM Productos;
Resultado esperado:
PrecioPromedio
462.50
Función MAX y MIN: Valores máximo y mínimo
sql
Copiar código
-- Consultar el precio más alto y más bajo
SELECT MAX(Precio) AS PrecioMaximo, MIN(Precio) AS PrecioMinimo
FROM Productos;
Resultado esperado:
PrecioMaximo PrecioMinimo
800.00
150.00
4.4 Agrupar datos con GROUP BY y HAVING
El comando GROUP BY agrupa filas que comparten valores en una o más columnas, y
HAVING filtra grupos.
Ejemplo práctico 1: Agrupar por categoría
sql
Copiar código
-- Consultar el número de productos por categoría
SELECT Categoria, COUNT(*) AS TotalProductos
FROM Productos
GROUP BY Categoria;
Resultado esperado:
Categoria TotalProductos
Electrónica 2
Muebles
2
Ejemplo práctico 2: Filtrar grupos con HAVING
sql
Copiar código
-- Consultar categorías con más de 1 producto
SELECT Categoria, COUNT(*) AS TotalProductos
FROM Productos
GROUP BY Categoria
HAVING COUNT(*) > 1;
Resultado esperado:
Categoria TotalProductos
Electrónica 2
Muebles
2
Práctica completa: Gestión de inventario
1. Crear la base de datos y tabla
sql
Copiar código
CREATE DATABASE Tienda;
USE Tienda;
CREATE TABLE Productos (
ID INT AUTO_INCREMENT PRIMARY KEY,
Nombre VARCHAR(100),
Categoria VARCHAR(50),
Precio DECIMAL(10,2),
Stock INT
);
INSERT INTO Productos (Nombre, Categoria, Precio, Stock)
VALUES
('Laptop', 'Electrónica', 800.00, 10),
('Smartphone', 'Electrónica', 600.00, 20),
('Silla', 'Muebles', 150.00, 5),
('Mesa', 'Muebles', 300.00, 3);
2. Consultar productos por categoría
sql
Copiar código
SELECT Categoria, COUNT(*) AS TotalProductos
FROM Productos
GROUP BY Categoria;
3. Consultar el valor total del inventario
sql
Copiar código
SELECT SUM(Precio * Stock) AS ValorTotalInventario
FROM Productos;
4. Consultar productos con precio mayor a 500 ordenados por precio descendente
sql
Copiar código
SELECT Nombre, Precio
FROM Productos
WHERE Precio > 500
ORDER BY Precio DESC;
Conclusión del capítulo
En este capítulo aprendiste:
1.
2.
3.
4.
Cómo filtrar datos con WHERE.
Cómo ordenar resultados con ORDER BY.
Cómo usar funciones de agregación como SUM, AVG, COUNT, MAX, y MIN.
Cómo agrupar datos con GROUP BY y filtrar grupos con HAVING.
Descargar