DDL - Crear y Modificar
DDL - Constraints
DML - Insertar
DML - Actualizar
SELECT - Consultas
100

Crea una tabla llamada Promociones con columnas id INT PRIMARY KEY, nombre VARCHAR(50).

CREATE TABLE Promociones (id INT PRIMARY KEY, nombre VARCHAR(50));

100

Agrega una restricción NOT NULL a la columna nombre_cliente en la tabla clientes.

ALTER TABLE clientes MODIFY nombre_cliente VARCHAR(50) NOT NULL;

100

Inserta un nuevo cliente llamado "Floristería Rosa", en "Madrid", con un número de teléfono.

INSERT INTO clientes (nombre_cliente, ciudad, telefono) VALUES ('Floristería Rosa', 'Madrid', '911123456');

100

Actualiza el teléfono del cliente con id_cliente = 105 a "911223344".

UPDATE clientes SET telefono = '911223344' WHERE codigo_cliente = 105;

100

Muestra todos los clientes registrados en la ciudad de "Madrid".

SELECT * FROM clientes WHERE ciudad = 'Madrid';

200

Agrega una columna telefono VARCHAR(20) a la tabla clientes.

ALTER TABLE clientes ADD telefono VARCHAR(20);

200

Agrega una clave foránea desde pedidos(id_cliente) a clientes(id_cliente).

ALTER TABLE pedidos ADD CONSTRAINT fk_cliente FOREIGN KEY (id_cliente) REFERENCES clientes(id_cliente);

200

Inserta un nuevo producto con código 999, nombre "Maceta Grande", precio 12.5, stock 50.

INSERT INTO productos (codigo_producto, nombre, precio_venta, cantidad_en_stock) VALUES (999, 'Maceta Grande', 12.5, 50);

200

Cambia el estado del pedido con id_pedido = 210 a "En camino".

UPDATE pedidos SET estado = 'En camino' WHERE codigo_pedido = 210;

200

Muestra el nombre y teléfono de todos los empleados cuyo puesto sea "Representante de Ventas".

SELECT nombre, telefono FROM empleados WHERE puesto = 'Representante de Ventas';

300

Crea una nueva tabla LogEnvios con campos id_log INT, fecha_envio DATE, estado VARCHAR(20).

CREATE TABLE LogEnvios (id_log INT, fecha_envio DATE, estado VARCHAR(20));

300

Agrega una restricción UNIQUE al campo email en la tabla empleados.

ALTER TABLE empleados ADD CONSTRAINT unique_email UNIQUE (email);

300

Inserta un nuevo pedido para el cliente 103 con fecha actual y estado "Entregado".

INSERT INTO pedidos (codigo_cliente, fecha_pedido, estado) VALUES (103, CURDATE(), 'Entregado');

300

Aumenta en 10 unidades el stock de todos los productos.

UPDATE productos SET cantidad_en_stock = cantidad_en_stock + 10;

300

Muestra los productos cuyo precio sea mayor a 50 y su stock disponible.

SELECT nombre, precio_venta, cantidad_en_stock FROM productos WHERE precio_venta > 50;

400

Renombra la tabla proveedores a fabricantes.

RENAME TABLE proveedores TO fabricantes;

400

Quita la restricción de clave foránea existente en la tabla detalle_pedidos.

ALTER TABLE detalle_pedidos DROP FOREIGN KEY nombre_de_la_clave;

400

Inserta varios empleados usando una sola sentencia INSERT INTO ... VALUES (...), (...), ....

INSERT INTO empleados (codigo_empleado, nombre, puesto) VALUES (201, 'Ana Ruiz', 'Ventas'), (202, 'Carlos Peña', 'Ventas'), (203, 'Sofía Díaz', 'Marketing');

400

Actualiza el precio de todos los productos de la categoría "Macetas" en un 15%.

UPDATE productos SET precio_venta = precio_venta * 1.15 WHERE categoria = 'Macetas';

400

Muestra el nombre del cliente y la fecha de cada pedido realizado en el año 2023

SELECT clientes.nombre_cliente, pedidos.fecha_pedido FROM pedidos JOIN clientes ON pedidos.codigo_cliente = clientes.codigo_cliente WHERE YEAR(fecha_pedido) = 2023;

500

Elimina la tabla ofertas_temporales si existe.

DROP TABLE IF EXISTS ofertas_temporales;

500

Crea una tabla con una clave primaria compuesta (id_producto, id_almacen).

CREATE TABLE almacenes_productos (id_producto INT, id_almacen INT, PRIMARY KEY (id_producto, id_almacen));

500

Inserta datos en una tabla creada por ti mismo, con al menos 3 columnas.

INSERT INTO Promociones (id, nombre) VALUES (1, 'Descuento Primavera');

500

Cambia el nombre del empleado con id_empleado = 7 a "Laura Gómez" si su puesto es "Ventas".

UPDATE empleados SET nombre = 'Laura Gómez' WHERE codigo_empleado = 7 AND puesto = 'Ventas';

500

Muestra el total de productos pedidos por cada cliente (usa JOIN y GROUP BY).

SELECT clientes.nombre_cliente, SUM(cantidad) AS total_productos FROM pedidos JOIN detalle_pedidos USING(codigo_pedido) JOIN clientes ON pedidos.codigo_cliente = clientes.codigo_cliente GROUP BY clientes.nombre_cliente;

M
e
n
u