Consultas SQL en Access: Ejemplos Prácticos de SELECT, JOIN, Subconsultas y DDL
Consultas SQL: ejemplos prácticos
(selección de selección)
*SELECT TOP 20 PERCENT provincia, población
FROM provincia WHERE provincia LIKE "a*a";
*SELECT nombre + "alimentación" + alimentación AS [alimentación]
FROM animales WHERE clase = "Aves" OR clase = "Mamíferos";
ORDER BY clase DESC;
*SELECT nombre, clase
FROM animales WHERE nombre LIKE "?a*a??" ORDER BY nombre DESC;
Consultas con INNER JOIN
(Dime el nombre del cuidador que cuida al tigre)
*SELECT cuidador.nombre
FROM cuidador INNER JOIN animales ON cuidador.idempleado = animales.idcuidador
WHERE animales.nombre = "tigre";
(Consulta compleja)
*SELECT cuidador.nombre
FROM cuidador INNER JOIN animales ON cuidador.idempleado = animales.idcuidador
WHERE alimentación = "Carnívoros";
Consulta de resumen
*SELECT medio, MAX(patas) AS [Nº de patas],
AVG(patas) AS [Media de patas], SUM(patas) AS [Suma de patas]
FROM animales GROUP BY medio HAVING SUM(patas) > 40;
Referencias cruzadas
(Fila = GROUP BY / Columna = PIVOT / Total = TRANSFORM)
*TRANSFORM COUNT(nombre)
SELECT clase FROM animales WHERE alimentación LIKE "p*"
GROUP BY clase PIVOT alimentación;
Subconsultas
*SELECT provincia, población FROM provincia
WHERE población > (SELECT MAX(población) FROM provincia WHERE provincia LIKE "a*");
Inserción de registros
*INSERT INTO animales
SELECT * FROM animales
WHERE clase = "Mamíferos" AND alimentación = "Carnívoros";
Consulta de actualización
*UPDATE cuidadores INNER JOIN animales ON cuidadores.idempleado = animales.idcuidadores
SET salario = [salario] * 1.30
WHERE animales.nombre LIKE "*a*a*" AND clase = "Aves";
Consulta de borrado
*DELETE * FROM animales WHERE nombre LIKE "*e*e*";
Creación de tablas
CREATE TABLE tabla3 (
c1 VARCHAR(10) REFERENCES tabla1,
c2 VARCHAR(10) REFERENCES tabla2,
CONSTRAINT pk1 PRIMARY KEY (c1, c2));
DDL: restricciones de tipo 1
CREATE TABLE Clientes (
Codigo AUTOINCREMENT(1,1) PRIMARY KEY,
NIF CHAR(9) UNIQUE,
NOM VARCHAR(40) NOT NULL,
FechaAlta DATE,
CodigoPro INT REFERENCES Producto;
DDL: restricciones de tipo 2
CREATE TABLE Clientes (
Codigo AUTOINCREMENT(1,1),
NIF CHAR(9),
NOM VARCHAR(40) NOT NULL,
FechaAlta DATE,
CodigoPro INT,
CONSTRAINT PK1 PRIMARY KEY (Codigo),
UNIQUE (NIF),
FOREIGN KEY (CodigoPro) REFERENCES Productos);