Está en la página 1de 7

Herramientas para el

modelamiento de bases de
datos y consultas con SQL
Ejemplo queries
Módulo 4: Consultas para la obtención y análisis de
datos

HERRAMIENTAS PARA EL MODELAMIENTO DE BASES DE DATOS Y CONSULTAS CON SQL - TELEDUC 1


1. Tema 1: Consultas a una tabla con condiciones

1.1. Instrucción para indicar cuál Base de Datos utilizaremos.

USE Empresa;

1.2. Revisión de los datos de las tablas.

SELECT * FROM Cargo;

1.3. Seleccionar todos los empleados llamados Jessica.

SELECT *
FROM Empleado
WHERE Emp_Nombre = 'Jessica';

1.4. Seleccionar todos los empleados con sueldo entre 200.000 y 600.000.

SELECT *
FROM Empleado
WHERE Emp_Sueldo BETWEEN 200000 AND 600000;

-- Otro método
SELECT *
FROM Empleado
WHERE Emp_Sueldo >= 200000 AND Emp_Sueldo <= 600000;

1.5. Seleccionar todos los sueldos de empleados mayores a 1.000.000

SELECT *
FROM Empleado
WHERE Emp_Sueldo >1000000;

1.6. Seleccionar todos los empleados que su apellido comience con P,

SELECT *
FROM Empleado
WHERE Emp_Apellido LIKE 'P%';

HERRAMIENTAS PARA EL MODELAMIENTO DE BASES DE DATOS Y CONSULTAS CON SQL - TELEDUC 2


1.7. Seleccionar todas las comunas que tengan nombres de santos. También se puede
negar algunas instrucciones para realizar una búsqueda por descarte.

SELECT *
FROM Comuna
WHERE Com_Nombre LIKE 'San%' AND Com_Nombre NOT LIKE 'Santiago%';

1.8. Seleccionar todos los empleados que su apellido tenga como segunda letra una o y
en su nombre tenga como segunda letra una a.

SELECT *
FROM Empleado
WHERE Emp_Apellido LIKE '_o%' AND Emp_Nombre LIKE '_a%';

1.9. Seleccionar a todos los empleados de cargos 1, 4 y 5. IN se utiliza para generar un


"filtro" de datos totalmente conocidos por uno mismo. Acá filtramos a todos los
cargos que requieren estudios para realizarse.

SELECT *
FROM Empleado
WHERE Emp_ID_Cargo IN(1, 4, 5);

1.10. Empleados de cargo tipo 4 ordenados (Ascendente) por nombre y por apellido
(Descendente).

SELECT *
FROM Empleado
WHERE Emp_ID_Cargo = 4
ORDER BY Emp_Nombre ASC, Emp_Apellido DESC;

HERRAMIENTAS PARA EL MODELAMIENTO DE BASES DE DATOS Y CONSULTAS CON SQL - TELEDUC 3


2. Tema 2: Consultas a una tabla con condiciones
2.1. Seleccionar el nombre y el apellido del cliente, Alias para la tabla y Columna. El uso de
alias es opcional, puede ser requerido según la consulta.

SELECT C.Cli_Nombre AS Nombre,


C.Cli_Apellido AS Apellido
FROM Cliente AS C;

2.2. -Seleccionar el rut con la suma de su saldo.

SELECT Pcl_Cli_Rut, SUM(Pcl_Saldo) AS Saldo_Total


FROM ProductoCliente
GROUP BY Pcl_Cli_Rut
ORDER BY Pcl_Cli_Rut ASC;

2.3. Contar cuantas veces se repiten los apellidos de los empleados.

SELECT Emp_apellido, COUNT(*) AS Cant_Repetidos


FROM Empleado
GROUP BY Emp_Apellido
ORDER BY Cant_Repetidos;

2.4. Seleccionar los tres apellidos más repetidos ordenados alfabéticamente


descendente.

-- COUNT(*) por si mismo limita la salida de una sola fila, COUNT(*) cuenta
SELECT COUNT(*) AS Repetido, Emp_apellido
FROM Empleado
GROUP BY Emp_Apellido
ORDER BY Repetido DESC, Emp_Apellido DESC
LIMIT 3;

2.5. Seleccionar el registro que tiene el máximo saldo pero sólo rut y saldo.

SELECT Pcl_Cli_Rut AS Run_Cliente, Pcl_Saldo AS Venta_Maxima


FROM ProductoCliente
ORDER BY Pcl_Cli_Rut DESC
LIMIT 1;

HERRAMIENTAS PARA EL MODELAMIENTO DE BASES DE DATOS Y CONSULTAS CON SQL - TELEDUC 4


3. Tema 2: Queries multitabla

3.1. Seleccionar el nombre, apellido y la comuna con su nombre.

SELECT Empleado.Emp_Nombre, Empleado.Emp_Apellido, Comuna.Com_Nombre


FROM Empleado
INNER JOIN Comuna
ON Empleado.Emp_ID_Comuna = Comuna.Com_ID;

3.2. -Seleccionar Productos junto a sus registros de venta (Tabla ProductoCliente).

SELECT * FROM Producto AS p


LEFT JOIN ProductoCliente AS pc
ON pc.Pcl_ID_Prod = p.Prd_ID;

3.3. Seleccionar Productos que no han sido vendidos.

SELECT * FROM Producto AS p


LEFT JOIN ProductoCliente AS pc
ON pc.Pcl_ID_Prod = p.Prd_ID
WHERE pc.Pcl_ID_Prod IS NULL;

3.4. Seleccionar cantidad de ventas de cada Producto.

SELECT p.*, COUNT(pc.Pcl_ID_Prod) AS Cantidad_Ventas FROM Producto AS p


LEFT JOIN ProductoCliente AS pc
ON pc.Pcl_ID_Prod = p.Prd_ID
GROUP BY p.Prd_ID, p.Prd_Nombre;

3.5. Seleccionar Productos que han sido vendidos sólo una vez. El HAVING se utiliza
como un WHERE después de un WHERE y es requerido cuando usamos cláusulas de
agregación (Aggregation).

SELECT p.*, COUNT(Pcl_ID_Prod) AS Cantidad_Ventas FROM Producto AS p


LEFT JOIN ProductoCliente AS pc
ON pc.Pcl_ID_Prod = p.Prd_ID
GROUP BY p.Prd_ID, p.Prd_Nombre
HAVING COUNT(Pcl_ID_Prod) = 1;

3.6. Seleccionar Productos y cantidad de ventas entre el 01/04/2016 y el 30/06/2016 (4).

SELECT p.*, COUNT(pc.Pcl_ID_Prod) AS Cantidad_Ventas FROM Producto AS p

HERRAMIENTAS PARA EL MODELAMIENTO DE BASES DE DATOS Y CONSULTAS CON SQL - TELEDUC 5


JOIN ProductoCliente AS pc
ON pc.Pcl_ID_Prod = p.Prd_ID
WHERE pc.Pcl_Fecha_Entrega BETWEEN '2016-04-01' AND '2016-06-30'
GROUP BY p.Prd_ID;

3.7. Seleccionar todas las ventas complementando la información con el detalle del
producto y los datos de los clientes.

Contendrá información de las siguientes tablas:


Producto: ID, Nombre.
Cliente: Rut, Nombre, Apellido.
ProductoCliente: Fecha entrega, Saldo.

Poner alias en las columnas para quitar los prefijos

SELECT P.Prd_ID AS "ID Producto",


P.Prd_Nombre AS "Nombre Producto",
PC.Pcl_Cli_Rut AS "Rut Cliente",
C.Cli_Nombre AS "Nombre Cliente",
C.Cli_Apellido AS "Apellido Cliente",
PC.Pcl_Fecha_Entrega AS "Fecha Venta",
PC.Pcl_Saldo AS "Monto Venta"
FROM ProductoCliente AS PC
INNER JOIN Cliente AS C
ON PC.Pcl_Cli_Rut = C.Cli_Rut
LEFT JOIN Producto AS P
ON PC.Pcl_ID_Prod = P.Prd_ID;

HERRAMIENTAS PARA EL MODELAMIENTO DE BASES DE DATOS Y CONSULTAS CON SQL - TELEDUC 6


4. Tema 4: Subconsultas

4.1. Ventas máximas de cada producto con su nombre.

SELECT P.Prd_Nombre,
(SELECT MAX(PC.Pcl_Saldo)
FROM ProductoCliente AS PC
WHERE p.Prd_ID = PC.Pcl_ID_Prod) AS Precio_Max
FROM Producto AS P
ORDER BY Precio_Max DESC;

4.2. -- Todas las ventas que su precio total de venta sea mayor al promedio de ventas de la
tabla.

SELECT P.Prd_Nombre, PC.Pcl_Saldo


FROM Producto AS P
LEFT JOIN ProductoCliente AS PC
ON PC.Pcl_ID_Prod = P.Prd_ID
WHERE PC.Pcl_Saldo > (SELECT AVG(Pcl_Saldo)FROM ProductoCliente);

HERRAMIENTAS PARA EL MODELAMIENTO DE BASES DE DATOS Y CONSULTAS CON SQL - TELEDUC 7

También podría gustarte