Documentos de Académico
Documentos de Profesional
Documentos de Cultura
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
Structured Query Language (SQL)
Historia
BD2 - SQL
Structured Query Language (SQL)
Características de SQL Standard
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
DDL
Data Definition Language
BD2 - SQL
DDL - Tabla
¿Qué es una tabla?
BD2 - SQL
DDL - Tabla
Operaciones sobre tablas
CREATE TABLE
Crea una nueva tabla de la base.
Parámetros:
Nombre de la tabla
Nombre de cada columna
Tipo de datos de cada columna
Restricciones de clave primaria y clave foránea sobre otras
tablas
Los atributos se considerarán ordenados en la secuencia
en que se especifiquen.
ALTER TABLE
Modifica una tabla existente
DROP TABLE
Elimina la definición de la tabla (y los datos almacenados
en ella si existen)
BD2 - SQL
DDL - Tabla
Ejemplo
BD2 - SQL
DDL - Tabla
Ejemplo
BD2 - SQL
DDL - Tabla
Ejemplo
BD2 - SQL
DDL - Tabla
Ejemplo
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
DDL - Vista
¿Qué es una vista?
BD2 - SQL
DDL - Vista
Operaciones sobre vistas
CREATE VIEW
Crea una vista.
ALTER VIEW
Modifica una vista.
DROP VIEW
Elimina la vista.
BD2 - SQL
DDL - Vista
Ejemplo
BD2 - SQL
DDL - Vista Materializada
Implementación de vistas
1
El comportamiento por defecto para la materialización de vistas puede
variar según el DBMS
BD2 - SQL
DDL - Vista Materializada
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
DDL - Tipos de datos
2
la presicón dependende de la maquina
BD2 - SQL
DDL - Tipos de datos
User-defined TYPEs
CREATE TABLE
EMPLEADO (
Dni TDni,
SuperDni TDni,
...)
BD2 - SQL
DDL - Tipos de datos
DOMAIN
BD2 - SQL
DDL - Tipos de datos
Tipos Large-Object
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
DDL - Restricciones
Primary Key, Foreign Key, Check
PRIMARY KEY
Especifica uno o más atributos que constituyen la clave
principal de una relación.
FOREIGN KEY
Especifica una restricción de integridad referencial.
Acciones por violación: rechazo, SET NULL, CASCADE y
SET DEFAULT (deben aplicarse con ON DELETE u ON
UPDATE).
CONSTRAINT
Nombrar restricciones.
CHECK
Restricciones que se aplican individualmente a cada tupla.
UNIQUE
Especifica calves (secundarias) alternativas.
BD2 - SQL
DDL - Acciones por violación / Valor por defecto
Ejemplo Elmasri ed7 fig. 6.2
BD2 - SQL
DDL - Acciones por violación / Valor por defecto
Ejemplo Elmasri ed7 fig. 6.2
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
DML
Data Manipulation Language
BD2 - SQL
DML - INSERT
Ejemplo
BD2 - SQL
DML - INSERT
Ejemplo
BD2 - SQL
DML - INSERT
Ejemplo
BD2 - SQL
DML - DELETE
Borrar tuplas
BD2 - SQL
DML - DELETE
Ejemplo
BD2 - SQL
DML - UPDATE
Actualizar tuplas
BD2 - SQL
DML - UPDATE, DELETE
Ejemplo
BD2 - SQL
DML - Recuperación de datos
Sentencia SQL que nos permite recuperar información de
la base de datos.
donde:
<lista de atributos> lista de los atributos cuyos valores serán
recuperados por la consulta.
<lista de tablas> es una lista de las relaciones necesarias
para procesar la consulta.
<condicion> es una expresión condicional (booleana) que
identifica las tuplas que la consulta recuperará (es un
perdicado).
<expresion> más adelante veremos la expresión de cada
cláusula.
BD2 - SQL
DML - Recuperación de datos
SELECT
BD2 - SQL
DML - Recuperación de datos
SELECT
BD2 - SQL
DML - Recuperación de datos
Filtrado de repetidos
BD2 - SQL
DML - Filtrado de repetidos
Razones para no eliminar automáticamente tuplas repetidas
BD2 - SQL
DML - Filtrado de repetidos
Ejemplo
BD2 - SQL
DML - SELECT
* y expresiones aritméticas
BD2 - SQL
DML - WHERE
BD2 - SQL
DML - WHERE
Operadores de comparación
BD2 - SQL
DML - Recuperación de datos
Ejemplo
SELECT Precio
FROM VENTAS
WHERE #f = 2 and #p = 7;
SELECT #f
FROM VENTAS
WHERE Precio < 100 and #p = 4;
BD2 - SQL
DML - Recuperación de datos
FROM
BD2 - SQL
DML - Tablas como conjuntos
UNION, EXCEPT, INTERSECT
BD2 - SQL
DML - UNION
Ejemplos
BD2 - SQL
DML - Diferencia (EXCEPT, MINUS)
Ejemplos
BD2 - SQL
DML - Tablas como multiconjunto
UNION ALL, EXCEPT ALL, INTERSECT ALL
BD2 - SQL
DML - UNION ALL, EXCEPT ALL, INTERSECT ALL
Ejemplos
A R EXCEPT ALL S
R UNION ALL S
a1
a2 A A
a2 a1 a2
a3 a1 a3
a2
a2
S R INTERSECT ALL S
a2
A a3 A
a1 a4 a1
a2 a5 a2
a4
a5
BD2 - SQL
DML - Orden de tuplas
ORDER BY
BD2 - SQL
DML - Resolver ambiguedades de nombre
Renombre de atributos, Alias, Referencia explícita
BD2 - SQL
DML - Resolver ambiguedades de nombre
Renombre de atributos, Alias, Referencia explícita
BD2 - SQL
DML - Alias y Renombre de atributos
Ejemplo
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
DML - INNER JOIN
Tablas concatenadas y concatenación interna
BD2 - SQL
DML - INNER JOIN
Ejemplo - Imponiendo la igualdad
BD2 - SQL
DML - INNER JOIN
Ejemplo - Utilizando operador JOIN
SELECT Nombre, #p
FROM (VENTAS JOIN FABS ON VENTAS.#f=FABS.#f)
SELECT Nombre, #p
FROM (VENTAS JOIN FABS ON VENTAS.#f=FABS.#f)
WHERE Precio = 100;
BD2 - SQL
DML - INNER JOIN
Ejemplo - Utilizando operador JOIN
SELECT Nombre, #p
FROM (VENTAS JOIN FABS ON VENTAS.#f=FABS.#f)
SELECT Nombre, #p
FROM (VENTAS JOIN FABS ON VENTAS.#f=FABS.#f)
WHERE Precio = 100;
BD2 - SQL
DML - NATURAL JOIN
Ejemplo
SELECT Nombre, #p
FROM (VENTAS NATURAL JOIN FABS)
SELECT Nombre, #p
FROM (VENTAS NATURAL JOIN FABS)
WHERE Precio = 100;
BD2 - SQL
DML - NATURAL JOIN
Ejemplo
SELECT Nombre, #p
FROM (VENTAS NATURAL JOIN FABS)
SELECT Nombre, #p
FROM (VENTAS NATURAL JOIN FABS)
WHERE Precio = 100;
BD2 - SQL
DML - NATURAL JOIN
BD2 - SQL
DML - OUTER JOIN
Concatenación externa, LEFT, RIGHT y FULL
BD2 - SQL
DML - OUTER JOIN
Concatenación externa, LEFT, RIGHT y FULL
BD2 - SQL
DML - OUTER JOIN
Concatenación externa, LEFT, RIGHT y FULL
BD2 - SQL
DML - OUTER JOIN
Concatenación externa, LEFT, RIGHT y FULL
BD2 - SQL
DML - OUTER JOIN
Concatenación externa, LEFT, RIGHT y FULL
Si <operador_concatenacion>:
LEFT JOIN se agrega, para cada tupla de T1 que no
satisface la condición de JOIN con NINGUNA de T2, una
fila con NULOS (NULLs) en las columnas de T2.
RIGHT JOIN análogo al LEFT pero se incluyen todos los
de T2
FULL JOIN equivale a la unión del LEFT y RIGHT.
BD2 - SQL
DML - CROSS JOIN
Producto cartesiano
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
DML - Valores NULL
Comparaciones con valores NULL y Lógica de tres valores
BD2 - SQL
DML - Valores NULL
Lógica de tres valores
BD2 - SQL
DML - Valores NULL
Es o no es
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
DML - Consultas anidadas
Consulta anidada y consulta externa
BD2 - SQL
DML - Consultas anidadas
Ejemplos
BD2 - SQL
DML - Comparación de conjuntos/multiconjuntos
IN, ANY, ALL
BD2 - SQL
DML - EXISTS y UNIQUE
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
DML - Funciones de agregación
COUNT, SUM, MIN, MAX, AVG, RANK
BD2 - SQL
DML - Funciones de agregación
COUNT
BD2 - SQL
DML - Funciones de agregación
RANK
BD2 - SQL
DML - Funciones de agregación
RANK
BD2 - SQL
DML - Agrupamiento de tuplas
GROUP BY
BD2 - SQL
DML - Agrupamiento de tuplas
GROUP BY
¿Cómo funciona?
Particiona las ventas en subconjuntos o grupos de tuplas
donde cada grupo corresponde a un fabricante distinto.
De cada grupo devuelve el #f del fabricante y la cantidad
de tuplas de dicho grupo.
BD2 - SQL
DML - Agrupamiento de tuplas
GROUP BY
BD2 - SQL
DML - Agrupamiento de tuplas
HAVING
BD2 - SQL
Outline
1 Structured Query Language (SQL)
Introducción y características
2 SQL como Data Definition Language
Conceptos básicos, Tabla base
Tabla virtual, Vista Materializada
Tipos de datos
Restricciones, Acciones por violación, Valores por
defecto
3 SQL como Data Manipulation Language
Tablas concatenadas (INNER/OUTER JOIN)
Valores NULL
Consultas anidadas y comparación de
conjuntos/multiconjuntos
Funciones de agregación y agrupamiento de tuplas
Constructor CASE y consultas recursivas
BD2 - SQL
DML - Constructor CASE
BD2 - SQL
DML - Consultas recursivas
WITH [RECURSIVE]
BD2 - SQL
DML - Consultas recursivas
Ejemplo
BD2 - SQL
DML - Consultas recursivas
Ejemplo - cláusula WITH
BD2 - SQL
DML - Consultas recursivas
WITH [RECURSIVE]
BD2 - SQL
DML - Consultas recursivas
Ejemplo - cláusula CONNECT BY de Oracle
BD2 - SQL