Ejercicios Prácticos de SQL: Consultas, Modificaciones y Creación de Tablas

Enviado por Chuletator online y clasificado en Economía

Escrito el en español con un tamaño de 5,41 KB

Consultas SQL

Selección de Datos

SELECT * FROM pedidos WHERE DATE(FECHA_PEDIDO) BETWEEN '1999-06-01' AND '1999-11-30';

SELECT * FROM productos WHERE DESCRIPCION LIKE '%mesa%' AND DESCRIPCION LIKE '%despacho%' AND PRECIO_ACTUAL < 100000;

SELECT NOMBRE, PRECIO_ACTUAL FROM productos ORDER BY PRECIO_ACTUAL DESC, NOMBRE ASC;

SELECT empleados.* FROM empleados JOIN departamentos ON empleados.DEP_NO = departamentos.DEP_NO WHERE (departamentos.LOCALIDAD = 'BARCELONA' OR departamentos.LOCALIDAD = 'SEVILLA') AND empleados.FOTO IS NULL;

SELECT pedidos.* FROM pedidos WHERE CLIENTE_NO = (SELECT CLIENTE_NO FROM pedidos WHERE PEDIDO_NO = 1080);

SELECT COUNT(*) FROM empleados WHERE DEP_NO = 30 AND OFICIO = 'VENDEDOR' AND COMISION IS NOT NULL;

SELECT * FROM productos WHERE PRECIO_ACTUAL = (SELECT MAX(PRECIO_ACTUAL) FROM productos);

SELECT empleados.*, departamentos.DNOMBRE FROM empleados LEFT JOIN departamentos ON empleados.DEP_NO = departamentos.DEP_NO;

SELECT empleados.* FROM empleados JOIN departamentos ON empleados.DEP_NO = departamentos.DEP_NO WHERE (OFICIO = 'VENDEDOR' OR OFICIO = 'DIRECTOR') AND (departamentos.DNOMBRE IN ('CONTABILIDAD', 'VENTAS', 'PRODUCCION'));

SELECT departamentos.DEP_NO, departamentos.DNOMBRE, SUM(empleados.SALARIO + IFNULL(empleados.COMISION, 0)) AS Gasto_Total FROM departamentos JOIN empleados ON departamentos.DEP_NO = empleados.DEP_NO GROUP BY departamentos.DEP_NO, departamentos.DNOMBRE HAVING COUNT(empleados.EMP_NO) >= 3;

SELECT * FROM EMPLEADO WHERE SALARIO < (SELECT AVG(SALARIO) FROM EMPLEADO);

SELECT D.NOMBRE_DEP, COUNT(E.EMP_NO) AS NUM_TRABAJADORES FROM DEPARTAMENTO D LEFT JOIN EMPLEADO E ON D.DEP_NO = E.DEP_NO GROUP BY D.NOMBRE_DEP;

SELECT D.NOMBRE_DEP, COUNT(E.EMP_NO) AS NUM_TRABAJADORES FROM DEPARTAMENTO D LEFT JOIN EMPLEADO E ON D.DEP_NO = E.DEP_NO GROUP BY D.NOMBRE_DEP;

SELECT LOCALIDAD, COUNT(CLIENTE_NO) AS NUM_CLIENTES FROM CLIENTE GROUP BY LOCALIDAD HAVING COUNT(CLIENTE_NO) > 1 ORDER BY NUM_CLIENTES DESC;

SELECT * FROM PRODUCTO WHERE DESCRIPCION LIKE '%mesa%' AND DESCRIPCION LIKE '%gaviota%';

SELECT COUNT(*) FROM EMPLEADO WHERE OFICIO = 'VENDEDOR' AND (COMISION IS NULL OR COMISION = 0) AND DEP_NO = (SELECT DEP_NO FROM DEPARTAMENTO WHERE NOMBRE_DEP = 'VENTAS');

SELECT * FROM CLIENTE WHERE LOCALIDAD IN ('BARCELONA', 'MADRID');

SELECT NUM_PEDIDO, FECHA_PEDIDO FROM PEDIDO WHERE YEAR(FECHA_PEDIDO) = 1999 AND FECHA_PEDIDO < '1999-11-15';

SELECT APELLIDO1, NOMBRE, SALARIO, OFICIO FROM EMPLEADO WHERE DEP_NO IN (SELECT DEP_NO FROM DEPARTAMENTO WHERE NOMBRE_DEP IN ('CONTABILIDAD', 'VENTAS')) AND SALARIO BETWEEN 100000 AND 220000;

Modificaciones de Datos

Inserción de Datos

INSERT INTO clientes (CLIENTE_NO, NIF, NOMBRE, LOCALIDAD) VALUES (1585, '11223344M', 'Comercial Nos', 'Lugo');

INSERT INTO EMPLEADO (EMP_NO, NIF, NOMBRE, APELLIDO1, OFICIO, JEFE, FECHA_ALTA, SALARIO, COMISION, DEP_NO, TELEFONO, FOTO) VALUES (9328, '123456782', 'Concepcion', 'Arenilla', 'ABOGADA', 10, '1981-11-17', 30000, 10, 98145678, '963852741', NULL);

INSERT INTO clientes (CLIENTE_NO, NIF, LOCALIDAD) VALUES (777, '11223444M', 'Lugo');

Actualización de Datos

UPDATE productos SET PRECIO_ACTUAL = PRECIO_ACTUAL * 0.98;

UPDATE PRODUCTO SET PRECIO = PRECIO * 1.053 WHERE PRODUCTO_NO = 80;

Eliminación de Datos

-- Iniciar transacción
START TRANSACTION;

-- Borrar el producto
DELETE FROM PRODUCTO WHERE PRODUCTO_NO = 60;

Creación de Tablas

Definición de Estructuras

-- Creación de la tabla de socios
CREATE TABLE socio (
    dni VARCHAR(9) PRIMARY KEY,
    nombre VARCHAR(45),
    direccion VARCHAR(45),
    fecha_ingreso DATE,
    telefono VARCHAR(45)
);

-- Creación de la tabla de barcos
CREATE TABLE barco (
    matricula VARCHAR(10) PRIMARY KEY,
    numero_fiscal VARCHAR(45),
    manga DECIMAL,
    eslora DECIMAL,
    tipo VARCHAR(20),
    nombre VARCHAR(45),
    socio_dni VARCHAR(9),
    amarre_id INT,
    fecha_asignacion DATE,
    FOREIGN KEY (socio_dni) REFERENCES socio(dni),
    FOREIGN KEY (amarre_id) REFERENCES amarre(id)
);

-- Creación de la tabla de amarres
CREATE TABLE amarre (
    id INT PRIMARY KEY,
    electricidad TINYINT,
    agua TINYINT,
    muelle_id VARCHAR(1),
    FOREIGN KEY (muelle_id) REFERENCES muelle(letra)
);

-- Creación de la tabla de muelles
CREATE TABLE muelle (
    letra VARCHAR(1) PRIMARY KEY,
    tipo VARCHAR(20),
    profundidad DECIMAL,
    anchura DECIMAL
);

-- Creación de la tabla de compras
CREATE TABLE compra (
    socio_dni VARCHAR(9),
    amarre_id INT,
    fecha_compra VARCHAR(45),
    PRIMARY KEY (socio_dni, amarre_id),
    FOREIGN KEY (socio_dni) REFERENCES socio(dni),
    FOREIGN KEY (amarre_id) REFERENCES amarre(id)
);

Entradas relacionadas: