IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para...

15
IBD CLASE 15

Transcript of IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para...

Page 1: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

IBD

CLASE 15

Page 2: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQL

Lenguaje de Consultas Estruturado (SQL)

◦ Lenguaje de trabajo estándard para modelo relacional

◦ Componentes

◦ DDL: Data Definition Language

◦ DML: Data Manipulation Language (AR y CRT)

2

Page 3: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQLSelect

◦ * (incluye todos los atributos de las tablas que aparecen en el from)

◦ Distinct (eliminan tuplas duplicadas)

◦ All (valor por defecto, aparecen todas las tuplas)

3

Page 4: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQL◦ Ej2: nombres de las sucursales en la relación préstamo

sin repetición◦ Operaciones en el select

◦ Select nombre, saldo * 3 From cliente

◦ Where◦ Operadores lógicos

◦ Ej3: préstamos hechos en sucursal X y monto superior a 20000$◦ Between

◦ Ej4: préstamos cuyo monto este entre 20000 y 30000$

4

Page 5: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQL◦ Operaciones sobre strings

◦ Like, %, _◦ “Alfa%”: cualquier cadena que empiece con Alfa◦ “%casa%”: cualquier cadena que tenga casa en su

interior◦ “_ _ _”: cualquier cadena con tres caracteres◦ “_ _ _%”: cualquier cadena con al menos tres

caracteres.◦ Ej7: nombre del clientes cuya domicilio contenga el

string XXX

5

Page 6: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQL◦ Ordenamiento de las tuplas resultado

◦ Order By atributo: especifica el atributo por el cual las tuplas serán ordenadas◦ Ej8: presentar todos los clientes ordenados por nombre.

◦ Desc, asc: por defecto ascendente, se puede especificar descendente.◦ Facturas=(Nro,Fecha,Hora)◦ Ej9: presentar las facturas del mes de agosto ordenadas por fecha desde

el 31 al 1 de agosto y por hora de realización.

6

Page 7: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQL◦ Operaciones sobre conjuntos

◦ Unión: agrupa las tuplas resultantes de dos subconsultas. Union all conserva duplicados◦ Ej10: clientes con cuentas o prestamos en un banco

◦ Intersección: (intersect) idem anterior.◦ Ej11: clientes con cuentas y préstamos en un banco

◦ Diferencia: (except) ◦ Ej12: clientes con cuentas y sin préstamos en un banco

7

Page 8: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQL◦ Funciones de agregación:

◦ Promedio (avg): aplicable a atributos numéricos, retorna el promedio de la cuenta

◦ Mínimo (min): retorna el menor elemento no nulo dentro de las tuplas para ese atributo

◦ Máximo (max): retorna el mayor elemento no nulo dentro de las tuplas para ese atributo

◦ Total (sum): aplicable a atributos numéricos, realiza la suma matemática

◦ Cuenta (count): cuenta las tuplas resultantes.

8

Page 9: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQL◦ Agrupamientos (group by):

◦ Permite agrupar un conjunto de tuplas por algun criterio◦ Ej13: obtener el saldo promedio de las cuentas de cada sucursal.◦ Ej14: contar el número de clientes que tiene cada sucursal.

◦ Having: permite aplicar condiciones a los grupos◦ Ej15: presentar las sucursales y su saldo promedio siempre y cuando

superen 20000$◦ Ej16: saldo promedio de cada cliente que vive en La Plata, y tienen al

menos 3 cuentas.

9

Page 10: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQL◦ Valores nulos:

◦ Ej17: Mostrar aquellos préstamos que tengan el importe nulo. (no significa 0)

◦ Subconsultas anidadas◦ Pertenecia a conjuntos: IN

◦ Ej18: clientes con prestamos y cuentas en el banco, cualquier sucursal (otra forma)

◦ Ej19: clientes que tengan prestamo y cuenta en la sucursal llamada “La Plata”

10

Page 11: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQL◦ Comparación de Conjuntos

◦ > some ( <, =, >=, <=, <>)◦ Ej20:presentar las sucursales que tengan activo mayor que alguna otra (otra forma)

◦ > all ( <, =, >=, <=, <>)◦ Ej21: presentar la sucursal que tenga activo superior a todas (otra forma)◦ Ej22: encontrar la sucursal que tiene el mayor saldo promedio.

11

Page 12: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQL◦ Cláusula Exist: devuelve verdadero si la

subconsulta argumento no es vacía.

◦ Ej23: obtener los clientes que tienen tanto una cuenta como un préstamo en el banco.

◦ Ej24: obtener los clientes que tienen cuentas en todas

las sucursales de la ciudad de Buenos Aires.

12

Page 13: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQL◦ Comprobación de tuplas duplicadas.

◦ Unique: devuelve verdadero si la subconsulta argumento no produce tuplas duplicadas.

◦ Ej25: clientes que tienen una sola cuenta en la sucursal llamada XXX.

13

Page 14: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQL

◦Creación de vistas◦ Una vista es un objeto que no contiene datos por si mismo. Es una

clase de tabla cuyo contenido es tomado de otras tablas por medio de la ejecución de una consulta.

◦ Create View nombre as <expresion>◦ Ej26: crea una vista con todos los clientes y consultar de ahí todos los

de sucursal XXX

14

Page 15: IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.

SQL◦ Inserción:

◦ INSERT INTO tab_name (<column_name>,) VALUES (<valor>,)◦ Existen dos maneras básicas de insertar.

◦ Insertar la fila completa◦ Insertar sólo algunas columnas de una fila◦ En el segundo caso se debe necesariamente especificar los

nombres de las columnas que se van a completar.◦ Ej29: agregar una cuenta

15