Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Clase 15
SQL
Lenguaje de trabajo estndard para modelo relacional Componentes DDL: Data Definition Language DML: Data Manipulation Language (AR y CRT)
IBD - CLASE 15
SQL
DDL - Lenguaje de definicin de datos. Definicin de esquemas,relaciones, indices y vistas (una vista es una tabla virtual, ya que sus filas no se almacenan fsicamente, sino que son producto de una consulta) Autorizaciones al acceso a datos Definicin de reglas de integridad. Control de Concurrencia DML - Lenguaje interactivo de manipulacin de datos. Consultar datos almacenados. Modificar el contenido de los datos almacenados.
IBD - CLASE 15 UNLP - Facultad de Informtica
SQL
Estructura bsica: 3 clusulas Select (equivale a ) From (equivale a x) Where (equivale a ) a1,...,an (p (r1 x ... X rm ) ) equivale a Select a1,..., an From r1,..., rm Where P
SQL
Select * (incluye todos los atributos de las tablas que aparecen en el from)
Distinct (eliminan tuplas duplicadas)
SQL
Ej2: nombres de las sucursales en la relacin prstamo sin repeticin Operaciones en el select
Select nombre, saldo * 3 From cliente
Where
Operadores lgicos
Ej3: prstamos hechos en sucursal X y monto superior a 20000$
Between
Ej4: prstamos cuyo monto este entre 20000 y 30000$
6
IBD - CLASE 15 UNLP - Facultad de Informtica
SQL
SQL
IBD - CLASE 15
SQL
SQL
Diferencia: (except)
Ej12: clientes con cuentas y sin prstamos en un banco
10
IBD - CLASE 15 UNLP - Facultad de Informtica
SQL
Funciones de agregacin:
Promedio (avg): aplicable a atributos numricos, retorna el promedio de la cuenta Mnimo (min): retorna el menor elemento no nulo dentro de las tuplas para ese atributo Mximo (max): retorna el mayor elemento no nulo dentro de las tuplas para ese atributo Total (sum): aplicable a atributos numricos, realiza la suma matemtica Cuenta (count): cuenta las tuplas resultantes.
11
IBD - CLASE 15 UNLP - Facultad de Informtica
SQL
12
IBD - CLASE 15
SQL
Valores nulos:
Ej17: Mostrar aquellos prstamos 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
13
IBD - CLASE 15
SQL
Comparacin de Conjuntos
> some ( <, =, >=, <=, <>)
Ej20:presentar las sucursales que tengan activo mayor que alguna otra (otra forma)
14
IBD - CLASE 15
SQL
15
IBD - CLASE 15
SQL
Comprobacin 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.
16
IBD - CLASE 15 UNLP - Facultad de Informtica
SQL
Creacin
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 ejecucin 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
17
IBD - CLASE 15
SQL
Modificacin
de la BD
18
IBD - CLASE 15
SQL
Insercin:
INSERT INTO tab_name (<column_name>,) VALUES (<valor>,) Existen dos maneras bsicas de insertar.
Insertar la fila completa Insertar slo algunas columnas de una fila En el segundo caso se debe necesariamente especificar los nombres de las columnas que se van a completar.
SQL
Actualizacin
Ej30: modificar el saldo de las cuenta incrementar en un 5%.
Unin de relaciones
Realizar en clusula From productos naturales
Inner Join: producto natural entre atributos que se indican, quedando el atributo en comn repetido Ej31: producto entre prstamo y propietarioprestamo
20
IBD - CLASE 15
SQL
Left outer Join: primero se calcula el inner join (idem anterior) y luego cadat tupla t perteneciente a la relacin de la izquierda que no encontro par aparece en el resultado con valores nulos en los atributos del segundo lado. Right outer Join: idem anterior pero aparecen las tuplas t de la relacin de la derecha Full outer join: aparecen las tuplas colgadas de ambos lados.
Otras variantes:
Natural: evita que el atributo comn (por el que se hace la unin aparezca dos veces)
21
IBD - CLASE 15
QBE
Query By Example:
Sintaxis bidimensional: una consulta se expresa como una tabla Se expresa la consulta con un ejemplo Se basa en el clculo relacional de dominios Ejemplos en Access
22
IBD - CLASE 15
SQL
Ejercicios:
Tablas
Proveedor=(#prov, prnombre, situacin, ciudad) Partes(#par, color, panombre, situacin, ciudad) Proyectos=(#proy, proynombre, ciudad) RPPP=(#prov, #par, #proy, cantidad)
23
IBD - CLASE 15
SQL
Ejercicios
A. Obtener todos los detalles de los proyectos de Crdoba B. #prov, que suministre parte al proyecto A1 ordenado por proveedor C. Envios con cantidad entre 300 y 500 D. #prov, #proy, #par para aquellas tuplas donde los tres elementos sean de la misma ciudad E. #parte suministradas por un proveedor de Crdoba a un Proyecto de Crdoba F. Cantidad de proyectos que tenga a S1 como proveedor G. Cantidad total de partes P1 suminstradas por S1
24
IBD - CLASE 15
SQL
H. Envos que no tengan la cantidad nula I. Obtener los colores de las partes suministras por proveedor S1. J. Obtener proyectos para los cuales s1 es el nico proveedor K. Cambiar a Gris el color de las partes Rojas L. Eliminar el proyecto que no tenga envos. M. Proveedor que vivan en igual ciudad que el proveedor S1. N. Proveedor que tenga mxima su situacin O. Todos los proveedores menos el que tenga mxima su situacin P. Nombres de los proveedores que suministran la parte P2.
25
IBD - CLASE 15 UNLP - Facultad de Informtica
SQL
Q. Presentar aquellos proveedores que suministren todas las partes existentes en la tabla R. Obtener los nmero de partes provistas por ms de un proveedor. Para este caso considerar que un proveedor slo participa en un proyecto. S. Informar el nmero de parte que se suministre a un proyecto cualquiera tal que en promedio se suministro supere 200.
26
IBD - CLASE 15