SQL Carlos A. Olarte (
[email protected]) BDI
Carlos A. Olarte (
[email protected]) BDI
SQL
Outline 1
Introducci´on
2
Select... from ... where
3
Renombramiento
4
Ordenamiento
5
Reuniones
6
Operaciones sobre conjuntos
7
Funciones de Agregaci´on
8
Subconsultas Anidadas
Carlos A. Olarte (
[email protected]) BDI
SQL
Componentes
DDL DML Definici´on de Vistas Control de transacciones SQL incorporado y SQL din´amico Integridad Autorizaci´on
Carlos A. Olarte (
[email protected]) BDI
SQL
Estructura b´asica
SELECT FROM WHERE
Carlos A. Olarte (
[email protected]) BDI
SQL
Select (π)
Corresponde a la operaci´on de Proyecci´on. Por defecto no elimina los duplicados. Si se quiere eliminar los duplicados se debe utilizar la palabra reservada distinct Para especificar todos los atributos se puede utiliza el s´ımbolo asterisco (*) Ejemplos: select codigo from productos
select * from productos
Carlos A. Olarte (
[email protected]) BDI
SQL
select distinct nombre from clientes
Where(σ) Corresponde a la operaci´on de selecci´on. Conectivos l´ogicos
Operadores de Comparaci´on <
AND (∧)
>
OR (∨)
= (6=)
Operaciones sobre cadenas
BETWEEN xxx AND yyy (rangos)
LIKE (B´ usqueda de patrones) (Cualquier caracter)
Valores Nulos
% (Cualquie subcadena)
IS NULL
\ (Caracter de escape) Carlos A. Olarte (
[email protected]) BDI
IS NOT NULL SQL
Ejemplos
select select select select select select select select select
* * * * * * * * *
from from from from from from from from from
x x x x x x x x x
where where where where where where where where where
codigo>3 codigo>3 and apellido=’perez’ nombre like ’P%’ nombre like ’__A__’ length(telefono) =all (select nota from notas) a a
Como expresar la primera consulta por medio de ./ o una cl´ ausula IN?
Carlos A. Olarte (
[email protected]) BDI
SQL
Comprobaci´on de relaciones vac´ıas (EXISTS, NOT EXISTS) EXISTS retorna verdadero si la subconsulta no es vac´ıa NOT EXISTS para chequear la inexistencia de tuplas en el resultado de una subconsulta select * from cursos cur where exists (select cur_cod from matriculas where cur_cod = cur.codigo) Por medio de not exists (B minus A) puede calcularse A ⊇ B. Por ejemplo, dado r (r1 , s1 ) y s(s1) que calcula la siguiente expresi´on? select distinct rout.r1 from r rout where not exists( select s.s1 from s minus select r.s1 from r where r.r1 = rout.r1) Carlos A. Olarte (
[email protected]) BDI
SQL