Sunteți pe pagina 1din 26

Bases de datos

Unidad 5 SQL
Mnica Mara Rojas Rincn
mmrojas@elpoli.edu.co
Oficina: P19-103

SQL
Lenguaje de Consultas Estruturado (SQL)
Lenguaje de trabajo estndard para modelo relacional
Desarrollado por IBM a principios de los 70s (Sequel)
Componentes
DDL: Data Definition Language
DML: Data Manipulation Language (AR y CRT)

SQL
DDL - Lenguaje de definicin de datos.

Definicin y modificacin 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 de manipulacin de datos.

Consultar datos almacenados.


Modificar el contenido de los datos almacenados.

3
3

DML
Consultas

Consultas
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
Ej1: todas las sucursales de la relacin sucursal

5
5

Vamos a trabajar sobre el siguiente modelo:

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

Distinct (eliminan tuplas duplicadas)

All (valor por defecto, aparecen todas las tuplas)

7
7

SELECT
Ej2: nombres de las sucursales en las que hay prstamos sin

repeticin
Operaciones en el select
Select nombre, saldo * 3

From cliente

Where
Operadores lgicos

Ej3: prstamos hechos en sucursal 10 y saldo superior a $20000

Between

8
8

Ej4: prstamos cuyo monto este entre $20000 y 30000

SELECT
From: producto cartesiano
Ej5: nombre de cliente y # prestamo, de la sucursal 10.

Renombre: tanto para relaciones como para atributos


Atributos: presentarlo con otro nombre

Select T.ced_cliente AS cedula_cliente,


from prestamos AS T

Relaciones: un producto cartesiano contra si mismo

9
9

Ej 6: nombre de las sucursales que poseen activo mayor que al menos una
sucursal situada en Buenos Aires.

Operaciones sobre cadenas


Like, %, _

10
10

Alf%: cualquier cadena que empiece con Alf


%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 ciudad contenga la cadena ma

Ordenamiento de las tuplas


resultado
Order By atributo: especifica el atributo por el cual las tuplas sern

ordenadas

Ej8: presentar todos los clientes ordenados por nombre.

Desc, asc: por defecto ascendente, se puede especificar orden

descendente.

11
11

Ej9: presentar los prstamos de la sucursal 10 ordenadas por nmero de


prstamo en orden descendente.

Operaciones sobre conjuntos


Unin: agrupa las tuplas resultantes de dos subconsultas. Union all

conserva duplicados

Ej10: clientes con cuentas o prstamos en el banco

Interseccin: (intersect) los elementos comunes entre dos conjuntos de

tuplas

Ej11: clientes con cuentas y prstamos en un banco

Diferencia: (except) elementos que estn en un conjunto pero no en el

otro

12
12

Ej12: clientes con cuentas y sin prstamos en un banco

Unin de relaciones
Realizar en la clusula From productos naturales
Inner Join: producto natural entre atributos que se indican, quedando el

atributo en comn repetido


Ej31: producto entre prstamo y cli_pres
Left outer Join: primero se calcula el inner join (idem anterior) y luego cada

tupla t perteneciente a la relacin de la izquierda que no encontro 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 de ambos lados, incluyendo los que no
coinciden de ambos lados.

Otras variantes:
Natural: evita que el atributo comn (por el que se hace la unin aparezca dos

veces)
13

Funciones de agregacin
Promedio (avg): aplicable a atributos numricos, retorna el promedio de la

14
14

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.

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 nmero 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 Envigado, y tienen al menos
3 cuentas.

15
15

Valores nulos
Atributos con valores NULL (no significa 0)

Select * from CLIENTE


Where ciudad IS NULL
Ej17: Mostrar aquellos prstamos que tengan el saldo en nulo

16

Subconsultas anidadas
Pertenecia a conjuntos: IN

17
17

Ej18: clientes con prestamos y cuentas en el banco, cualquier sucursal


(otra forma)
Ej19: clientes que tengan prstamo y cuenta en la sucursal llamada
Poblado

Comparacin de Conjuntos
> some ( <, =, >=, <=, <>)

Ej20: sucursales que tengan activo mayor que al menos una de Bogot

> all ( <, =, >=, <=, <>)

18
18

Ej21: presentar la sucursal que tenga activo superior a todas (otra


forma)
Ej22: encontrar la sucursal que tiene el mayor activo promedio.

Clusula Exist
Devuelve verdadero si la subconsulta argumento no
es vaca.
Ej23: obtener los clientes que tienen tanto una cuenta

como un prstamo en el banco.


Ej24: obtener los clientes que tienen cuentas en todas las

sucursales de la ciudad de Envigado.

19
19

Comprobacin de tuplas duplicadas

20
20

Unique: devuelve verdadero si la subconsulta argumento


no produce tuplas duplicadas.

Ej25: clientes que tienen una sola cuenta en la sucursal


llamada Poblado.

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

21
21

DML
Modificacin de la informacin de la BD

22

Borrado
eliminar una o mas filas de una tabla:

23
23

DELETE FROM tab_name


[WHERE condicin];
Ej27: borrar las cuentas de una sucursal
Ej28: borrar las cuentas con saldo entre 100 y 200.

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.
Ej29: agregar una cuenta

24
24

Actualizacin
UPDATE tab_name SET

<atributo>=<Nuevo_valor>
[WHERE condicin];

25
25

Ej30: modificar el saldo de las cuenta incrementar en un 5%.


Aumentar un 5% el saldo de las cuentas que tienen un saldo mayor que
el promedio

Refencias
Basado en:
Abraham Silberschatz, et. Al. Fundamentos de Bases de Datos. Cuarta Edicin.

2004. Pg. 87-105

26

S-ar putea să vă placă și