1. Creación de Tablas
CREATE TABLE Fabricantes (
Codigo INT(2),
Nombre VARCHAR(100),
CONSTRAINT PK_Fabricantes PRIMARY KEY(Codigo)
);
CREATE TABLE Articulos (
Codigo INT(2),
Nombre VARCHAR(100),
Precio INT,
Fabricante INT,
CONSTRAINT PK_Articulos PRIMARY KEY(Codigo),
CONSTRAINT FK_Fabricantes FOREIGN KEY (Fabricante) REFERENCES Fabricantes(Codigo)
);
2. Inserción de Datos
INSERT INTO Fabricantes (Codigo, Nombre)
VALUES ('1', 'Antonio');
INSERT INTO Articulos (Codigo, Nombre, Precio, Fabricante)
VALUES ('1', 'Tarjeta de red', '20', '1');
3. Selección con Alias y Texto Literal
SELECT Nombre, 'Precio por unidad:', Precio, 'Euro' AS Moneda
FROM Articulos;
4. Selección con Rango de Precios
SELECT Nombre
FROM Articulos
WHERE (Precio < 400) AND (Precio >= 100);
5. Selección con Rango Usando BETWEEN
SELECT *
FROM Articulos
WHERE (Precio BETWEEN 60 AND 120);
6. Cálculo de Media por Fabricante
SELECT AVG(Precio) AS Media
FROM Articulos
WHERE Fabricante = '3';
7. Conteo de Artículos por Precio
SELECT COUNT(Nombre) AS Num_Articulos
FROM Articulos
WHERE (Precio >= 100);
8. Selección por Nombre y Patrón
SELECT Nombre
FROM Articulos
WHERE Nombre IN ('teclado', 'raton', 'tarjeta de red', 'monitor') AND (Nombre LIKE '%t%');
9. Selección por Patrón Específico
SELECT Nombre
FROM Articulos
WHERE Nombre LIKE '%o_';
10. Selección y Ordenación por Fabricante
SELECT Fabricante, Nombre, Precio AS Precio_mayor
FROM Articulos
WHERE Precio >= 100
ORDER BY Fabricante;
11. Agrupación por Fabricante y Suma de Precios
SELECT Fabricante, SUM(Precio)
FROM Articulos
GROUP BY Fabricante;
12. Cálculo de Precios con IVA
SELECT Nombre, Precio AS PVP_SIN_IVA, SUM(Precio * 0.18) AS IVA, SUM(Precio + (Precio * 0.18)) AS PVP_CON_IVA
FROM Articulos
GROUP BY Nombre, Precio;
13. Selección Usando Subconsulta
SELECT Codigo, Nombre, Precio
FROM Articulos
WHERE Fabricante = (SELECT Codigo FROM Fabricantes WHERE Nombre = 'juan');
14. Selección Usando Subconsulta con ANY
SELECT Nombre
FROM Fabricantes
WHERE Codigo = ANY (SELECT Fabricante FROM Articulos WHERE Nombre = 'tarjeta de red' OR Nombre = 'Raton');
15. Selección con JOIN Implícito
SELECT A.Nombre, F.Nombre
FROM Fabricantes F, Articulos A
WHERE A.Fabricante = F.Codigo;
16. Cálculo de Precio Medio por Fabricante con JOIN
SELECT F.Nombre, AVG(A.Precio) AS PRECIO_MEDIO
FROM Fabricantes F
JOIN Articulos A ON F.Codigo = A.Fabricante
GROUP BY F.Nombre;
17. Actualización de Precios (Ejemplo)
UPDATE Articulos
SET Precio = Precio * 0.20
WHERE Precio < 50; -- Condición original no válida, se usa ejemplo < 50
18. Actualización de Precios por Fabricante
UPDATE Articulos
SET Precio = Precio * 0.10
WHERE Fabricante = '1';
19. Selección de Fabricantes por Precio de Artículo
SELECT F.Nombre
FROM Articulos A
JOIN Fabricantes F ON A.Fabricante = F.Codigo
WHERE A.Precio >= 150
GROUP BY F.Nombre;
20. Eliminación de Artículos por Fabricante
DELETE FROM Articulos
WHERE Fabricante = '1';
21. Eliminación de Tabla
DROP TABLE Articulos;
22. Adición de Columna a Tabla
ALTER TABLE Fabricantes
ADD Direccion VARCHAR(100);
23. Eliminación de Columna de Tabla
ALTER TABLE Fabricantes
DROP COLUMN Direccion;
24. Modificación de Columna (Establecer Valor por Defecto)
ALTER TABLE Articulos
ALTER COLUMN Precio SET DEFAULT 0;