Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Repaso de Álgebra Relacional y SQL PDF
Repaso de Álgebra Relacional y SQL PDF
Valores columna
mismo domino
ALUMNO
Nombre CdigoAlumno Ao Especialidad
Smith
17
1
CS
Brown
8
2
CS
Fila=
Tupla
Columna =
Atributo
A. Jaime 2003
DBD Tema 4
A. Jaime 2003
DBD Tema 4
Esquema de la BD EMPRESA
Restricciones relacionales
EMPLEADO
NOMBRE INIC APELLIDO
NSS
John
B
Smith
123456789
Franklin
T
Wong
333445555
Alicia
J
Zelaya
999887777
Jennifer
S
Wallace
987654321
Ramesh
K
Narayan
666884444
Joyce
A
English
453453453
Ahmad
V
Jabbar
987987987
James
E
Borg
888665555
DEPARTAMENTO
NOMBRED NMEROD
Investigacin
5
Administracin
4
Direccin
1
A. Jaime 2003
NSS_JEFE
333445555
987654321
888665555
Clave
extranjera
...
EMPLEADO
NOMBRE INIC APELLIDO NSS FECHA_NCTO DIRECCIN
... SEXO
...
SALARIO NSS_SUPERV ND
DEPARTAMENTO
NOMBRED NMEROD NSS_JEFE FECHA_INIC_JEFE
LOCALIZACIONES_DEPT
NMEROD LOCALIZACIND
PROYECTO
NOMBREP NMEROP LOCALIZACINP NMD
TRABAJA_EN
Clave
extranjera
NSSE
NP
HORAS
DEPENDIENTE
NSS_SUPERV ND
333445555
5
888665555
5
987654321
4
888665555
4
333445555
5
333445555
5
987654321
4
nulo
1
NSSE
NOMBRE_DEPENDIENTE
SEXO FECHA_NCTO
PARENTESCO
FECHA_INIC_JEFE
1988-05-22
1995-01-01
1981-06-19
DBD Tema 4
A. Jaime 2003
DBD Tema 4
EMPLEADO
NOMBRE INIC APELLIDO
John
Franklin
Alicia
Jennifer
Ramesh
Joyce
Ahmad
James
B
T
J
S
K
A
V
E
Smith
Wong
Zelaya
Wallace
Narayan
English
Jabbar
Borg
NSS
FECHA_NCTO
DIRECCIN
123456789
333445555
999887777
987654321
666884444
453453453
987987987
888665555
1965-01-09
1955-12-08
1968-07-19
1941-06-20
1962-09-15
1972-07-31
1969-03-29
1937-11-10
TRABAJA_EN
NSSE
...
HORAS
1
2
3
1
2
2
3
10
20
30
10
10
30
30
20
20
32.5
7.5
40.0
20.0
20.0
10.0
10.0
10.0
10.0
30.0
10.0
35.0
5.0
20.0
15.0
nulo
...
H
H
M
M
H
M
H
H
30.000
40.000
25.000
43.000
38.000
25.000
25.000
55.000
333445555
888665555
987654321
888665555
333445555
333445555
987654321
nulo
NMEROD
LOCALIZACIND
1
4
5
5
5
Houston
Stafford
Bellaire
Sugarland
Houston
PROYECTO
NOMBREP
123456789
123456789
666884444
453453453
453453453
333445555
333445555
333445555
333445555
999887777
999887777
987987987
987987987
987654321
987654321
888665555
LOCALIZACIONES_DEPT
5
5
4
4
5
5
4
1
ProductoX
ProductoY
ProductoZ
Automatizacin
Reorganizacin
Nuevos beneficios
1
2
3
10
20
30
Bellaire
Sugarland
Houston
Stafford
Houston
Stafford
5
5
5
4
1
4
DEPENDIENTE
NSSE
333445555
333445555
333445555
987654321
123456789
123456789
123456789
Alice
Theodore
Joy
Abner
Michael
Alice
Elizabeth
M
H
M
H
H
M
M
1986-04-05
1983-10-25
1958-05-03
1942-02-28
1988-01-04
1988-12-30
1967-05-05
HIJA
HIJO
ESPOSA
ESPOSO
HIJO
HIJA
ESPOSA
DEPARTAMENTO
NOMBRED NMEROD NSS_JEFE FECHA_INIC_JEFE
Investigacin
Administracin
Direccin
A. Jaime 2003
5
4
1
333445555
987654321
888665555
1988-05-22
1995-01-01
1981-06-19
DBD Tema 4
A. Jaime 2003
Operaciones de actualizacin
y violacin de las RI
Operaciones de actualizacin:
Insertar
Eliminar
Actualizar (modificar)
DBD Tema 4
lgebra relacional
Binario
Unarios
UNIN
INTERSECCIN
DIFERENCIA
PRODUCTO CARTESIANO
Binarios
Otras operaciones:
DIVISIN
FUNCIONES AGREGADAS Y DE AGRUPACIN
Etc.
A. Jaime 2003
DBD Tema 4
A. Jaime 2003
DBD Tema 4
Seleccionar:
Proyectar:
EMPLEADO
EMPLEADO
NOMBRE INIC APELLIDO
John
Franklin
Alicia
Jennifer
Ramesh
Joyce
Ahmad
James
B
T
J
S
K
A
V
E
Smith
Wong
Zelaya
Wallace
Narayan
English
Jabbar
Borg
NSS
NSS_SUPERV ND
123456789
333445555
999887777
987654321
666884444
453453453
987987987
888665555
...
333445555
888665555
987654321
888665555
333445555
333445555
987654321
nulo
John
Franklin
Alicia
Jennifer
Ramesh
Joyce
Ahmad
James
5
5
4
4
5
5
4
1
B
T
J
S
K
A
V
E
Alicia
Jennifer
Ahmad
J
S
V
Zelaya
Wallace
Jabbar
NSS
...
999887777
987654321
987987987
NSS_SUPERV ND
987654321
888665555
987654321
4
4
4
B
T
J
S
K
A
V
E
Smith
Wong
Zelaya
Wallace
Narayan
English
Jabbar
Borg
NSS
123456789
333445555
999887777
987654321
666884444
453453453
987987987
888665555
...
30.000
40.000
25.000
43.000
38.000
25.000
25.000
55.000
333445555
888665555
987654321
888665555
333445555
333445555
987654321
nulo
5
5
4
4
5
5
4
1
John
Franklin
Ramesh
Joyce
B
T
K
A
Smith
Wong
Narayan
English
NSS
123456789
333445555
666884444
453453453
...
30.000
40.000
38.000
25.000
333445555
888665555
333445555
333445555
5
5
5
5
...
DBD Tema 4
DBD Tema 4
10
PROFESOR
NOMBRE APELLIDO
John
Smith
Ricardo
Browne
Susan
Yao
Francis
Johnson
Ramesh
Shah
APEL
Yao
Shah
Kohler
Jones
Ford
Wang
Gilbert
11
APEL
Yao
Shah
ALUMNO PROFESOR
NOM
APEL
Susan
Yao
Ramesh
Shah
Johnny
Kohler
Brbara
Jones
Amy
Ford
Jimmy
Wang
Ernest
Gilbert
John
Smith
Ricardo
Browne
Francis
Johnson
PROFESOR ALUMNO
NOMBRE APELLIDO
John
Smith
Ricardo
Browne
Francis
Johnson
NOM
Susan
Ramesh
SALARIO NSS_SUPERV ND
Renombre de atributos
John
Franklin
Ramesh
Joyce
El (M, 25.000)
duplicado se ha
eliminado
ALUMNO PROFESOR
ND=5(EMPLEADO)
333445555
888665555
987654321
888665555
333445555
333445555
987654321
nulo
ALUMNO
NOM
Susan
Ramesh
Johnny
Brbara
Amy
Jimmy
Ernest
SALARIO NSS_SUPERV ND
Resultado intermedio
TEMP
30.000
40.000
25.000
43.000
38.000
25.000
25.000
55.000
EMPLEADO
John
Franklin
Alicia
Jennifer
Ramesh
Joyce
Ahmad
James
...
H
H
M
M
H
M
H
H
A. Jaime 2003
SEXO SALARIO
30.000
H
H
40.000
25.000
M
43.000
M
H
38.000
H
25.000
H
55.000
A. Jaime 2003
NSS
123456789
333445555
999887777
987654321
666884444
453453453
987987987
888665555
SEXO, SALARIO(EMPLEADO)
= sigma
ND=4(EMPLEADO)
NOMBRE INIC APELLIDO
Smith
Wong
Zelaya
Wallace
Narayan
English
Jabbar
Borg
asociativas
no conmutativa
R S = S R (R S) T = R (S T) R S S R
R S = S R (R S) T = R (S T)
A. Jaime 2003
DBD Tema 4
12
5
5
4
4
5
5
4
1
Reunin (JOIN): ||
EMP
DP_STAF
PR_STAF
NOMBREP
Automatizacin
Nuevos beneficios
NOMBRED
Administracin
Mantenimiento
APELLIDO
NSS
ND
Smith
Wong
Zelaya
Wallace
Narayan
English
Jabbar
Borg
123456789
333445555
999887777
987654321
666884444
453453453
987987987
888665555
5
5
4
4
5
5
4
1
NMEROD
4
8
R PR_STAF DP_STAF
NOMBREP
Automatizacin
Automatizacin
Nuevos beneficios
Nuevos beneficios
NOMBRED
Administracin
Mantenimiento
Administracin
Mantenimiento
NMEROD
4
8
4
8
DPT
NOMBRED
A. Jaime 2003
DBD Tema 4
NSS
ND
333445555 5
987654321 4
888665555 1
DBD Tema 4
14
A. Jaime 2003
Wong
Wallace
Borg
|| NSS_JEFE=NSS EMP
Investigacin 333445555
Administracin 987654321
Direccin
888665555
13
NSS_JEFE
JEFE_DTO DPT
DBD Tema 4
NOMBRED, NSS_JEFE(DEPARTAMENTO)
Investigacin 333445555
Administracin 987654321
Direccin
888665555
A. Jaime 2003
15
Reunin Theta:
Cualquier reunin
Las tuplas cuyo atributo de reunin sea nulo
NO aparecen en el resultado
Equirreunin (equijoin):
slo comparaciones de igualdad en COND
El resultado siempre tiene pares de atributos
con valores idnticos en todas las tuplas
Reunin natural (join natural):
equirreunin seguida de la eliminacin de
atributos superfluos.
COND implcita: igualdades de todos los
pares de atributos de igual nombre
Exige algn par de atributos de igual nombre
Se identifica con *
A. Jaime 2003
DBD Tema 4
16
Divisin:
Ejemplo: R N D
PRY
NOMBREP, NMD(PROYECTO)
NOMBREP
NMD
ProductoX
5
ProductoY
5
ProductoZ
5
Automatizacin
4
Reorganizacin
1
Nuevos beneficios
4
DPT(NOMBRED, NMD)
NOMBRED, NMEROD(DEPARTAMENTO)
NOMBRED
NMD
Investigacin
Administracin
Direccin
5
4
1
Desaparece un NMD
NMD
NOMBRED
ProductoX
ProductoY
ProductoZ
Automatizacin
Reorganizacin
Nuevos beneficios
5
5
5
4
1
4
Investigacin
Investigacin
Investigacin
Administracin
Direccin
Administracin
A. Jaime 2003
DBD Tema 4
17
NSSE , NMP(TRABAJA_EN)
NMS_PRY
NSS_NMS_PRY
NSSE
123456789
123456789
666884444
453453453
453453453
333445555
333445555
333445555
333445555
999887777
999887777
987987987
987987987
987654321
987654321
888665555
NMP
1
2
3
1
2
2
3
10
20
30
10
10
30
30
20
20
NMP(NSSE=123456789 (TRABAJA_EN))
NMS_PRY
NMP
1
2
NSSS
b1
b1
b1
b1
b2
b2
b3
b3
b3
b4
b4
b4
a1
a2
a3
a4
a1
a3
a2
a3
a4
a1
a2
a3
a1
a2
a3
b1
b4
X cjto. de atributos de N
Y cjto. de atributos de D
Z cjto. de atributos de R
t[X] valores de los atributos
del cjto X en la tupla t
A. Jaime 2003
DBD Tema 4
18
(SUMA, PROMEDIO,
y de agrupacin
EMP
NSS
SALARIO
123456789
333445555
999887777
987654321
666884444
453453453
987987987
888665555
30.000
40.000
25.000
43.000
38.000
25.000
25.000
55.000
R1
NSS
123456789
453453453
CUENTA_NSS PROMEDIO_SALARIO
8
R2
NSSS(NSS) NSS_NMS_PRY NMS_PRY
35125
PROMEDIO SALARIO(EMP)
PROMEDIO_SALARIO
35125
El resultado es una
relacin, aunque se
trate de una sola tupla
con un solo atributo
NSS_NMS_PRY
Funciones agregadas
Divisin: (2)
DBD Tema 4
19
A. Jaime 2003
DBD Tema 4
20
EMPAPELLIDO, NSS(EMPLEADO)
DPTO
LSI
LSI
ATC
nulo
LSI
NO cuenta los
valores diferentes
en el campo NOM
para un mismo
DPTO, sino cuntas
tuplas tienen valor
asignado en NOM
para un mismo valor
de DPTO
CUENTA_NOM
3
1
1
S considera el nulo
como valor de
agrupacin
Reunin externa
CUENTA_DPTO
1
2
1
0
NO considera en la
cuenta (o en el
promedio, suma, ...)
los valores nulos
que pueda haber
Permite especificar
una combinacin de
atributos de
agrupacin
A. Jaime 2003
DPTO
LSI
LSI
ATC
nulo
CUENTA_NSS
1
2
1
1
DEPNOMBRED, NSS_JEFE(DEPARTAMENTO)
NOMBRED NSS_JEFE
APELLIDO
NSS
Smith
123456789
Wong
333445555
Zelaya 999887777
Wallace 987654321
Narayan 666884444
English 453453453
Jabbar 987987987
Borg
888665555
Investigacin 333445555
Administracin 987654321
Direccin
888665555
Reunin externa
izquierda R ]| S
R APELLIDO, NOMBRED(
EMP ]|NSS=NSS_JEFE DEP)
APELLIDO NOMBRED
Smith
nulo
Wong
Investigacin
Zelaya
nulo
Wallace Administracin
Narayan
nulo
English
nulo
Jabbar
nulo
Borg
Direccin
Conserva todas
las tuplas de
EMP aunque sea
rellenando todos
los campos
correspondientes
a DEP con
valores nulos
DBD Tema 4
21
A. Jaime 2003
DBD Tema 4
22
Revisin de SQL
EMPLEADO
NOMBRE INIC APELLIDO NSS FECHA_NCTO DIRECCIN
... SEXO
...
SALARIO NSS_SUPERV ND
SQL:
Lenguaje de Definicin de Datos (LDD)
Lenguaje de Manipulacin de Datos (LMD):
consulta y actualizacin
Definicin de vistas
Especificacin de seguridad y autorizacin
Definicin de restricciones de integridad
Especificacin de control de transacciones
Reglas para inclusin en lenguajes (C, PASCAL,...)
DEPARTAMENTO
NOMBRED NMEROD NSS_JEFE FECHA_INIC_JEFE
TRABAJA_EN
NSSE
NP
HORAS
PROYECTO
NOMBREP NMEROP LOCALIZACINP NMD
A. Jaime 2003
DBD Tema 4
23
A. Jaime 2003
DBD Tema 4
24
Restricciones
Restricciones
Atributos
Atributos
Fig 8.1(a)
No pueden tomar
valor nulo
CREATE TABLE DEPARTAMENTO
( NOMBRED
VARCHAR(15) NOT NULL,
NUMEROD
INT
NOT NULL,
NSS_JEFE
CHAR(9)
NOT NULL,
FECHA_INIC_JEFE DATE, Clave primaria
PRIMARY KEY(NUMEROD),
Integridad de entidades
UNIQUE(NOMBRED),
Clave candidata
FOREIGN KEY(NSS_JEFE) REFERENCES EMPLEADO(NSS)
);
Clave extranjera (o externa)
...
Restricciones
Vistas
Dominios
Autorizaciones
DBD Tema 4
INT
CHAR(9)
DATE,
NOT NULL,
A. Jaime 2003
Opciones:
CASCADE
SET DEFAULT
SET NULL
RESTRICT (no poner ON UPDATE ON DELETE)
DBD Tema 4
26
CREATE TABLE:
especificacin de restricciones y valores por omisin (2)
FOREIGN KEY (clave extranjera):
Definicin de atributos:
NOT NULL:
NUMEROD
DROP
25
Valor por
defecto
NSS_JEFE
FECHA_INIC_JEFE
se pone
nombre a la
RI, para poder
cambiarla o
eliminarla con
ALTER y
CREATE TABLE:
especificacin de restricciones y valores por omisin
Fig 8.1(b)
CREATE TABLE DEPARTAMENTO
( NOMBRED
VARCHAR(15) NOT NULL,
Atributos
Atributos
Tablas
Elementos
de un
esquema
INFORMATION
_SCHEMA
Esquema 2
Restricciones
Restricciones
(connombre)
nombre)
(con
Esquema 1
DBD Tema 4
27
A. Jaime 2003
DBD Tema 4
28
Aadir columnas:
ALTER TABLE EMPRESA.EMPLEADO ADD PUESTO
VARCHAR(12);
ningn elemento
contenidos
Borrar columnas:
ALTER TABLE EMPRESA.EMPLEADO DROP
DIRECCIN CASCADE;
CASCADE
columna (DIRECCIN)
RESTRICT
referencias a la misma:
Desde claves externa de otra tabla
DBD Tema 4
29
A. Jaime 2003
DBD Tema 4
Consultas bsicas
(ALTER TABLE)
SELECT columnas
FROM tablas
[WHERE condicin]
Borrar restricciones:
ALTER TABLE EMPRESA.EMPLEADO DROP
CONSTRAINT CLE_SUPERV_EMP;
30
Aadir restricciones:
La omisin de
WHERE equivale
a WHERE TRUE
Condiciones en WHERE:
{=, <>, <, >, <=, >=}, AND, OR, NOT
El resultado puede contener TUPLAS REPETIDAS
EMPLEADO
...
...
DEPARTAMENTO
EMPLEADO(NSS)
FECHA_INIC_JEFE
A. Jaime 2003
DBD Tema 4
31
A. Jaime 2003
DBD Tema 4
32
SELECT *
ALL y DISTINCT
...
...
DIRECCIN
ND
C1A: SELECT *
FROM EMPLEADO, DEPARTAMENTO
WHERE NOMBRED=Investigacin AND ND=NMEROD
DEPARTAMENTO
NOMBRE ND NSS_JEFE
FECHA_INIC_JEFE
Calificando atributos:
C1A:SELECT EMPLEADO.NOMBRE, APELLIDO, DIRECCIN
FROM
EMPLEADO,
DEPARTAMENTO
Utilizando alias:
C1A:SELECT E.NOMBRE, APELLIDO, DIRECCIN
FROM
Declaracin
de alias
Opcin por
defecto
EMPLEADO AS E, DEPARTAMENTO AS D
A. Jaime 2003
DBD Tema 4
33
A. Jaime 2003
DBD Tema 4
LIKE
+, -, *, / y ||
NSSE
...
NP
...
EMPLEADO
PROYECTO
...
...
NMEROP
...
NOMBRE
NMD
DBD Tema 4
NSSE
NP
NSS
...
SALARIO
...
PROYECTO
...
NOMBREP NMEROP
...
A. Jaime 2003
... APELLIDO
TRABAJA_EN
FROM
DEPARTAMENTO
APELLIDO NSS
TRABAJA_EN
EMPLEADO
...
34
35
A. Jaime 2003
DBD Tema 4
36
BETWEEN y
conjuntos explcitos de valores
Ordenacin de tuplas
(ORDER BY)
EMPLEADO
NOMBRE
... APELLIDO
NSS
... ND
DEPARTAMENTO
NSSE
NP
...
SELECT *
FROM EMPLEADO
WHERE (SALARIO BETWEEN 30000 AND 40000)
PROYECTO
BETWEEN:
Informacin de los empleados cuyo salario est entre
30.000 y 40.000
TRABAJA_EN
...
NOMBREP NMEROP
... NMD
A. Jaime 2003
DBD Tema 4
37
A. Jaime 2003
Consultas anidadas
DBD Tema 4
A
1
2
3
4
TRABAJA_EN
NSSE
NP
HORAS
Tuplas de T2
en resultado
de subconsulta
SELECT T.NSSE
FROM TRABAJA_EN AS T INNER JOIN TRABAJA_EN AS
T_EMP ON T.NP=T_EMP.NP
WHERE T_EMP.NSS=123456789 AND T_EMP.HORAS>10
DBD Tema 4
39
D
aaa
aba
bbe
aeb
E F G
1 aaa 2
2 aeb 3
3 aeb 8
4 aeb 5
5 aba 8
A
1
4
2
3
1
Resultado
de subconsulta
T1.A=1
E F GA
1 aaa 2 1
T1
A
1
2
3
4
B
bb
ab
cb
ec
C
5
3
4
2
D
aaa
aba
bbe
aeb
A. Jaime 2003
T2
C
5
3
4
2
SELECT A, B, C
Atributo de T2
FROM T1
WHERE A IN ( SELECT A
Atributo del
SELECT externo
FROM T2
WHERE G<6 AND F=T1.D )
SELECT NSSE
FROM TRABAJA_EN
WHERE NP IN (SELECT NP FROM TRABAJA_EN
WHERE NSS=123456789 AND HORAS>10)
B
bb
ab
cb
ec
Atributo de T1
38
A. Jaime 2003
A
1
RESULTADO
E F GA
A
T1.A=2
E F GA
E F GA
2 aeb 3 4
4 aeb 5 3
A
4
3
DBD Tema 4
A B C
1 bb 5
4 ec 2
T1.A=3
T1.A=4
40
EXISTS
EMPLEADO
DNI SALARIO
1
100
2
150
3
175
4
200
5
160
(*)
< ALL
<=ALL
< ANY
<= ANY
A. Jaime 2003
Resultado
1
1, 2, 3, 5
1, 2, 3, 4, 5
DBD Tema 4
DEPENDIENTE
... APELLIDO
Ejemplo:
NOTA
DNI
1
1
1
2
2
3
3
3
Asig
7984
7450
7540
7984
4544
7984
4544
7540
Nota
5
4,5
8,5
6
3
7,5
9
8
A. Jaime 2003
C
5
3
4
8
Resultado
de subconsulta
E F G
4 aeb 5
F
aeb
E F G
2 aeb 3
6 aeb 3
F
aeb
aeb
E F G
E F G
3 aba 8
5 aba 8
F
aba
aba
DBD Tema 4
RESULTADO
Nombre
Jon
Leire
Asig Nota
7984 7,5
4544 9
7540 8
DBD Tema 4
TRABAJA_EN
NSSE
42
RESULTADO
A
1
3
4
B
bb
cb
ec
43
NP
PROYECTO
...
NP
...
Transformacin de
teora de conjuntos
B
bb
ab
cb
ec
A. Jaime 2003
Transformacin de
clculo relacional
A
1
2
3
4
Resultado
de subconsulta
ALUMNO
SELECT A, B
FROM T1
WHERE UNIQUE ( SELECT F FROM T2 WHERE G=T1.C )
E F G
1 aaa 2
2 aeb 3
3 aba 8
4 aeb 5
5 aba 8
6 aeb 3
SELECT Nombre
FROM ALUMNO AS A
WHERE EXISTS ( SELECT * FROM NOTA
WHERE Nota>=7 AND DNI=A.DNI)
DNI Nombre
1
Jon
2
Ana
3
Leire
T1
...
Divisin en SQL
T2
NSSE NOMBRE
DNI
3
3
3
41
...
UNIQUE
Tuplas de T2
en resultado
de subconsulta
NSS
A. Jaime 2003
DBD Tema 4
44
Vendedor
Mara
Aitor
Vendedor
Juan
Ana
AND OR
A NOT
Null True Null Null
Null Null
Null Null
(UNKNOWN)
A. Jaime 2003
B
Null
Null
Null
Cdigo de
vendedor Ventas
Cod Vendedor Vendido Cuota
1
Juan
1000
1000
2
Mara
1500
1000
3
Jess
500
Null
4
Ana
1000
1200
5
Aitor
1100
1000
6
Leire
2000
Null
A
True
False
Null
La tabla
del null
45
Cuota
1500
1500
Null
1700
1500
Null
A. Jaime 2003
46
Cdigo de
vendedor Ventas
Cod Vendedor Vendido Cuota
1
Juan
1000
1000
2
Mara
1500
1000
3
Jess
500
Null
4
Ana
1000
1200
5
Aitor
1100
1000
6
Leire
2000
Null
EMPLEADO E, ...
FROM
EMPLEADO AS E, ...
SQL1
SQL2
SQL2
A. Jaime 2003
DBD Tema 4
47
A. Jaime 2003
DBD Tema 4
48
Tablas combinadas
...
...
...
...
DEPARTAMENTO
NOMBRED NMEROD NSS_JEFE
EMPLEADO
... NMD
FECHA_INIC_JEFE
NSS_JEFE
PROYECTO
...
...
A. Jaime 2003
AS ED ...
DBD Tema 4
49
A. Jaime 2003
DBD Tema 4
OUTER JOIN
T1
A
@
aa
bb
cc
UNION JOIN
T2
B
null
1
2
3
E
F
000 null
100 1
101 1
200 2
400 4
SELECT *
FROM T1 INNER JOIN T2
ON B=F
A B E
F
aa 1 100 1
aa 1 101 1
bb 2 200 2
SELECT *
FROM T1 LEFT JOIN T2
ON B=F
A B E
F
@ null null null
aa 1 100 1
aa 1 101 1
bb 2 200 2
cc 3 null null
Oracle: no lo implementa
SQLServer: ...WHERE B*=*F
SELECT *
FROM T1 RIGTH JOIN T2
ON B=F
A B E
F
null null 000 null
aa 1 100 1
aa 1 101 1
bb 2 200 2
null null 400 4
SELECT *
FROM T1 FULL JOIN T2
ON B=F
A B E
F
@ null null null
null null 000 null
aa 1 100 1
aa 1 101 1
bb 2 200 2
cc 3 null null
null null 400 4
A. Jaime 2003
DBD Tema 4
50
51
B
aa
ab
bc
C
1
2
T4
B
a
aa
b
D
1
2
3
SELECT *
FROM T1 UNION JOIN T2
A
aa
ab
bb
bc
cc
SELECT *
FROM T2 UNION JOIN T3
B
aa
ab
bc
null
null
SELECT *
FROM T2 UNION JOIN T4
B
a
aa
ab
b
bc
A. Jaime 2003
DBD Tema 4
C
null
null
null
1
2
D
1
2
null
3
null
52
DEPARTAMENTO
NOMBRED NMEROD
Investigacin
5
Administracin
4
Direccin
1
NOMBREP
SALARIO
ND
John
Franklin
Ramesh
Joyce
Alicia
Jennifer
Ahmad
James
NULL
15.000
10.000
10.000
10.000
20.000
20.000
20.000
5
5
5
5
4
4
4
1
...
...
35.000
15.000
C22 COUNT(*)
C23:
NOMBREP
SALARIO
ND
John
Franklin
Ramesh
Joyce
Alicia
Jennifer
Ahmad
James
NULL
15.000
10.000
10.000
10.000
20.000
20.000
20.000
5
NULL
5
5
4
4
4
1
...
DBD Tema 4
11.666
53
A. Jaime 2003
SALARIO
ND
NOMBRED
30.000
15.000
10.000
10.000
10.000
20.000
20.000
20.000
5
5
5
5
4
4
4
1
Investigacin
Investigacin
Investigacin
Investigacin
Administracin
Administracin
Administracin
Direccin
...
...
...
C24:
NOMBRED
...
ND
NOMBRED
NULL
10
10
10
NULL
NULL
5
5
NULL
NULL
DMC
DMC
...
...
A. Jaime 2003
...
...
ND N_EMP SAL_MED
Investigacin 5
Administracin 4
Direccin
1
COUNT( SALARIO)
7
C23:
COUNT( *)
4
3
1
DBD Tema 4
54
TRABAJA_EN
...
NMD
NSSE
NP
...
16.250
16.666
20.000
Los valores
nulos forman su
propio grupo
3
C23:
HAVING
...
COUNT(DISTINCT SALARIO)
35.000
35.000/ /33
4
A. Jaime 2003
...
10.000
EMPLEADO
C20
NO cuenta
los valores nulos
**seserefiere
C22: SELECT COUNT(*)
refiereaatuplas
tuplas
FROM EMPLEADO INNER JOIN DEPARTAMENTO ON
ND=NMEROD
WHERE NOMBRED=Investigacin
EMPLEADO
C24:
NOMBRED
ND
NULL
DMC
NULL
5
DBD Tema 4
N_EMP SAL_MED
2
2
10
10
55
A. Jaime 2003
DBD Tema 4
56
WHERE SALARIO>30.000
GROUP BY NOMBRED
HAVING COUNT(*) > 2
EMPLEADO
INNER JOIN
DEPARTAMENTO:
Primero
se ejecuta
WHERE
NOMBREP
SALARIO
ND
NOMBRED
Jos
Federico
Ramn
Josefa
Alicia
Jazmn
Ahmed
Jaime
35.000
40.000
38.000
25.000
25.000
43.000
25.000
55.000
5
5
5
5
4
4
4
1
Investigacin
Investigacin
Investigacin
Investigacin
Administracin
Administracin
Administracin
Direccin
...
NOMBREP
INNER JOIN
Jos
... WHERE
Federico
SALARIO
>30.000:
Ramn
Jazmn
Jaime
Despus
se ejecuta
HAVING
A. Jaime 2003
...
...
ND
SALARIO
...
35.000
40.000
38.000
43.000
55.000
...
...
5
5
5
4
1
...
NO se puede usar
el nuevo nombre
(AS) del atributo
del resultado en
ORDER BY
NOMBRED
...
NOMBRED
COUNT(*)
Investigacin
Investigacin
Investigacin
Investigacin
Administracin
Direccin
DBD Tema 4
...
NO
NO
57
A. Jaime 2003
CASE
Operador NULLIF:
SELECT . . .
FROM . . .
WHERE BENEFICIO / NULLIF(COSTO, -1) >100
SELECT NOMBRE,
CASE ESTADO_CIVIL
WHEN S THEN SOLTERO/A
WHEN C THEN CASADA/O
WHEN D THEN DIVORCIADO/A
ELSE VIUDA/O
END, EDAD, FECHA_NACIMIENTO
FROM PERSONAS;
Operador COALESCE:
K1: SELECT NOMBRE, COALESCE(SUELDO, PARO,
SALARIO_SOCIAL) AS SALARIO
FROM DATOS_HACIENDA;
DATOS_HACIENDA
UPDATE EMPLEADO
SET SUELDO = CASE DEPTO
WHEN VIDEO THEN SUELDO*1.1
WHEN MSICA THEN SUELDO*1.2
ELSE 0
END;
DBD Tema 4
58
NULLIF y COALESCE
SELECT NOMBRE,
CASE
WHEN ESTADOCIVIL=S THEN SOLTERO/A
WHEN ESTADOCIVIL=C THEN CASADA/O
WHEN ESTADOCIVIL=D THEN DIVORCIADO/A
ELSE VIUDA/O
END, EDAD, FECHA_NACIMIENTO
FROM PERSONAS;
A. Jaime 2003
DBD Tema 4
K1:
Matias
Marta
Maider
59
A. Jaime 2003
NULL NULL
NULL 30.000
40.000 NULL
20.000
NULL
NULL
DBD Tema 4
NOMBRE SALARIO
Matias
Marta
Maider
20.000
30.000
40.000
60
Tambin hay
HAVING, que
este curso no
estudiaremos
DATE
equivale a:
WHERE NOMBRE= Jos Mara AND EDAD=18
AND ESTADO_CIVIL=S
A. Jaime 2003
DBD Tema 4
61
A. Jaime 2003
DBD Tema 4
62
INSERT
A. Jaime 2003
DBD Tema 4
63
DBD Tema 4
64
DELETE
INSERT (2)
A3A: CREATE TABLE INFO_DEPTOS (
NOMBRE_DEPTO VARCHAR(15),
NM_DE_EMPS INTEGER,
SAL_TOTAL INTEGER);
A. Jaime 2003
DBD Tema 4
65
A. Jaime 2003
UPDATE
67
DBD Tema 4
66
Vistas en SQL
A. Jaime 2003
DBD Tema 4
A. Jaime 2003
DBD Tema 4
68
DEP
NOMBRE NSS ND
NUMD NOMD
Iker
Ana
Jon
Karmele
11
22
33
44
1
1
2
2
1
2
PROY
LSI
ATC
TRAB
NP NOMBRE
1
2
3
4
NSSE NP HORAS
.NET
XML
EJB
UML
11
11
22
22
44
1
2
1
3
3
5
2
3
1
4
Ejercicios
A. Jaime 2003
DBD Tema 4
69
... SEXO
70
...
SALARIO NSS_SUPERV ND
DEPARTAMENTO
NOMBRED NMEROD NSS_JEFE FECHA_INIC_JEFE
LOCALIZACIONES_DEPT
NMEROD LOCALIZACIND
PROYECTO
NOMBREP NMEROP LOCALIZACINP NMD
TRABAJA_EN
NSSE
DBD Tema 4
EMPLEADO
NP
HORAS
DEPENDIENTE
NSSE NOMBRE_DEPENDIENTE SEXO FECHA_NCTO PARENTESCO
A. Jaime 2003
DBD Tema 4
71
A. Jaime 2003
DBD Tema 4
72
DBD Tema 4
73
DBD Tema 4
74
DEP
NOMBRE NSS ND
NUMD NOMD
Iker
Ana
Jon
Karmele
Soluciones
11
22
33
44
1
1
2
2
PROY
1
2
TRAB
NP NOMBRE
LSI
ATC
1
2
3
4
.NET
XML
EJB
UML
NSSE NP HORAS
11
11
22
22
44
1
2
1
3
3
PRY1_MAS1HORA
R1
R2 TODOS_PRY R3
NSSE NP HORAS
NSSE
NP
NP
NP
11
22
1
2
3
1
2
3
4
11
22
1
1
5
3
PRY1_MAS1HORA
5
2
3
1
4
R1 NSS (PRY1_MAS1HORA)
R2 NP (TRAB)
TODOS_PRY NP (PROY)
R3TODOS_PRY - R2
R4
R5
11
22
33
44
1
1
2
2
R4 EMP
1
1
2
2
NOMBRE NOMD
LSI
LSI
ATC
ATC
Iker
Ana
Jon
Karmele
LSI
LSI
ATC
ATC
|| ND=NNUMD DEP
A. Jaime 2003
DBD Tema 4
75
A. Jaime 2003
DBD Tema 4
76
(Elmasri/Navathe 7.18)
EMP
DEP
NOMBRE NSS ND
NUMD NOMD
Iker
Ana
Jon
Karmele
11
22
33
44
1
1
2
2
1
2
PERS
LSI
ATC
11
22
33
44
TRAB
NP NOMBRE
1
2
3
4
NSSE NP HORAS
.NET
XML
EJB
UML
11
11
22
22
44
R6
TRB
NOMBRE NSS
Iker
Ana
Jon
Karmele
PROY
NSS
NP
11
11
22
22
44
1
2
1
3
3
1
2
1
3
3
5
2
3
1
4
NOMBRE NSS NP
Iker
Iker
Ana
Ana
Karmele
11
11
22
22
44
1
2
1
3
3
NP NOMP
1
2
3
4
.NET
XML
EJB
UML
PERS_PRY
R7
NOMBRE NOMP
Iker
Iker
Ana
Ana
Karmele
11
11
22
22
44
1
2
1
3
3
.NET
XML
.NET
EJB
EJB
Iker
Iker
Ana
Ana
Karmele
.NET
XML
.NET
EJB
EJB
PERS_PRY
NOMBRE NSS NP
DBD Tema 4
77
DBD Tema 4
(Elmasri/Navathe 7.18)
(Elmasri/Navathe 7.18)
A. Jaime 2003
EMP_PROY(NSS) NSSE(TRABAJA_EN)
EMPS NSS(EMPLEADO)
EMPS_SIN_PRY EMPS - EMP_PROY
R8 PROMEDIO SALARIO(EMP_FEM)
DBD Tema 4
A. Jaime 2003
78
Alternativa vlida
79
A. Jaime 2003
DBD Tema 4
80
(1)