2014. Introducción a SQL

Introducción a SQL 07/11/2014 1. Trazabilidad de modelos 2. ¿Qué es SQL? 3. Evolución histórica 4. Presentación del modelo Introducción a SQL 5. T

3 downloads 138 Views 961KB Size

Recommend Stories


Curso Querying Microsoft SQL Server 2014 (20461)
Curso Querying Microsoft SQL Server 2014 (20461) Programa de Estudio www.educacionit.com Curso Querying Microsoft SQL Server 2014 (20461) Aprende l

Introducción a SQL (DML)
Introducción a SQL 08/11/2013 1. Introducción 2. Inserción 3. Borrado 4. Modificación 5. Consultas básicas 6. Consultas avanzadas Introducción a SQ

SQL
Oracle University | Contact Us: +34916267792 Oracle Database: Programación con PL/SQL Duration: 5 Days What you will learn Este curso de formación Or

SQL
Oracle University | Contacte con nosotros: 902 302 302 Oracle Database 10g: Conceptos Básicos de SQL y PL/SQL Duración: 5 Días Lo que aprenderá Obte

SQL
Oracle University | Contact Us: +34916267792 Oracle Database: Conceptos Básicos de SQL y PL/SQL Duration: 5 Days What you will learn Este curso está

MS_20467 Designing Business Intelligence Solutions with Microsoft SQL Server 2014
Gold Learning Gold Business Intelligence Silver Data Plataform MS_20467 Designing Business Intelligence Solutions with Microsoft SQL Server 2014 www

Story Transcript

Introducción a SQL

07/11/2014

1. Trazabilidad de modelos 2. ¿Qué es SQL? 3. Evolución histórica 4. Presentación del modelo

Introducción a SQL

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 © Diseño de Amador Durán Toro, 2011

Universidad de Sevilla noviembre 2014

Introducción a SQL

• Objetivos de este tema (I) – Saber qué es SQL. 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

noviembre 2014

IISSI

– Conocer los orígenes y evolución de SQL. – Utilizar SQL para: • Dotar de persistencia a las estructuras del modelo conceptual. • Definir restricciones de integridad asociadas a la creación de tablas a partir de los requisitos. • Añadir, actualizar y eliminar registros en las tablas creadas en correspondencia con los objetos y enlaces del modelo conceptual.

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

1

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

1. Trazabilidad de modelos

1

Introducción a SQL

07/11/2014

Introducción a SQL

• Objetivos de este tema (II) – Utilizar SQL para: • Definición de consultas sencillas asociadas al nivel operacional de un sistema de información.

1. Trazabilidad de modelos 2. ¿Qué es SQL? 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

y estratégico de un sistema de

6. Create table 7. Actualización de datos

información.

8. Select 9. Consultas de varias tablas

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

noviembre 2012

2

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

10.Consultas complejas

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?

posteriormente en SQL para obtener el esquema

3. Evolución histórica

de la base de datos.

4. Presentación del modelo 5. Transformación SQL-Oracle 6. Create table 7. Actualización de datos 9. Consultas de varias tablas

Requisitos

10.Consultas complejas

restricciones

La Labo bora rato tori rioo cif nombre dirección

C Caatá tállogo ogo

publ publiiccaa

fecha *

MC

?

MR

MR

aallm mac aceenaP naPro roduct ductos osEn En * A Allma maccéénn nombre dirección

* LLííne neaaD DeeC Caatá tállogo ogo precioMenosDeCien precioMásDeCien

rref ef er erenc enciiaa *

1

PPro roduc ducto to código nombre descripción

Modelo conceptual

noviembre 2012

IISSI

Modelo relacional

SQL

create table orders ( order_id number, order_dt date, cust_id references customer constraint pk_orders (order_id) ) ….

Código SQL

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

3

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

8. Select

2

Introducción a SQL

07/11/2014

Introducción a SQL

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

– SQL (Structured Query Language) es el lenguaje estándar para definir, manipular y consultar bases de datos relacionales.

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

– Puede ser utilizado en lenguajes de programación de propósito general como Java o bien en lenguajes específicos del fabricante (p.ej. PL/SQL en Oracle, Transact SQL en MS-SQL Server).

8. Select

10.Consultas complejas

– Se pueden distinguir dos tipos de sentencias: • 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 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

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

9. Consultas de varias tablas

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

noviembre 2012

IISSI

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

5

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

10.Consultas complejas

3

Introducción a SQL

07/11/2014

Introducción a SQL

1. Trazabilidad de modelos

Año

Nombre Alias

Comentarios

1986

SQL-86

Primera publicación hecha por ANSI. Confirmada

SQL-87

por ISO en 1987.

2. ¿Qué es SQL? 3. Evolución histórica 4. Presentación del modelo 5. Transformación SQL-Oracle 6. Create table

1989

SQL-89

1992

SQL-92

SQL2

Importantes modificaciones

1999

SQL:1999

SQL2000

Se agregaron expresiones regulares, consultas recursivas (para relaciones jerárquicas), triggers

7. Actualización de datos

Pocas modificaciones

SQL3

8. Select

y algunas características orientadas a objetos.

9. Consultas de varias tablas 10.Consultas complejas

SQL Entry level

2003

SQL:2003

Introduce características de XML, junto a la estandarizyación de objetos sequence y los campos autonuméricos

2006

SQL:2006

Define la manera en la cual SQL se puede

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

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

utilizar conjuntamente con XML

Introducción a SQL

• Modelo Conceptual (Diagrama de clases) 1. Trazabilidad de modelos

class Departamentos

2. ¿Qué es SQL? 3. Evolución histórica

{fechas: la fecha inicial no puede ser superior a la fecha final.}

4. Presentación del modelo

{nombre empleado: el nombre del empleado es único en la base de datos y no puede ser nulo.}

5. Transformación SQL-Oracle

{comisión: la comisión es un valor entre 0 y 1.}

6. Create table 7. Actualización de datos

esJefe 0..1

9. Consultas de varias tablas

Empleado nombre salario fechaInicial fechaFinal comision

8. Select esJefeDe

10.Consultas complejas

{departamento en localidad: la combinación depertamento y localidad no se puede repetir.}

Departamento trabajaEn 0..*

0..1

nombreDep localidad

noviembre 2012

IISSI

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

7

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

tieneJefe 0..*

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

noviembre 2012

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

8

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

10.Consultas complejas

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 modelos

– Será necesario la definición de claves primarias y ajenas.

2. ¿Qué es SQL?

– El resto de restricciones se definen a nivel de tabla mediante:

3. Evolución histórica

• CHECK . 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 datos 8. Select 9. Consultas de varias tablas

• En caso de restricciones que no se puedan definir mediante CHECK o bien que afecten a más de una tabla no será posible la definición a nivel de tabla. Cuando el SGBD sea Oracle la definición de dichas restricciones será mediante triggers escritos en PL/SQL.

noviembre 2012

IISSI

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

9

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

10.Consultas complejas

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 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

– Unique. Sólo admite valores únicos. – Default. Valor por defecto. – Primary Key. Clave primaria (integridad de la entidad). – Check. Definición de reglas complejas • Todo valor que se introduzca en la columna debe cumplir la condición. • Admite las mismas expresiones que una cláusula

– Foreign Key. Restricciones de integridad referencial.

noviembre 2012

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

10

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

WHERE.

Introducción a SQL

• Creación de tablas – Claves primarias 1. Trazabilidad de modelos 2. ¿Qué es SQL? 3. Evolución histórica 4. Presentación del modelo 5. Transformación SQL-Oracle

Dos posibles formas de definir PK.

6. Create table 7. Actualización de datos 8. Select 9. Consultas de varias tablas

Notación para PK formada por más de un atributo

noviembre 2012

IISSI

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

11

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

10.Consultas complejas

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

noviembre 2012

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

12

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

10.Consultas complejas

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

Constraint restricción permite darle nombre a la restricción. Por defecto, Oracle le signa SY_Cn, siendo n un entero. En caso de que le demos nombre será más fácil identificar de que restricción se trata cuando se produzca el mensaje de error.

8. Select 9. Consultas de varias tablas

noviembre 2012

IISSI

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

13

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

10.Consultas complejas

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

noviembre 2012

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

14

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

10.Consultas complejas

Introducción a SQL

• Creación de tablas – Claves ajenas en la tabla EMPLEADOS 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

Integridad Referencial • Cada fila de empleados tiene un valor de OID_D que es null ó bien referencia una fila de la tabla departamentos • Cada fila de empleados tiene un valor de jefe que es null ó bien referencia una fila de la misma tabla

9. Consultas de varias tablas

– ¿Qué ocurre cuando se actualiza el elemento referenciado mediante la FK? • Se borra o modifica el OID_D referenciado (de la tabla departamentos) • Se borra o modifica el OID_E referenciado (de la tabla empleados)

noviembre 2012

IISSI

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

15

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

10.Consultas complejas

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 – ¿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

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

departamento 1 o se modifica el OID_D?

Introducción a SQL

• Opciones de clave ajena 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

– Para preservar la integridad referencial, al definir la clave ajena se pueden especificar las acciones a efectuar: • Cuando se borra (ON DELETE) • Cuando se modifica (ON UPDATE)

la FK en las filas referenciadas.

noviembre 2012

IISSI

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

17

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

10.Consultas complejas

9

Introducción a SQL

07/11/2014

Introducción a SQL



Opciones de clave ajena –

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

ON DELETE • RESTRICT. No se permite borrar una fila que sea referenciada por otras. • CASCADE. Si se borra la fila referenciada, se borran las filas que la referencian. – Esta es la opción que se especifica al definir la clave ajena cuando se trate de una composición ej. en facturas y líneas de factura. En líneas de factura se define la clave ajena sobre facturas de forma que si se borra una factura en cascada se borran las líneas de factura. – 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 a NULL.

noviembre 2012

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

18

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

1. Trazabilidad de modelos

Introducción a SQL

• Opciones de clave ajena – ON UPDATE 1. Trazabilidad de modelos 2. ¿Qué es SQL? 3. Evolución histórica

• RESTRICT. No se permite modificar el valor de la clave ajena en la fila referenciada.

4. Presentación del modelo 5. Transformación SQL-Oracle 6. Create table 7. Actualización de datos 8. Select

• CASCADE. Si se modifica el valor de la clave ajena en la fila referenciada, se modifica al mismo valor en las filas que la referencian.

9. Consultas de varias tablas 10.Consultas complejas

• SET NULL. Si se modifica el valor de la clave ajena

noviembre 2012

IISSI

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

19

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

en la fila referenciada, el valor en las filas que la referencian se establece a NULL.

10

Introducción a SQL

07/11/2014

Introducción a SQL

• Opciones de clave ajena en Oracle 9i. 1. Trazabilidad de modelos 2. ¿Qué es SQL? 3. Evolución histórica

• ON DELETE RESTRICT • ON UPDATE RESTRICT

4. Presentación del modelo

• ON DELETE CASCADE

5. Transformación SQL-Oracle

• ON DELETE SET NULL

Opciones por defecto

6. Create table 7. Actualización de datos 8. Select 9. Consultas de varias tablas

noviembre 2012

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

20

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

10.Consultas complejas

Introducción a SQL

• Opciones de clave ajena 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

Por defecto: ON DELETE RESTRICT: No se permite borrar un departamento que tenga empleados. ON UPDATE RESTRICT: No se permite modificar el OID_D de un departamento que tenga empleados.

8. Select 9. Consultas de varias tablas

noviembre 2012

IISSI

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

21

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

10.Consultas complejas

11

Introducción a SQL

07/11/2014

Introducción a SQL

• Opciones de clave ajena ON DELETE SET NULL: Si se borra un empleado, en los empleados de los que es jefe aparecerá null en el campo jefe.

1. Trazabilidad de modelos 2. ¿Qué es SQL? 3. Evolución histórica 4. Presentación del modelo

Por defecto: ON UPDATE RESTRICT No se permite modificar el OID_E de los empleados que tengan empleados subordinados.

5. Transformación SQL-Oracle 6. Create table 7. Actualización de datos 8. Select 9. Consultas de varias tablas

noviembre 2012

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

22

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

10.Consultas complejas

Introducción a SQL

• Insert – Una vez creadas las tablas con sus restricciones de 1. Trazabilidad de modelos 2. ¿Qué es SQL? 3. Evolución histórica 4. Presentación del modelo

integridad (intensión), se insertan las filas (extensión). Especifica los atributos cuyos valores se van a insertar

5. Transformación SQL-Oracle 6. Create table 7. Actualización de datos 8. Select 9. Consultas de varias tablas

No se especifican atributos. Es el orden que tienen en la tabla. Hay que darle valor a todos los atributos noviembre 2012

IISSI

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

23

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

10.Consultas complejas

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 modificar y el nuevo valor.

4. Presentación del modelo 5. Transformación SQL-Oracle 6. Create table

• Delete: Borra filas

7. Actualización de datos 8. Select

Selecciona las filas afectadas (modificar, borrar…..)

9. Consultas de varias tablas 10.Consultas complejas

como borrados o pasarlos a una tabla de datos 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

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

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

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 modelo 5. Transformación SQL-Oracle

SELECT < lista de columnas > FROM

< T1, T2,.. ,Tn >

6. Create table 7. Actualización de datos

WHERE < condición >

8. Select 9. Consultas de varias tablas

noviembre 2012

IISSI

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

25

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

10.Consultas complejas

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

noviembre 2012

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

26

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

10.Consultas complejas

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

Distinct elimina filas duplicadas noviembre 2012

IISSI

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

27

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

10.Consultas complejas

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 modelos 2. ¿Qué es SQL? 3. Evolución histórica 4. Presentación del modelo

operadores AND, OR y NOT – Operador EXISTS – Operador IN

5. Transformación SQL-Oracle

– Operadores ALL, ANY o SOME

6. Create table

– Between

7. Actualización de datos 8. Select 9. Consultas de varias tablas 10.Consultas complejas

– Unique – Top (no soportado en Oracle 9i, donde hay que utilizar el atributo ‘rownum’ que tienen las tablas) – Is null

noviembre 2012

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

28

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

– Like

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

noviembre 2012

IISSI

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

29

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

10.Consultas complejas

15

Introducción a SQL

07/11/2014

Introducción a SQL

• IN 1. Trazabilidad de modelos 2. ¿Qué es SQL? 3. Evolución histórica 4. Presentación del modelo

– Permite comparar un valor individual v (un nombre de atributo) con un conjunto de valores V (generalmente una consulta 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

noviembre 2012

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

30

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

10.Consultas complejas

Introducción a SQL

• Subcadenas (Like) 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

– Para comparar cadenas de caracteres se utiliza el operador de comparación Like. – Las cadenas parciales se especifican mediante los caracteres reservados % y _. • % representa cualquier cadena de caracteres • _ representa un único caracter

8. Select 9. Consultas de varias tablas

noviembre 2012

IISSI

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

31

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

10.Consultas complejas

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

10.Consultas complejas

noviembre 2012

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

32

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

Ordena por departamento descendente y a igual departamento por nombre del empleado alfabético

9. Consultas de varias tablas

Introducción a SQL

• Consultas de varias tablas – El producto cartesina devuelve una nueva relación con 1. Trazabilidad de modelos 2. ¿Qué es SQL? 3. Evolución histórica

todas las posibles combinaciones entre las tuplas de las relaciones involucradas.

4. Presentación del modelo

SELECT * FROM A, B;

5. Transformación SQL-Oracle 6. Create table

8. Select 9. Consultas de varias tablas 10.Consultas complejas

noviembre 2012

IISSI

a b c

x y

a a b b c c

x y x y x y

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

33

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

7. Actualización de datos

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

noviembre 2012

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

34

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

10.Consultas complejas

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

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

IISSI

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

35

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

10.Consultas complejas

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.

Equivalentes

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

noviembre 2012

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

36

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

10.Consultas complejas

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

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

noviembre 2012

IISSI

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

37

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

10.Consultas complejas

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

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

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

10.Consultas complejas

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

Aparecen todos los empleados y departamentos noviembre 2012

IISSI

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

39

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

10.Consultas complejas

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

10.Consultas complejas

noviembre 2012



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).

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

40

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

9. Consultas de varias tablas

Introducción a SQL

• Exists 1. Trazabilidad de modelos 2. ¿Qué es SQL? 3. Evolución histórica 4. Presentación del modelo 5. Transformación SQL-Oracle

?????

– Sirve para comprobar si el resultado de una consulta anidada contiene tuplas. – “Obtener los departamentos sin empleados”.

6. Create table 7. Actualización de datos 8. Select 9. Consultas de varias tablas

noviembre 2012

IISSI

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

41

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

10.Consultas complejas

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 4. Presentación del modelo 5. Transformación SQL-Oracle

?????

– Sirve para comprobar si el resultado de una consulta anidada contiene tuplas. – “Obtener los departamentos sin empleados”.

6. Create table 7. Actualización de datos 8. Select 9. Consultas de varias tablas

noviembre 2012

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

42

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

10.Consultas complejas

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 7. Actualización de datos 8. Select 9. Consultas de varias tablas 10.Consultas complejas

noviembre 2012

IISSI

– Están enfocadas a los niveles táctico y estratégico de un sistema de información. – Presentan los datos agrupados a partir de los registros individuales que corresponden a las operaciones diarias

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

43

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

6. Create table

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?

– 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 datos 8. Select 9. Consultas de varias tablas 10.Consultas complejas

noviembre 2012

mínimo y el promedio de dichos valores. – Estas funciones se pueden usar con la cláusula SELECT o con la cláusula HAVING.

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

44

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

3. Evolución histórica

Introducción a SQL

• Funciones agregadas 1. Trazabilidad de modelos 2. ¿Qué es SQL? 3. Evolución histórica 4. Presentación del modelo

– “Número de empleados, salario mínimo, salario 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

noviembre 2012

IISSI

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

45

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

10.Consultas complejas

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 8. Select 9. Consultas de varias tablas 10.Consultas complejas

– Los atributos de agrupación pueden aparecer en la cláusula SELECT. – Es el equivalente al operador agregación de

noviembre 2012

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

46

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

Álgebra Relacional

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

– En la clausula select sólo pueden aparecer opcionalmente los atributos de agrupación y las funciones de agregación. noviembre 2012

IISSI

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

47

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

10.Consultas complejas

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 histórica 4. Presentación del modelo 5. Transformación SQL-Oracle

– “Número de empleados, salario mínimo, salario máximo, salario medio y salario total y por departamento”. departamento

6. Create table 7. Actualización de datos 8. Select 9. Consultas de varias tablas

noviembre 2012

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

48

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

10.Consultas complejas

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:

noviembre 2012

IISSI

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

49

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

10.Consultas complejas

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 2. ¿Qué es SQL? 3. Evolución histórica 4. Presentación del modelo 5. Transformación SQL-Oracle

asociado a cada valor de los atributos de agrupación (clases de equivalencia). – Sólo los grupos que cumplan la condición entrarán en el resultado de la consulta.

6. Create table 7. Actualización de datos 8. Select 9. Consultas de varias tablas

noviembre 2012

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

50

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

10.Consultas complejas

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

– “Obtener, para los departamentos que tengan más de empleado, el código de departamento, número de un empleado empleados que tiene, salario máximo y salario medio”.

6. Create table 7. Actualización de datos 8. Select 9. Consultas de varias tablas

noviembre 2012

IISSI

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

51

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

10.Consultas complejas

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

8. Select 9. Consultas de varias tablas

– Having es equivalente a hacer una restricción después del group by

10.Consultas complejas

noviembre 2012

Alias, renombra count(*)

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

52

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

7. Actualización de datos

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:

noviembre 2012

IISSI

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

53

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

10.Consultas complejas

27

Introducción a SQL

07/11/2014

Introducción a SQL

• ANY, ALL 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

– Permite comparar un valor individual v (nombre de atributo) con un conjunto de valores V (consulta anidada). – “Obtener los empleados con salario mayor que el salario medio en todos los departamento”.

7. Actualización de datos 8. Select 9. Consultas de varias tablas

noviembre 2012

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

54

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

10.Consultas complejas

Introducción a SQL

• Ejercicios 1. Trazabilidad de modelos 2. ¿Qué es SQL? 3. Evolución histórica 4. Presentación del modelo

– “Departamento con más empleados”.

Equivalentes

5. Transformación SQL-Oracle 6. Create table 7. Actualización de datos 8. Select 9. Consultas de varias tablas

noviembre 2012

IISSI

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

55

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

10.Consultas complejas

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

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

octubre 2012

56

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

10.Consultas complejas

Introducción a SQL

• Historia de esta presentación 1. Trazabilidad de modelos



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



Revisión final y simplificación: octubre 2011 (Amador Durán).



Retoques menores: octubre 2012 (Amador Durán).

3. Evolución histórica



Reducción y adaptación a ejemplo: noviembre 2013 (Mayte Gómez).

4. Presentación del modelo



Cambios de contenido y ejemplos: octubre 2014 (Margarita Cruz).

2. ¿Qué es SQL?

5. Transformación SQL-Oracle 6. Create table 7. Actualización de datos 8. Select 9. Consultas de varias tablas

octubre 2012

IISSI

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

57

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

10.Consultas complejas

29

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.