Está en la página 1de 29

Introducción a SQL 07/11/2014

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
Introducción a SQL
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

Grupo de Ingeniería del Software y Bases de Datos


Departamento de Lenguajes y Sistemas Informáticos
Universidad de Sevilla

© Diseño de Amador Durán Toro, 2011


noviembre 2014

Introducción a SQL

• Objetivos de este tema (I)


– Saber qué es SQL.
1. Trazabilidad de
modelos – Conocer los orígenes y evolución de SQL.
2. ¿Qué es SQL?
3. Evolución – Utilizar SQL para:
histórica
4. Presentación del • Dotar de persistencia a las estructuras del modelo
modelo
5. Transformación conceptual.
SQL-Oracle
6. Create table • Definir restricciones de integridad asociadas a la creación
7. Actualización de
datos de tablas a partir de los requisitos.
8. Select
9. Consultas de • Añadir, actualizar y eliminar registros en las tablas creadas
varias tablas
10.Consultas
en correspondencia con los objetos y enlaces del modelo
complejas
conceptual.
© Diseño de Amador Durán Toro, 2011

noviembre 2014 Introducción a la Ingeniería del Software y a los Sistemas de Información 1

IISSI 1
Introducción a SQL 07/11/2014

Introducción a SQL

• Objetivos de este tema (II)


– Utilizar SQL para:
1. Trazabilidad de
modelos
• Definición de consultas sencillas asociadas al nivel
2. ¿Qué es SQL? operacional de un sistema de información.
3. Evolución
histórica
• Definición de consultas agrupadas
4. Presentación del
modelo
y con totales para los niveles táctico
5. Transformación
SQL-Oracle
6. Create table
y estratégico de un sistema de
7. Actualización de
datos
información.
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 2

Introducción a SQL

• Trazabilidad de modelos
– A partir del modelo conceptual se puede obtener
1. Trazabilidad de
modelos un modelo relacional que se implementa
2. ¿Qué es SQL?
3. Evolución posteriormente en SQL para obtener el esquema
histórica
4. Presentación del
modelo
de la base de datos.
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
Requisitos
varias tablas
10.Consultas restricciones
complejas

create table orders (


La
Labo
bora
rato
tori
rioo C
Caatá
tállogo
ogo

cif
nombre
publ
publiiccaa
fecha order_id number,
*
dirección
order_dt date,
? MC MR MR SQL
aallm
mac
aceenaP
naPro
roduct
ductos
osEn
En cust_id references customer
* *
constraint pk_orders (order_id)
© Diseño de Amador Durán Toro, 2011

A
Allma
maccéénn LLííne
neaaD
DeeC
Caatá
tállogo
ogo PPro
roduc
ducto
to

nombre
dirección
precioMenosDeCien
precioMásDeCien *
rref
ef er
erenc
enciiaa
1
código
nombre
)
descripción
….
Modelo conceptual
Modelo relacional Código SQL

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 3

IISSI 2
Introducción a SQL 07/11/2014

Introducción a SQL

• ¿Qué es SQL?
– SQL (Structured Query Language) es el lenguaje
estándar para definir, manipular y consultar bases de
1. Trazabilidad de
modelos datos relacionales.
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
– Puede ser utilizado en lenguajes de programación de
5. Transformación
SQL-Oracle
propósito general como Java o bien en lenguajes
6. Create table específicos del fabricante (p.ej. PL/SQL en Oracle,
7. Actualización de
datos Transact SQL en MS-SQL Server).
8. Select
9. Consultas de
varias tablas
10.Consultas – Se pueden distinguir dos tipos de sentencias:
complejas
• DDL (Data Definition Language): gestión del esquema
de la base de datos (creación, modificación y borrado
de tablas, claves, etc.).
• DML (Data Manipulation Language): gestión de los

© Diseño de Amador Durán Toro, 2011


datos (inserción, actualización, borrado y consulta de
datos).

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 4

Introducción a SQL

• ¿Qué es SQL?

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 5

IISSI 3
Introducción a SQL 07/11/2014

Introducción a SQL

Año Nombre Alias Comentarios

1986 SQL-86 SQL-87 Primera publicación hecha por ANSI. Confirmada


1. Trazabilidad de
modelos
por ISO en 1987.
2. ¿Qué es SQL?
3. Evolución
histórica 1989 SQL-89 Pocas modificaciones
4. Presentación del SQL
modelo Entry level
1992 SQL-92 SQL2 Importantes modificaciones
5. Transformación
SQL-Oracle
6. Create table 1999 SQL:1999 SQL2000 Se agregaron expresiones regulares, consultas
7. Actualización de
datos SQL3 recursivas (para relaciones jerárquicas), triggers
8. Select
y algunas características orientadas a objetos.
9. Consultas de
varias tablas
10.Consultas 2003 SQL:2003 Introduce características de XML, junto a la
complejas
estandarizyación de objetos sequence y los
campos autonuméricos

2006 SQL:2006 Define la manera en la cual SQL se puede


utilizar conjuntamente con XML

© Diseño de Amador Durán Toro, 2011


2008 SQL:2008 Modificaciones de ORDER BY, incluye
disparadores tipo INSTEAD OF...

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 6

Introducción a SQL

• Modelo Conceptual (Diagrama de clases)

1. Trazabilidad de class Departamentos


modelos
2. ¿Qué es SQL? {nombre
empleado: el
3. Evolución nombre del
histórica {fechas: la fecha empleado es
inicial no puede único en la base
4. Presentación del {departamento en
ser superior a la de datos y no localidad: la
modelo fecha final.} {comisión: la
puede ser nulo.} combinación
5. Transformación comisión es un
depertamento y
SQL-Oracle valor entre 0 y 1.}
localidad no se puede
repetir.}
6. Create table
7. Actualización de esJefe Empleado
datos 0..1
8. Select nombre
Departamento
9. Consultas de salario
varias tablas fechaInicial trabajaEn
esJefeDe nombreDep
10.Consultas fechaFinal 0..* 0..1
localidad
complejas
comision
tieneJefe
0..*
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 7

IISSI 4
Introducción a SQL 07/11/2014

Introducción a SQL

• Modelo Relacional (Diagrama relacional)

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 8

Introducción a SQL

• Transformación del MR a SQL-Oracle


– Se creará una tabla por cada relación del modelo relacional.
1. Trazabilidad de – Será necesario la definición de claves primarias y ajenas.
modelos
2. ¿Qué es SQL? – El resto de restricciones se definen a nivel de tabla mediante:
3. Evolución
histórica • CHECK <condición>. Limita los valores a insertar.
4. Presentación del
modelo • UNIQUE. Para asegurar que no se repiten valores.
5. Transformación
SQL-Oracle • Not Null. No admite nulos.
6. Create table
7. Actualización de
• En caso de restricciones que no se puedan definir mediante CHECK
datos o bien que afecten a más de una tabla no será posible la definición
8. Select
9. Consultas de
a nivel de tabla. Cuando el SGBD sea Oracle la definición de dichas
varias tablas
restricciones será mediante triggers escritos en PL/SQL.
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 9

IISSI 5
Introducción a SQL 07/11/2014

Introducción a SQL

• Restricciones a nivel de tabla


– Not Null. No admite valores nulos.
1. Trazabilidad de
modelos – Unique. Sólo admite valores únicos.
2. ¿Qué es SQL?
3. Evolución
histórica – Default. Valor por defecto.
4. Presentación del
modelo
5. Transformación
– Primary Key. Clave primaria (integridad de la
SQL-Oracle
6. Create table
entidad).
7. Actualización de
datos – Check. Definición de reglas complejas
8. Select
9. Consultas de
varias tablas
• Todo valor que se introduzca en la columna debe
10.Consultas
complejas
cumplir la condición.
• Admite las mismas expresiones que una cláusula
WHERE.
– Foreign Key. Restricciones de integridad

© Diseño de Amador Durán Toro, 2011


referencial.

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 10

Introducción a SQL

• Creación de tablas
– Claves primarias
1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
Dos posibles
4. Presentación del
modelo formas de
5. Transformación definir PK.
SQL-Oracle
6. Create table
7. Actualización de Notación para PK
datos
formada por más
8. Select
9. Consultas de
de un atributo
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 11

IISSI 6
Introducción a SQL 07/11/2014

Introducción a SQL

• Creación de tablas
– Not null, unique, check
1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 12

Introducción a SQL

• Creación de tablas
– Not null, unique, check Constraint restricción
1. Trazabilidad de permite darle nombre a la
modelos restricción. Por defecto,
2. ¿Qué es SQL? Oracle le signa SY_Cn,
3. Evolución
histórica
siendo n un entero. En
4. Presentación del caso de que le demos
modelo nombre será más fácil
5. Transformación identificar de que
SQL-Oracle
6. Create table
restricción se trata
7. Actualización de cuando se produzca el
datos mensaje de error.
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 13

IISSI 7
Introducción a SQL 07/11/2014

Introducción a SQL

• Creación de tablas
– Claves ajenas
1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 14

Introducción a SQL

• Creación de tablas
– Claves ajenas en la tabla EMPLEADOS
1. Trazabilidad de
modelos Integridad
2. ¿Qué es SQL?
3. Evolución
Referencial
histórica
4. Presentación del
modelo
5. Transformación
• Cada fila de empleados tiene un valor de OID_D que es
SQL-Oracle
6. Create table
null ó bien referencia una fila de la tabla departamentos
7. Actualización de
datos
• Cada fila de empleados tiene un valor de jefe que es
8. Select null ó bien referencia una fila de la misma tabla
9. Consultas de
varias tablas
10.Consultas
complejas
– ¿Qué ocurre cuando se actualiza el elemento
referenciado mediante la FK?
• Se borra o modifica el OID_D referenciado (de la tabla
departamentos)
© Diseño de Amador Durán Toro, 2011

• Se borra o modifica el OID_E referenciado (de la tabla


empleados)

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 15

IISSI 8
Introducción a SQL 07/11/2014

Introducción a SQL

• Creación de tablas
Filas referenciadas
1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
Filas referenciadas

– ¿Qué ocurre si en la tabla departamentos se borra el


departamento 1 o se modifica el OID_D?

© Diseño de Amador Durán Toro, 2011


– ¿Qué ocurre si en la tabla empleados se borra el
empleado 2 o se modifica el OID_E?

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 16

Introducción a SQL

• Opciones de clave ajena


– Para preservar la integridad referencial, al
1. Trazabilidad de
modelos
2. ¿Qué es SQL?
definir la clave ajena se pueden especificar
3. Evolución
histórica las acciones a efectuar:
4. Presentación del
modelo
5. Transformación • Cuando se borra (ON DELETE)
SQL-Oracle
6. Create table
7. Actualización de
• Cuando se modifica (ON UPDATE)
datos
8. Select
9. Consultas de
la FK en las filas referenciadas.
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 17

IISSI 9
Introducción a SQL 07/11/2014

Introducción a SQL

• Opciones de clave ajena


– ON DELETE
1. Trazabilidad de
modelos • RESTRICT. No se permite borrar una fila que sea
2. ¿Qué es SQL? referenciada por otras.
3. Evolución
histórica
• CASCADE. Si se borra la fila referenciada, se borran las
4. Presentación del
modelo filas que la referencian.
5. Transformación
SQL-Oracle – Esta es la opción que se especifica al definir la clave ajena
6. Create table
7. Actualización de
cuando se trate de una composición ej. en facturas y
datos líneas de factura. En líneas de factura se define la clave
8. Select
9. Consultas de
ajena sobre facturas de forma que si se borra una factura
varias tablas en cascada se borran las líneas de factura.
10.Consultas
complejas – No se recomienda especificar esta opción en el resto de
los casos ya que si hay varios borrados en cascada se
puede perder gran parte de la base de datos.
• SET NULL. Si se borra la fila referenciada, en las filas
que referencian el valor de la clave ajena se establece

© Diseño de Amador Durán Toro, 2011


a NULL.

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 18

Introducción a SQL

• Opciones de clave ajena


– ON UPDATE
1. Trazabilidad de
modelos
2. ¿Qué es SQL?
• RESTRICT. No se permite modificar el valor de la
3. Evolución
histórica
clave ajena en la fila referenciada.
4. Presentación del
modelo
5. Transformación
SQL-Oracle
• CASCADE. Si se modifica el valor de la clave ajena
6. Create table
7. Actualización de
datos
en la fila referenciada, se modifica al mismo valor en
8. Select las filas que la referencian.
9. Consultas de
varias tablas
10.Consultas
complejas
• SET NULL. Si se modifica el valor de la clave ajena
en la fila referenciada, el valor en las filas que la
referencian se establece a NULL.
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 19

IISSI 10
Introducción a SQL 07/11/2014

Introducción a SQL

• Opciones de clave ajena en Oracle 9i.

1. Trazabilidad de
modelos • ON DELETE RESTRICT
2. ¿Qué es SQL? Opciones por defecto
3. Evolución • ON UPDATE RESTRICT
histórica
4. Presentación del
modelo
• ON DELETE CASCADE
5. Transformación
SQL-Oracle • ON DELETE SET NULL
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 20

Introducción a SQL

• Opciones de clave ajena


Por defecto:
1. Trazabilidad de
modelos
ON DELETE RESTRICT:
2. ¿Qué es SQL? No se permite borrar un
3. Evolución departamento que tenga
histórica empleados.
4. Presentación del
modelo
5. Transformación ON UPDATE RESTRICT:
SQL-Oracle No se permite modificar el
6. Create table
OID_D de un departamento
7. Actualización de
datos que tenga empleados.
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 21

IISSI 11
Introducción a SQL 07/11/2014

Introducción a SQL

• Opciones de clave ajena


ON DELETE SET NULL:
1. Trazabilidad de
modelos
Si se borra un empleado, en
2. ¿Qué es SQL? los empleados de los que es
3. Evolución jefe aparecerá null en el
histórica campo jefe.
4. Presentación del
modelo
5. Transformación Por defecto:
SQL-Oracle ON UPDATE RESTRICT
6. Create table
No se permite modificar el
7. Actualización de
datos OID_E de los empleados que
8. Select tengan empleados
9. Consultas de subordinados.
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 22

Introducción a SQL

• Insert
– Una vez creadas las tablas con sus restricciones de
1. Trazabilidad de
modelos
integridad (intensión), se insertan las filas (extensión).
2. ¿Qué es SQL?
Especifica los atributos
3. Evolución
histórica cuyos valores se van a
4. Presentación del insertar
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

No se especifican atributos. Es el
© Diseño de Amador Durán Toro, 2011

orden que tienen en la tabla.


Hay que darle valor a todos los
atributos

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 23

IISSI 12
Introducción a SQL 07/11/2014

Introducción a SQL

• Update: Modifica datos

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
Especifica la columna a
4. Presentación del
modelo modificar y el nuevo valor.
5. Transformación
SQL-Oracle
6. Create table
• Delete: Borra filas
7. Actualización de
datos
8. Select
Selecciona las filas
9. Consultas de
varias tablas afectadas (modificar,
10.Consultas borrar…..)
complejas

– En lugar de borrar, es más usual marcar los registros


como borrados o pasarlos a una tabla de datos

© Diseño de Amador Durán Toro, 2011


históricos y así pueden ser recuperados por ej. con fines
estadísticos.

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 24

Introducción a SQL

• Select
– Permite seleccionar datos de la base de datos.
1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
SELECT < lista de columnas >
modelo
5. Transformación
SQL-Oracle FROM < T1, T2,.. ,Tn >
6. Create table
7. Actualización de
datos WHERE < condición >
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 25

IISSI 13
Introducción a SQL 07/11/2014

Introducción a SQL

• Select

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 26

Introducción a SQL

• Distinct

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

Distinct elimina filas duplicadas

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 27

IISSI 14
Introducción a SQL 07/11/2014

Introducción a SQL

• La cláusula WHERE puede estar formada por:


– Una combinación de comparaciones booleanas con los
1. Trazabilidad de operadores AND, OR y NOT
modelos
2. ¿Qué es SQL?
3. Evolución
– Operador EXISTS
histórica
4. Presentación del – Operador IN
modelo
5. Transformación
SQL-Oracle
– Operadores ALL, ANY o SOME
6. Create table
7. Actualización de
– Between
datos
8. Select – Unique
9. Consultas de
varias tablas – Top (no soportado en Oracle 9i, donde hay que utilizar
10.Consultas
complejas
el atributo ‘rownum’ que tienen las tablas)
– Is null
– Like

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 28

Introducción a SQL

• Between
– Selecc¡ona valores en un rango.
1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 29

IISSI 15
Introducción a SQL 07/11/2014

Introducción a SQL

• IN

1. Trazabilidad de
modelos
2. ¿Qué es SQL? – Permite comparar un valor individual v (un nombre de atributo)
3. Evolución
histórica con un conjunto de valores V (generalmente una consulta
4. Presentación del
modelo anidada). Devuelve TRUE si v es uno de los elementos de V.
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 30

Introducción a SQL

• Subcadenas (Like)

1. Trazabilidad de
modelos – Para comparar cadenas de caracteres se utiliza el operador de
2. ¿Qué es SQL?
comparación Like.
3. Evolución
histórica
4. Presentación del
– Las cadenas parciales se especifican mediante los caracteres
modelo
reservados % y _.
5. Transformación
SQL-Oracle
• % representa cualquier cadena de caracteres
6. Create table
7. Actualización de • _ representa un único caracter
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 31

IISSI 16
Introducción a SQL 07/11/2014

Introducción a SQL

• Order by

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
Ordena por departamento
9. Consultas de
varias tablas descendente y a igual
10.Consultas departamento por nombre del
complejas empleado alfabético

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 32

Introducción a SQL

• Consultas de varias tablas


– El producto cartesina devuelve una nueva relación con
1. Trazabilidad de
modelos
todas las posibles combinaciones entre las tuplas de las
2. ¿Qué es SQL? relaciones involucradas.
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle SELECT * FROM A, B;
6. Create table
7. Actualización de
datos a x
8. Select
9. Consultas de
a y
varias tablas a x b x
10.Consultas
complejas
b y b y
c c x
c y
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 33

IISSI 17
Introducción a SQL 07/11/2014

Introducción a SQL

• Producto cartesiano
Empleados (5 filas) Departamentos (3 filas)
1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas • 15 (3x5) filas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 34

Introducción a SQL

• Producto cartesiano con condición


Empleados (5 filas) Departamentos (3 filas)
1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle Renombrado
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

4 filas. Las filas que no enlazan (no tienen igual oid_d) no aparecen

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 35

IISSI 18
Introducción a SQL 07/11/2014

Introducción a SQL

• Natural join
– Iguala los atributos que se llaman igual y los presenta solo una vez.
1. Trazabilidad de Equivalentes
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 36

Introducción a SQL

• LEFT JOIN

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

Aparecen las filas que enlazan (igual oid_d) y los empleados sin departamento (oid_d null)

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 37

IISSI 19
Introducción a SQL 07/11/2014

Introducción a SQL

• RIGHT JOIN

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


Aparecen las filas que enlazan (igual oid_d) y losdepartamentos sin empleados

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 38

Introducción a SQL

• FULL JOIN

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

Aparecen todos los empleados y departamentos

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 39

IISSI 20
Introducción a SQL 07/11/2014

Introducción a SQL

• Union, intersect, except (minus Oracle)

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas – Como resultado de los operadores conjuntistas, se obtiene un nuevo conjunto y por
tanto sin duplicados.
– Las tablas operando tienen que ser compatibles (igual nº de columnas y las
correspondientes del mismo tipo).

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 40

Introducción a SQL

• Exists

1. Trazabilidad de
modelos
2. ¿Qué es SQL? ?????

3. Evolución
histórica
– Sirve para comprobar si el resultado de una consulta
4. Presentación del
modelo
anidada contiene tuplas.
5. Transformación
SQL-Oracle – “Obtener los departamentos sin empleados”.
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 41

IISSI 21
Introducción a SQL 07/11/2014

Introducción a SQL

• Exists

1. Trazabilidad de
modelos
?????
2. ¿Qué es SQL?
3. Evolución
histórica
– Sirve para comprobar si el resultado de una consulta
4. Presentación del
modelo
anidada contiene tuplas.
5. Transformación
SQL-Oracle – “Obtener los departamentos sin empleados”.
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 42

Introducción a SQL

• C
Consultas complejas

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de – Están enfocadas a los niveles táctico y estratégico de
datos
8. Select un sistema de información.
9. Consultas de
varias tablas
– Presentan los datos agrupados a partir de los registros
10.Consultas
complejas
individuales que corresponden a las operaciones diarias
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 43

IISSI 22
Introducción a SQL 07/11/2014

Introducción a SQL

• Funciones agregadas
– COUNT devuelve el número de filas o valores
1. Trazabilidad de
modelos especificados en una consulta.
2. ¿Qué es SQL?
3. Evolución
histórica
– SUM, MAX, MIN, AVG se aplican a un conjunto o
4. Presentación del
modelo multiconjunto de valores numéricos y devuelven
5. Transformación
SQL-Oracle respectivamente la suma, el valor máximo, el
6. Create table
7. Actualización de mínimo y el promedio de dichos valores.
datos
8. Select
9. Consultas de
– Estas funciones se pueden usar con la cláusula
varias tablas
10.Consultas SELECT o con la cláusula HAVING.
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 44

Introducción a SQL

• Funciones agregadas

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución – “Número de empleados, salario mínimo, salario
histórica
4. Presentación del
modelo
máximo, salario medio y salario total”.
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 45

IISSI 23
Introducción a SQL 07/11/2014

Introducción a SQL

• Group by
– Agrupa las tuplas que tienen el mismo valor para
1. Trazabilidad de
modelos ciertos atributos.
2. ¿Qué es SQL?
3. Evolución
histórica
– Permite aplicar las funciones de agregación (sum,
4. Presentación del
modelo max, min, avg, count, etc.) a cada uno de dichos
5. Transformación
SQL-Oracle grupos.
6. Create table
7. Actualización de
datos
– Los atributos de agrupación pueden aparecer en
8. Select
9. Consultas de
la cláusula SELECT.
varias tablas
10.Consultas
complejas
– Es el equivalente al operador agregación de
Álgebra Relacional

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 46

Introducción a SQL

• Group by

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
Group By OID_D
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

– En la clausula select sólo pueden aparecer opcionalmente los


atributos de agrupación y las funciones de agregación.

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 47

IISSI 24
Introducción a SQL 07/11/2014

Introducción a SQL

• Group by

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución – “Número de empleados, salario mínimo, salario
histórica
4. Presentación del
modelo
máximo, salario medio y salario total y por
5. Transformación
SQL-Oracle
departamento”.
departamento
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 48

Introducción a SQL

• Group by SQL vs Agrupación AR

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas – En Algebra Relacional:
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 49

IISSI 25
Introducción a SQL 07/11/2014

Introducción a SQL

• Having
– Especifica una condición sobre el grupo de tuplas
1. Trazabilidad de
modelos asociado a cada valor de los atributos de
2. ¿Qué es SQL?
3. Evolución agrupación (clases de equivalencia).
histórica
4. Presentación del
modelo – Sólo los grupos que cumplan la condición entrarán
5. Transformación
SQL-Oracle en el resultado de la consulta.
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 50

Introducción a SQL

• Having

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución – “Obtener, para los departamentos que tengan más de
histórica
4. Presentación del
modelo
empleado, el código de departamento, número de
un empleado
5. Transformación
SQL-Oracle
empleados que tiene, salario máximo y salario medio”.
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 51

IISSI 26
Introducción a SQL 07/11/2014

Introducción a SQL

• Having

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
– Having es equivalente a hacer una restricción después
8. Select
9. Consultas de
varias tablas
del group by
10.Consultas
complejas
Alias, renombra count(*)

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 52

Introducción a SQL

• Group by SQL vs Agrupación AR

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas – En Algebra Relacional:
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 53

IISSI 27
Introducción a SQL 07/11/2014

Introducción a SQL

• ANY, ALL

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
– Permite comparar un valor individual v (nombre de atributo)
3. Evolución
histórica
con un conjunto de valores V (consulta anidada).
4. Presentación del
modelo
– “Obtener los empleados con salario mayor que el salario medio
5. Transformación
SQL-Oracle
en todos los departamento”.
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 54

Introducción a SQL

• Ejercicios

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución – “Departamento con más empleados”.
histórica
4. Presentación del
modelo Equivalentes
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

noviembre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 55

IISSI 28
Introducción a SQL 07/11/2014

Introducción a SQL

• Comentarios, sugerencias, …

1. Trazabilidad de
modelos
2. ¿Qué es SQL?
3. Evolución
histórica
4. Presentación del
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas

© Diseño de Amador Durán Toro, 2011


octubre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 56

Introducción a SQL

• Historia de esta presentación


– Primera versión a partir de material previo: junio 2011 (Mayte Gómez).

1. Trazabilidad de
– Revisión final y simplificación: octubre 2011 (Amador Durán).
modelos
2. ¿Qué es SQL?
– Retoques menores: octubre 2012 (Amador Durán).
3. Evolución – Reducción y adaptación a ejemplo: noviembre 2013 (Mayte Gómez).
histórica
4. Presentación del – Cambios de contenido y ejemplos: octubre 2014 (Margarita Cruz).
modelo
5. Transformación
SQL-Oracle
6. Create table
7. Actualización de
datos
8. Select
9. Consultas de
varias tablas
10.Consultas
complejas
© Diseño de Amador Durán Toro, 2011

octubre 2012 Introducción a la Ingeniería del Software y a los Sistemas de Información 57

IISSI 29

También podría gustarte