Ejercicios SQL:
---
Ejercicio 1: Creación de Tablas
Objetivo: Crear tablas con claves primarias y foráneas.
1. Crear una base de datos llamada Tienda.
CREATE DATABASE Tienda;
USE Tienda;
2. Crear la tabla Categorias.
CREATE TABLE Categorias (
CategoriaID INT AUTO_INCREMENT PRIMARY KEY,
Nombre VARCHAR(50) NOT NULL
);
3. Crear la tabla Productos.
CREATE TABLE Productos (
ProductoID INT AUTO_INCREMENT PRIMARY KEY,
Nombre VARCHAR(100) NOT NULL,
Precio DECIMAL(10, 2) NOT NULL,
CategoriaID INT,
FOREIGN KEY (CategoriaID) REFERENCES Categorias(CategoriaID)
);
Ejercicio 2: Inserción de Datos
Objetivo: Insertar datos en las tablas.
1. Insertar datos en la tabla Categorias.
INSERT INTO Categorias (Nombre) VALUES
('Electrónica'),
('Ropa'),
('Juguetes');
2. Insertar datos en la tabla Productos.
INSERT INTO Productos (Nombre, Precio, CategoriaID) VALUES
('Teléfono', 599.99, 1),
('Camiseta', 19.99, 2),
('Muñeca', 14.99, 3);
Ejercicio 3: Selección de Datos
Objetivo: Realizar consultas para obtener datos.
1. Seleccionar todos los productos.
SELECT * FROM Productos;
2. Seleccionar productos y sus categorías utilizando JOIN.
SELECT P.ProductoID, P.Nombre AS Producto, P.Precio, C.Nombre AS Categoria
FROM Productos P
JOIN Categorias C ON P.CategoriaID = C.CategoriaID;
Ejercicio 4: Modificación de Tablas
Objetivo: Modificar la estructura de las tablas.
1. Añadir una nueva columna Stock a la tabla Productos.
ALTER TABLE Productos ADD Stock INT DEFAULT 0;
2. Cambiar el tipo de datos de la columna Precio en la tabla Productos.
ALTER TABLE Productos MODIFY Precio DECIMAL(12, 2);
Ejercicio 5: Manipulación de Datos
Objetivo: Actualizar y borrar datos.
1. Actualizar el stock de un producto.
UPDATE Productos SET Stock = 50 WHERE ProductoID = 1;
2. Borrar un producto que ya no esté en stock.
DELETE FROM Productos WHERE Stock = 0;
### Ejercicio 6: Eliminación de Datos y Tablas
Objetivo: Truncar y eliminar tablas.
1. Truncar la tabla Productos.
TRUNCATE TABLE Productos;
2. Borrar la tabla Categorias.
DROP TABLE Categorias;
Ejercicio 7: Relaciones Complejas
Objetivo: Crear y gestionar relaciones más complejas entre tablas.
1. Crear una tabla Clientes.
CREATE TABLE Clientes (
ClienteID INT AUTO_INCREMENT PRIMARY KEY,
Nombre VARCHAR(100) NOT NULL,
Email VARCHAR(100) UNIQUE NOT NULL
);
2. Crear una tabla Pedidos y establecer relaciones con Clientes y Productos.
CREATE TABLE Pedidos (
PedidoID INT AUTO_INCREMENT PRIMARY KEY,
FechaPedido DATE NOT NULL,
ClienteID INT,
FOREIGN KEY (ClienteID) REFERENCES Clientes(ClienteID)
);
3. Crear una tabla DetallePedido para almacenar los productos de cada pedido.
CREATE TABLE DetallePedido (
DetalleID INT AUTO_INCREMENT PRIMARY KEY,
PedidoID INT,
ProductoID INT,
Cantidad INT NOT NULL,
FOREIGN KEY (PedidoID) REFERENCES Pedidos(PedidoID),
FOREIGN KEY (ProductoID) REFERENCES Productos(ProductoID)
);