Bases de Datos
• L E N G U A J E D E C O N S U L T A S ( S Q L )
• C A R A C T E R Í S T I C A S D E S Q L
• D E F I N I C I Ó N D E D A T O S
Facultad de Estadística e Informática
Lenguaje de Consultas (SQL)
•
Manipulación
Facultad de Estadística e Informática
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
• Media: avg
(solo sobre números)
• Mínimo: min
• Máximo: max
• Total: sum
(solo sobre números)
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
Determinar el saldo medio de las cuentas de la sucursal de Navacerrada
Facultad de Estadística e Informática
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
Para contar el número de tuplas de una relación se utiliza la función
count.
Facultad de Estadística e Informática
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
Si se desea eliminar los valores duplicados hay que utilizar la palabra
clave distinct en la expresión de agregación.
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
Sucursales en las que el saldo medio de las
cuentas sea superior a 1.200
Facultad de Estadística e Informática
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
Determinar el menor sueldo.
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
Determinar el mayor activo.
Facultad de Estadística e Informática
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
Ejercicios de repaso. Teniendo la base de datos:
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
Ejercicios:
1.
Determinar el mayor sueldo existente.
2.
Determinar el nombre de la empresa y el número de
empleados que tiene cada una, ordenados de forma
ascendente por número de empleado.
3.
Determinar las empresas y el sueldo promedio de los
trabajadores que pertenecen a cada una de ellas.
Facultad de Estadística e Informática
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
Ejercicios:
Determinar el mayor sueldo existente.
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
Ejercicios:
Determinar el nombre de la empresa y el número de
empleados que tiene cada una, ordenados de forma
ascendente por número de empleado.
SELECT
nombre_empresa,
COUNT
(nombre_empleado)
FROM `trabaja` GROUP BY nombre_empresa ORDER
Facultad de Estadística e Informática
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
Ejercicios:
Determinar las empresas y el sueldo promedio de los
trabajadores que pertenecen a cada una de ellas.
SELECT
nombre_empresa,
AVG
(sueldo) AS
promedio_sueldo FROM `trabaja` GROUP BY
nombre_empresa
Lenguaje de Consultas (SQL)
❖
Funciones de agregación
Ejercicios:
Determinar las empresas y el sueldo
promedio de los trabajadores que
pertenecen a cada una de ellas.
SELECT
nombre_empresa,
AVG
(sueldo) AS
promedio_sueldo FROM
`trabaja` GROUP BY
Facultad de Estadística e Informática
Lenguaje de Consultas (SQL)
❖
Reunión de relaciones
❖
Es otro mecanismo, además del producto cartesiano.
❖
Se usa como una subconsulta de la cláusula FROM.
❖
Son mecanismos para reunir las tuplas de las
relaciones:
❖
Reuniones condicionales
❖
Reuniones naturales
Lenguaje de Consultas (SQL)
❖
Reunión natural
❖
natural join
Reunión natural de las relaciones Prestamo y
Prestatario
prestamo
NATURAL JOIN
prestatario
Facultad de Estadística e Informática
Lenguaje de Consultas (SQL)
❖
Reunión natural
SELECT
*
FROM
prestamo
NATURAL JOIN
Lenguaje de
Consultas (SQL)
Reunión Natural
❖
Otro ejemplo:
Hallar todos los clientes que tienen una cuenta abierta y un
préstamo concedido en el banco.
Facultad de Estadística e Informática
Lenguaje de
Consultas (SQL)
Reunión Natural
❖
Otro ejemplo:
Hallar todos los clientes que tienen una cuenta abierta y un
préstamo concedido en el banco.
SELECT nombre_cliente
FROM impositor NATURAL JOIN
prestatario
Lenguaje de Consultas (SQL)
Reunión Natural
Hallar los nombres de todos los clientes que tienen
concedido un préstamo en el banco y averiguar su número
e importe:
Facultad de Estadística e Informática
Lenguaje de Consultas (SQL)
Reunión Natural
Hallar los nombres de todos los clientes que tienen
concedido un préstamo en el banco y averiguar su número
e importe:
Select nombre_cliente, prestatario.numero_préstamo, importe
from prestatario natural join prestamo
Lenguaje de
Consultas (SQL)
Reunión Natural
❖
Otro ejemplo:
Hallar el nombre de todas las sucursales con clientes que
tienen una cuenta abierta en el banco y
Facultad de Estadística e Informática
Lenguaje de
Consultas (SQL)
Reunión Natural
❖
Otro ejemplo:
Hallar el nombre de todas las sucursales con clientes que
tienen una cuenta abierta en el banco y
viven en Peguerinos
Select nombre_sucursal
from cliente natural join (cuenta natural join impositor)
Where ciudad_cliente=“Peguerinos”
Reunión natural
Base de datos EMPLEADOS
Facultad de Estadística e Informática
Base de datos EMPLEADOS
1.
Determinar el nombre y ciudad de residencia de todos los empleados que
trabajan en el Banco BANAMEX
2.
Determinar el nombre, domicilio y ciudad de residencia de todos los
empleados que ganan más de 10.000.
3.
Determinar el nombre, domicilio y ciudad de residencia de todos los
empleados que trabajan en el Banco BANAMEX y ganan más de 10.000.
4.
Determinar el nombre de los jefes con empleados en la ciudad de Xalapa.
Base de datos EMPLEADOS
1.
Determinar el nombre y ciudad de residencia de todos los empleados que
trabajan en el Banco BANAMEX
Lenguaje de Consultas (SQL)
Π
empleado.nombre_empleado, ciudad
(
Ϭ
nombre_empresa="Banamex" ( empleado trabaja))
Select empleado.nombre_empleado, ciudad
from empleado natural join trabaja
where nombre_empresa="Banamex"
Facultad de Estadística e Informática
Base de datos EMPLEADOS
2. Determinar el nombre, domicilio y ciudad de residencia de todos los
empleados que ganan más de 10.000.
Lenguaje de Consultas (SQL)
Π
empleado.nombre_empleado, calle, ciudad
(
Ϭ
sueldo>10000 ( empleado trabaja))
Select empleado.nombre_empleado, calle, ciudad
from empleado natural join trabaja
where sueldo>10000
Base de datos EMPLEADOS
3. Determinar el nombre, domicilio y ciudad de residencia de todos los
empleados que trabajan en el Banco BANAMEX y ganan más de 10.000.
SELECT
empleado
.nombre_empleado
,calle,ciudad
FROM
empleado
NATURAL JOI
N
trabaja
WHERE
nombre_empresa=
"Banamex"
AND
sueldo>
10000
Lenguaje de Consultas (SQL)
Π
empleado.nombre_empleado, calle, ciudad
(
Ϭ
nombre_empresa="Banamex“∧ sueldo>10000
( empleado trabaja))
Facultad de Estadística e Informática