Union, Intersect, Minus Union, Intersect, Minus

Anuncio
Union, Intersect, Minus
SELECT codpue
FROM pueblos
WHERE UPPER(nombre) LIKE ‘S%’
UNION
SELECT codpue
FROM pueblos
WHERE UPPER(nombre) LIKE ‘%N%’;
TABLA PUEBLOS
CODPUE NOMBRE
CODPRO
250
10
490
19
45
67
14
44
46
12
12
34
22
23
SARRION
LLIRIA
ONDA
TERESA
PULPI
SORIA
TOLEDO
II18--Universitat Jaume I
1
Union, Intersect, Minus
SELECT codpue
FROM pueblos
WHERE UPPER(nombre) LIKE ‘S%’
UNION
SELECT codpue
FROM pueblos
WHERE UPPER(nombre) LIKE ‘%N%’;
RESULTADO
CODPUE
250
490
67
TABLA PUEBLOS
CODPUE NOMBRE
CODPRO
250
10
490
19
45
67
14
44
46
12
12
34
22
23
SARRION
LLIRIA
ONDA
TERESA
PULPI
SORIA
TOLEDO
CODPUE
CODPUE
250
67
250
490
II18--Universitat Jaume I
2
1
Union, Intersect, Minus
SELECT [DISTINCT] { * | tabla.col [, tabla.col ] }
FROM tabla [, tabla ]
[ WHERE condición_búsqueda ]
[GROUP BY tabla.col [, tabla.col ]
[HAVING condición_para_el_grupo ] ]
[ { UNION | INTERSECT | MINUS } SELECT ... ];
II18--Universitat Jaume I
3
Union, Intersect, Minus
Código de los pueblos en los que no
tenemos clientes:
SELECT codpue
FROM pueblos
MINUS
SELECT codpue
FROM clientes;
II18--Universitat Jaume I
4
2
Union, Intersect, Minus
Nombre de pueblos que tienen el mismo
nombre en las provincias con código ‘12’ y
‘14’:
SELECT nombre
FROM pueblos
WHERE codpro = ‘12’
INTERSECT
SELECT nombre
FROM pueblos
WHERE codpro = ‘14’;
II18--Universitat Jaume I
5
Ordenación
SELECT [DISTINCT] { * | tabla.col [, tabla.col ] }
FROM tabla [, tabla ]
[ WHERE condición_búsqueda ]
[GROUP BY tabla.col [, tabla.col ]
[HAVING condición_para_el_grupo ] ]
[ { UNION | INTERSECT | MINUS } SELECT ... ]
[ORDER BY tabla.col [ ASC | DESC ]
[, tabla.col [ ASC | DESC ] ];
II18--Universitat Jaume I
6
3
Ordenación
SELECT codcli, nombre
FROM clientes
WHERE codpue IS NOT NULL
ORDER BY nombre ASC;
RESULTADO
TABLA CLIENTES
CODCLI NOMBRE
DIRECCION
CODPOSTAL CODPUE
20
13
12
27
‘Barcelona 2’
‘Peñas 5’
‘Prim 7’
‘Peñas 24’
‘13004’
‘15008’
‘12003’
‘15008’
‘José Pérez’
‘María Gil’
‘Luis Sorlí’
‘María Gil’
‘1400’
‘1456’
‘1456’
CODCLI NOMBRE
20
13
27
‘José Pérez’
‘María Gil’
‘María Gil’
II18--Universitat Jaume I
7
Ordenación
SELECT codcli, nombre
FROM clientes
WHERE codpue IS NOT NULL
ORDER BY nombre,
codcli DESC;
RESULTADO
TABLA CLIENTES
CODCLI NOMBRE
DIRECCION
CODPOSTAL CODPUE
20
13
12
27
‘Barcelona 2’
‘Peñas 5’
‘Prim 7’
‘Peñas 24’
‘13004’
‘15008’
‘12003’
‘15008’
‘José Pérez’
‘María Gil’
‘Luis Sorlí’
‘María Gil’
‘1400’
‘1456’
‘1456’
CODCLI NOMBRE
20
27
13
‘José Pérez’
‘María Gil’
‘María Gil’
II18--Universitat Jaume I
8
4
Join externo
SELECT c.codcli, p.nombre
FROM pueblos p, clientes c
WHERE p.codpue = c.codpue;
TABLA PUEBLOS
CODPUE NOMBRE
1400
10
1456
CODPRO
SARRION 44
LLIRIA
46
ONDA
12
TABLA CLIENTES
RESULTADO
CODCLI NOMBRE
20
13
27
SARRION
ONDA
ONDA
CODCLI NOMBRE
DIRECCION
CODPOSTAL CODPUE
20
13
12
27
Barcelona 2
Peñas 5
Prim 7
Peñas 24
13004
15008
12003
15008
José Pérez
María Gil
Luis Sorlí
María Gil
II18--Universitat Jaume I
1400
1456
1456
9
Join externo
TABLA PUEBLOS
SELECT c.codcli, p.nombre
CODPUE NOMBRE
CODPRO
FROM pueblos p, clientes c
1400
SARRION 44
WHERE p.codpue (+) = c.codpue; 10
LLIRIA
46
1456
ONDA
12
TABLA CLIENTES
RESULTADO
CODCLI NOMBRE
20
13
12
27
SARRION
ONDA
CODCLI NOMBRE
DIRECCION
CODPOSTAL CODPUE
20
13
12
27
Barcelona 2
Peñas 5
Prim 7
Peñas 24
13004
15008
12003
15008
José Pérez
María Gil
Luis Sorlí
María Gil
1400
1456
1456
ONDA
II18--Universitat Jaume I
10
5
Join externo
TABLA PUEBLOS
SELECT c.codcli, p.nombre
CODPUE NOMBRE
CODPRO
FROM pueblos p, clientes c
1400
SARRION 44
WHERE p.codpue = c.codpue (+); 10
LLIRIA
46
1456
ONDA
12
TABLA CLIENTES
RESULTADO
CODCLI NOMBRE
20
13
27
SARRION
ONDA
ONDA
LLIRIA
CODCLI NOMBRE
DIRECCION
CODPOSTAL CODPUE
20
13
12
27
Barcelona 2
Peñas 5
Prim 7
Peñas 24
13004
15008
12003
15008
José Pérez
María Gil
Luis Sorlí
María Gil
1400
1456
1456
II18--Universitat Jaume I
11
Concepto de JOIN EXTERNO
pueblos
CODPUE
NOMBRE
CODPRO
250
10
1829
490
810
Sarrión
Lliria
Almansa
Onda
Viver
44
46
NULL
12
12
provincias
CODPRO
NOMBRE
46
12
03
44
Valencia
Castellón
Alicante
Teruel
II18--Universitat Jaume I
Tablas con
una relación
de clave
ajena
12
6
¿Cuántos pueblos hay en cada provincia?
select
from
where
group by
CODPUE
250
10
490
810
pr.nombre, count(*) num_pue
pueblos pu, provincias pr
pu.codpro = pr.codpro
pu.codpro, pr.nombre;
NOMBRE
Sarrión
Lliria
Onda
Viver
pr.nombre
Teruel
Valencia
Castellón
CODPRO
44
46
12
12
CODPRO
44
46
12
12
num_pue
1
1
2
NOMBRE
Teruel
Valencia
Castellón
Castellón
Y, ¿en Alicante?
II18--Universitat Jaume I
13
¿Cuántos pueblos hay en cada provincia?
select
from
where
group by
CODPUE
NULL
250
10
490
810
pr.nombre, count(codpue) num_pue
pueblos pu, provincias pr
pu.codpro (+) = pr.codpro
pu.codpro, pr.nombre;
NOMBRE
NULL
Sarrión
Lliria
Onda
Viver
pr.nombre
Alicante
Teruel
Valencia
Castellón
CODPRO
NULL
44
46
12
12
CODPRO
03
44
46
12
12
NOMBRE
Alicante
Teruel
Valencia
Castellón
Castellón
num_pue
0
1
1
2
II18--Universitat Jaume I
14
7
Concepto de JOIN EXTERNO
pueblos
CODPUE
NOMBRE
CODPRO
250
10
1829
490
810
Sarrión
Lliria
Almansa
Onda
Viver
44
46
NULL
12
12
Tablas con
una relación
de clave
ajena
provincias
CODPRO
NOMBRE
46
12
03
44
Valencia
Castellón
Alicante
Teruel
II18--Universitat Jaume I
15
Seleccionar cada pueblo con su provincia.
select
from
where
CODPUE
1829
250
10
490
810
pu.nombre
Almansa
Sarrión
Lliria
Onda
Viver
pu.nombre, pr.nombre
pueblos pu, provincias pr
pu.codpro = pr.codpro (+);
NOMBRE
Almansa
Sarrión
Lliria
Onda
Viver
CODPRO
NULL
44
46
12
12
CODPRO
NULL
44
46
12
12
NOMBRE
NULL
Teruel
Valencia
Castellón
Castellón
pr.nombre
NULL
Teruel
Valencia
Castellón
Castellón
II18--Universitat Jaume I
16
8
Descargar