Beruflich Dokumente
Kultur Dokumente
Prcticas y Soluciones
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-2
Tabla de Contenido
Prcticas para la Leccin I ........................................................................................................ 3
Prctica I-1: Introduccin ............................................................................................... 4
Soluciones a la Prctica I-1: Introduccin ...................................................................... 5
Prcticas de la Leccin 1......................................................................................................... 11
Prctica 1-1: Recuperacin de Datos mediante la Sentencia SQL SELECT................ 12
Soluciones a la Prctica 1-1: Recuperacin de Datos mediante la Sentencia SQL
SELECT........................................................................................................................ 16
Prcticas de la Leccin 2......................................................................................................... 19
Prctica 2-1: Restriccin y Ordenacin de Datos ......................................................... 20
Soluciones a la Prctica 2-1: Restriccin y Ordenacin de Datos ................................ 24
Prcticas de la Leccin 3......................................................................................................... 27
Prctica 3-1: Uso de Funciones de Una Sola Fila para Personalizar la Salida ............. 28
Soluciones a la Prctica 3-1: Uso de Funciones de Una Sola Fila para
Personalizar la Salida.................................................................................................... 32
Prcticas de la Leccin 4......................................................................................................... 35
Prctica 4-1: Uso de Funciones de Conversin y Expresiones Condicionales............. 36
Soluciones a la Prctica 4-1: Uso de Funciones de Conversin y Expresiones
Condicionales................................................................................................................ 39
Prcticas de la Leccin 5......................................................................................................... 41
Prctica 5-1: Informes de Datos Agregados con Funciones de Grupo......................... 42
Soluciones a la Prctica 5-1: Informes de Datos Agregados con Funciones de
Grupo ............................................................................................................................ 45
Prcticas de la Leccin 6......................................................................................................... 48
Prctica 6-1: Visualizacin de Datos de Varias Tablas Utilizando Uniones ................ 49
Soluciones a la Prctica 6-1: Visualizacin de Datos de Varias Tablas Utilizando
Uniones ......................................................................................................................... 52
Prcticas de la Leccin 7......................................................................................................... 54
Prctica 7-1: Uso de Subconsultas para Solucionar Consultas..................................... 55
Soluciones a la Prctica 7-1: Uso de Subconsultas para Solucionar Consultas............ 57
Prcticas de la Leccin 8......................................................................................................... 59
Prctica 8-1: Uso de los Operadores de Definicin...................................................... 60
Soluciones a la Prctica 8-1: Uso de los Operadores de Definicin............................. 62
Prcticas de la Leccin 9......................................................................................................... 64
Prctica 9-1: Manipulacin de Datos............................................................................ 65
Soluciones a la Prctica 9-1: Manipulacin de Datos................................................... 69
Prcticas de la Leccin 10....................................................................................................... 73
Prctica 10-1: Uso de Sentencias DDL para Crear y Gestionar Tablas........................ 74
Soluciones a la Prctica 10-1: Uso de Sentencias DDL para Crear y Gestionar
Tablas............................................................................................................................ 76
Prcticas de la Leccin 11....................................................................................................... 79
Prctica 11-1: Creacin de Otros Objetos de Esquema ................................................ 80
Soluciones a la Prctica 11-1: Creacin de Otros Objetos de Esquema....................... 82
Prcticas del Apndice F......................................................................................................... 84
Prctica F-1: Sintaxis de Unin en Oracle.................................................................... 85
Soluciones a las Prcticas F-1: Sintaxis de Unin en Oracle........................................ 88
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-3
Prcticas para la Leccin I
En esta prctica, realizar las siguientes tareas:
Iniciar Oracle SQL Developer y crear una nueva conexin a la cuenta ora1.
Utilizar Oracle SQL Developer para examinar objetos de datos en la cuenta ora1.
La cuenta ora1 contiene las tablas de esquema HR.
Observe la siguiente ubicacin de los archivos de los ejercicios prcticos:
\home\oracle\labs\sql1\labs
Si se le pide que guarde algn archivo de los ejercicios prcticos, gurdelo en esta
ubicacin.
En las prcticas, puede que haya ejercicios que estn precedidos por las frases Si tiene
tiempo o Si desea superarse a s mismo. Realice estos ejercicios slo si ha terminado
el resto de ejercicios en el tiempo asignado y si desea poner a prueba sus habilidades.
Realice las prcticas despacio y de forma precisa. Puede experimentar guardando y
ejecutando los archivos de comandos. Si tiene alguna duda en cualquier momento,
pregunte a su instructor.
Nota
1) Todas las prcticas escritas utilizan Oracle SQL Developer como entorno de
desarrollo. Aunque se recomienda utilizar Oracle SQL Developer, tambin puede usar
SQL*Plus, disponible en este curso.
2) Para cualquier consulta, la secuencia de filas recuperadas de la base de datos puede
variar con respecto a la que se muestra en las capturas de pantalla.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-4
Prctica I-1: Introduccin
sta es la primera de varias prcticas de este curso. Las soluciones (si las necesita) estn
al final de esta prctica. Las prcticas estn destinadas a abarcar la mayora de los temas
que se presentan en la leccin correspondiente.
Inicio de Oracle SQL Developer
1) Inicie Oracle SQL Developer mediante el icono del escritorio de SQL Developer.
Creacin de Nuevas Conexiones a la Base de Datos de Oracle SQL Developer
2) Para crear una nueva conexin a la base de datos, en el navegador de conexiones,
haga clic con el botn derecho del mouse en Connections. Seleccione New
Connection en el men. Aparece el cuadro de dilogo New/Select Database
Connection.
3) Cree una conexin a la base de datos con la siguiente informacin:
a) Connection Name: myconnection
b) Username: ora1
c) Password: ora1
d) Hostname: localhost
e) Port: 1521
f) SID: ORCL
Asegrese de activar la casilla de control Save Password.
Prueba y Conexin mediante la Conexin a la Base de Datos de Oracle SQL
Developer
4) Pruebe la nueva conexin.
5) Si el estado es Success, conctese a la base de datos mediante esta nueva conexin.
Examen de Tablas en el Navegador de Conexiones
6) En el navegador de conexiones, visualice los objetos disponibles en el nodo Tables.
Verifique que las siguientes tablas estn presentes:
COUNTRIES
DEPARTMENTS
EMPLOYEES
JOB_GRADES
JOB_HISTORY
JOBS
LOCATIONS
REGIONS
7) Examine la estructura de la tabla EMPLOYEES.
8) Visualice los datos de la tabla DEPARTMENTS.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-5
Soluciones a la Prctica I-1: Introduccin
Inicio de Oracle SQL Developer
1) Inicie Oracle SQL Developer mediante el icono del escritorio de SQL Developer.
a) Haga doble clic en el icono del escritorio de SQL Developer.
Aparece la interfaz de SQL Developer.
Creacin de Nuevas Conexiones a la Base de Datos de Oracle SQL Developer
2) Para crear una nueva conexin a la base de datos, en el navegador de conexiones,
haga clic con el botn derecho del mouse en Connections y seleccione New
Connection en el men.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-11
Prcticas de la Leccin 1
En esta prctica, escribir consultas simples SELECT. Las consultas tratan la mayora de
las operaciones y clusulas SELECT que ha aprendido en esta leccin.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-12
Prctica 1-1: Recuperacin de Datos mediante la Sentencia SQL
SELECT
Parte 1
Ponga a prueba sus conocimientos:
1) La siguiente sentencia SELECT se ejecuta correctamente:
SELECT last_name, job_id, salary AS Sal
FROM employees;
Verdadero/Falso
2) La siguiente sentencia SELECT se ejecuta correctamente:
SELECT *
FROM job_grades;
Verdadero/Falso
3) En la siguiente sentencia hay cuatro errores de codificacin. Puede identificarlos?
SELECT employee_id, last_name
sal x 12 ANNUAL SALARY
FROM employees;
Parte 2
Tenga en cuenta los siguientes puntos antes de iniciar las prcticas:
Guarde todos los archivos de los ejercicios prcticos en la siguiente ubicacin:
/home/oracle/labs/sql1/labs
Introduzca las sentencias SQL en una hoja de trabajo de SQL. Para guardar un
script en SQL Developer, asegrese de que la hoja de trabajo de SQL necesaria
est activa y, a continuacin, en el men File, seleccione Save As para guardar la
sentencia SQL como un script lab_<lessonno>_<stepno>.sql. Cuando est
modificando un script existente, asegrese de que utiliza Save As para guardarlo
con un nombre de archivo diferente.
Para ejecutar una consulta, haga clic en el icono Execute Statement en la hoja de
trabajo de SQL. Como alternativa, puede pulsar [F9]. Para sentencias DML y
DDL, utilice el icono Run Script o pulse [F5].
Una vez ejecutada la consulta, asegrese de que no introduce la siguiente consulta
en la misma hoja de trabajo. Abra una hoja de trabajo nueva.
Se le ha contratado como programador de SQL para Acme Corporation. Su primera tarea
es crear algunos informes segn los datos de las tablas de recursos humanos.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-16
Soluciones a la Prctica 1-1: Recuperacin de Datos mediante la
Sentencia SQL SELECT
Parte 1
Ponga a prueba sus conocimientos:
1) La siguiente sentencia SELECT se ejecuta correctamente:
SELECT last_name, job_id, salary AS Sal
FROM employees;
Verdadero/Falso
2) La siguiente sentencia SELECT se ejecuta correctamente:
SELECT *
FROM job_grades;
Verdadero/Falso
3) En la siguiente sentencia hay cuatro errores de codificacin. Puede identificarlos?
SELECT employee_id, last_name
sal x 12 ANNUAL SALARY
FROM employees;
La tabla EMPLOYEES no contiene ninguna columna denominada sal. La
columna se denomina SALARY.
El operador de multiplicacin es *, no x, como se muestra en la lnea 2.
El alias ANNUAL SALARY no puede incluir espacios. El alias debe ser
ANNUAL_SALARY o se deben incluir entre comillas dobles.
Falta una coma tras la columna LAST_NAME.
Parte 2
Se le ha contratado como programador de SQL para Acme Corporation. Su primera tarea
es crear algunos informes segn los datos de las tablas de recursos humanos.
4) Su primera tarea es determinar la estructura de la tabla DEPARTMENTS y su contenido.
a. Para determinar la estructura de la tabla DEPARTMENTS:
DESCRIBE departments
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-19
Prcticas de la Leccin 2
En esta prctica se crean ms informes, incluyendo sentencias que utilizan las clusulas
WHERE y ORDER BY. Puede hacer que las sentencias SQL sean ms reutilizables y
genricas incluyendo la sustitucin con ampersand.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-20
Prctica 2-1: Restriccin y Ordenacin de Datos
El departamento de recursos humanos necesita su ayuda para crear algunas consultas.
1) Debido a problemas presupuestarios, el departamento de recursos humanos necesita
un informe que muestre el apellido y el salario de los empleados que ganan ms de
12.000 dlares. Guarde la sentencia SQL como un archivo denominado
lab_02_01.sql. Ejecute la consulta.
2) Abra una hoja de trabajo de SQL nueva. Cree un informe que muestre el apellido y el
nmero de departamento para el nmero de empleado 176. Ejecute la consulta.
3) El departamento de recursos humanos necesita encontrar los empleados con salarios
tanto altos como bajos. Modifique lab_02_01.sql para mostrar el apellido y el
salario de cualquier empleado cuyo salario no est entre 5.000 y 12.000 dlares.
Guarde la sentencia SQL como lab_02_03.sql.
4) Cree un informe para mostrar el apellido, ID de cargo y fecha de contratacin de los
empleados cuyos apellidos sean Matos y Taylor. Ordene la consulta en orden
ascendente por fecha de contratacin.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-24
Soluciones a la Prctica 2-1: Restriccin y Ordenacin de Datos
El departamento de recursos humanos necesita su ayuda para crear algunas consultas.
1) Debido a problemas presupuestarios, el departamento de recursos humanos necesita
un informe que muestre el apellido y el salario de los empleados que ganan ms de
12.000 dlares. Guarde la sentencia SQL como un archivo denominado
lab_02_01.sql. Ejecute la consulta.
SELECT last_name, salary
FROM employees
WHERE salary > 12000;
2) Abra una hoja de trabajo de SQL nueva. Cree un informe que muestre el apellido y el
nmero de departamento para el nmero de empleado 176.
SELECT last_name, department_id
FROM employees
WHERE employee_id = 176;
3) El departamento de recursos humanos necesita encontrar los empleados con salarios
tanto altos como bajos. Modifique lab_02_01.sql para mostrar el apellido y el
salario de todos los empleados cuyo salario no est entre 5.000 y 12.000 dlares.
Guarde la sentencia SQL como lab_02_03.sql.
SELECT last_name, salary
FROM employees
WHERE salary NOT BETWEEN 5000 AND 12000;
4) Cree un informe para mostrar el apellido, ID de cargo y fecha de contratacin de los
empleados cuyos apellidos sean Matos y Taylor. Ordene la consulta en orden
ascendente por fecha de contratacin.
SELECT last_name, job_id, hire_date
FROM employees
WHERE last_name IN ('Matos', 'Taylor')
ORDER BY hire_date;
5) Muestre el apellido y el ID de departamento de todos los empleados de los
departamentos 20 o 50 en orden alfabtico ascendente por nombre.
SELECT last_name, department_id
FROM employees
WHERE department_id IN (20, 50)
ORDER BY last_name ASC;
6) Modifique el archivo lab_02_03.sql para mostrar el apellido y el salario de los
empleados que ganan entre 5.000 y 12.000 dlares y estn en el departamento 20 o
50. Etiquete las columnas Employee y Monthly Salary, respectivamente. Vuelva a
guardar lab_02_03.sql como lab_02_06.sql. Ejecute la sentencia en el archivo
lab_02_06.sql.
SELECT last_name "Employee", salary "Monthly Salary"
FROM employees
WHERE salary BETWEEN 5000 AND 12000
AND department_id IN (20, 50);
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-27
Prcticas de la Leccin 3
Esta prctica proporciona una variedad de ejercicios que utilizan diferentes funciones que
estn disponibles para tipos de dato de carcter, de nmero y de fecha.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-28
Prctica 3-1: Uso de Funciones de Una Sola Fila para
Personalizar la Salida
1) Escriba una consulta para mostrar la fecha del sistema. Etiquete la columna como
Date.
Nota: si la base de datos se ubica de forma remota en una zona horaria diferente, la
salida ser la fecha del sistema operativo en el que reside la base de datos.
2) El departamento de recursos humanos necesita un informe que muestre el nmero de
empleado, apellido, salario y salario aumentado en un 15,5% (expresado como
nmero entero) para cada empleado. Etiquete la columna como New Salary. Guarde
la sentencia SQL en un archivo denominado lab_03_02.sql.
3) Ejecute la consulta en el archivo lab_03_02.sql.
4) Modifique la consulta lab_03_02.sql para agregar una columna que reste el
salario antiguo del nuevo. Etiquete la columna como Increase. Guarde el contenido
del archivo como lab_03_04.sql. Ejecute la consulta revisada.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-32
Soluciones a la Prctica 3-1: Uso de Funciones de Una Sola Fila
para Personalizar la Salida
1) Escriba una consulta para mostrar la fecha del sistema. Etiquete la columna como
Date.
Nota: si la base de datos se ubica de forma remota en una zona horaria diferente, la
salida ser la fecha del sistema operativo en el que reside la base de datos.
SELECT sysdate "Date"
FROM dual;
2) El departamento de recursos humanos necesita un informe que muestre el nmero de
empleado, apellido, salario y salario aumentado en un 15,5% (expresado como
nmero entero) para cada empleado. Etiquete la columna como New Salary.
Guarde la sentencia SQL en un archivo denominado lab_03_02.sql.
SELECT employee_id, last_name, salary,
ROUND(salary * 1.155, 0) "New Salary"
FROM employees;
3) Ejecute la consulta en el archivo lab_03_02.sql.
SELECT employee_id, last_name, salary,
ROUND(salary * 1.155, 0) "New Salary"
FROM employees;
4) Modifique la consulta lab_03_02.sql para agregar una columna que reste el
salario antiguo del nuevo. Etiquete la columna como Increase. Guarde el
contenido del archivo como lab_03_04.sql. Ejecute la consulta revisada.
SELECT employee_id, last_name, salary,
ROUND(salary * 1.155, 0) "New Salary",
ROUND(salary * 1.155, 0) - salary "Increase"
FROM employees;
5) Escriba una consulta que muestre el apellido (con la primera letra en maysculas y el
resto en minsculas) y la longitud del apellido de todos los empleados cuyos nombres
empiecen por las letras "J", "A" o "M". Proporcione a cada columna una etiqueta
adecuada. Ordene los resultados por el apellido de los empleados.
SELECT INITCAP(last_name) "Name",
LENGTH(last_name) "Length"
FROM employees
WHERE last_name LIKE 'J%'
OR last_name LIKE 'M%'
OR last_name LIKE 'A%'
ORDER BY last_name ;
Vuelva a escribir la consulta para que se le solicite al usuario que introduzca la letra
por la que empieza el apellido. Por ejemplo, si el usuario introduce H (en mayscula)
cuando se le solicita que introduzca una letra, la salida debe mostrar a todos los
empleados cuyos apellidos empiecen por la letra "H".
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-35
Prcticas de la Leccin 4
Esta prctica proporciona una variedad de ejercicios que utilizan las funciones TO_CHAR
y TO_DATE y expresiones condicionales como DECODE y CASE. Recuerde que para las
funciones anidadas, los resultados se evalan desde la funcin ms profunda hasta la
funcin menos profunda.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-36
Prctica 4-1: Uso de Funciones de Conversin y Expresiones
Condicionales
1) Cree un informe que produzca los siguientes resultados para cada empleado:
<apellido_empleado> earns <salario> monthly but wants <3 veces
el salario.>. Etiquete la columna como Dream Salaries.
2) Muestre el apellido, fecha de contratacin y fecha de revisin de salario de cada
empleado, que es el primer lunes despus de seis meses de contrato. Etiquete la
columna como REVIEW. Formatee las fechas para que aparezcan en un formato
similar a Lunes treinta y uno de julio de 2000.
3) Muestre el apellido, fecha de contratacin y da de la semana en el que empez a
trabajar el empleado. Etiquete la columna como DAY. Ordene los resultados por el da
de la semana, empezando por el lunes.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-39
Soluciones a la Prctica 4-1: Uso de Funciones de Conversin y
Expresiones Condicionales
1) Cree un informe que produzca los siguientes resultados para cada empleado:
<apellido_empleado> earns <salario> mensual pero desea<3 veces el salario.>.
Etiquete la columna como Dream Salaries.
SELECT last_name || ' earns '
|| TO_CHAR(salary, 'fm$99,999.00')
|| ' monthly but wants '
|| TO_CHAR(salary * 3, 'fm$99,999.00')
|| '.' "Dream Salaries"
FROM employees;
2) Muestre el apellido, fecha de contratacin y fecha de revisin de salario de cada
empleado, que es el primer lunes despus de seis meses de contrato. Etiquete la
columna como REVIEW. Formatee las fechas para que aparezcan en un formato
similar a Lunes treinta y uno de julio de 2000.
SELECT last_name, hire_date,
TO_CHAR(NEXT_DAY(ADD_MONTHS(hire_date, 6),'MONDAY'),
'fmDay, "the" Ddspth "of" Month, YYYY') REVIEW
FROM employees;
3) Muestre el apellido, fecha de contratacin y da de la semana en el que empez a
trabajar el empleado. Etiquete la columna como DAY. Ordene los resultados por el da
de la semana, empezando por el lunes.
SELECT last_name, hire_date,
TO_CHAR(hire_date, 'DAY') DAY
FROM employees
ORDER BY TO_CHAR(hire_date - 1, 'd');
4) Cree una consulta que muestre los apellidos y comisiones de los empleados. Si un
empleado no obtiene ninguna comisin, indique "No Commission". Etiquete la
columna como COMM.
SELECT last_name,
NVL(TO_CHAR(commission_pct), 'No Commission') COMM
FROM employees;
5) Con la funcin DECODE, escriba una consulta que muestre el grado de todos los
empleados segn el valor de la columna JOB_ID, utilizando los siguientes datos:
Cargo Grado
AD_PRES A
ST_MAN B
IT_PROG C
SA_REP D
ST_CLERK E
None of the above 0
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-41
Prcticas de la Leccin 5
Al finalizar esta prctica, debe estar familiarizado con el uso de funciones de grupo y la
seleccin de grupos de datos.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-42
Prctica 5-1: Informes de Datos Agregados con Funciones de
Grupo
Determine la validez de las tres sentencias siguientes. Seleccione Verdadero o Falso.
1) Las funciones de grupo funcionan en varias filas para producir un resultado por grupo.
Verdadero/Falso
2) Las funciones de grupo incluyen valores nulos en los clculos.
Verdadero/Falso
3) La clusula WHERE restringe las filas antes de incluirlas en un clculo de grupo.
Verdadero/Falso
El departamento de recursos humanos necesita los siguientes informes:
4) Encontrar el valor ms alto, el valor ms bajo, la suma y la media del salario de todos
los empleados. Etiquete las columnas como Maximum, Minimum, Sum y Average,
respectivamente. Redondee los resultados al nmero entero ms cercano. Guarde la
sentencia SQL como lab_05_04.sql. Ejecute la consulta.
5) Modifique la consulta del archivo lab_05_04.sql para mostrar el valor mnimo, el
valor mximo, la suma y la media del salario de cada tipo de cargo. Vuelva a guardar
lab_05_04.sql como lab_05_05.sql. Ejecute la sentencia en el archivo
lab_05_05.sql.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-45
Soluciones a la Prctica 5-1: Informes de Datos Agregados con
Funciones de Grupo
Determine la validez de las tres sentencias siguientes. Seleccione Verdadero o Falso.
1) Las funciones de grupo funcionan en varias filas para producir un resultado por grupo.
Verdadero/Falso
2) Las funciones de grupo incluyen valores nulos en los clculos.
Verdadero/Falso
3) La clusula WHERE restringe las filas antes de incluirlas en un clculo de grupo.
Verdadero/Falso
El departamento de recursos humanos necesita los siguientes informes:
4) Encontrar el valor ms alto, el valor ms bajo, la suma y la media del salario de todos
los empleados. Etiquete las columnas como Maximum, Minimum, Sum y Average,
respectivamente. Redondee los resultados al nmero entero ms cercano. Guarde la
sentencia SQL como lab_05_04.sql. Ejecute la consulta.
SELECT ROUND(MAX(salary),0) "Maximum",
ROUND(MIN(salary),0) "Minimum",
ROUND(SUM(salary),0) "Sum",
ROUND(AVG(salary),0) "Average"
FROM employees;
5) Modifique la consulta del archivo lab_05_04.sql para mostrar el valor mnimo,
el valor mximo, la suma y la media del salario de cada tipo de cargo. Vuelva a
guardar lab_05_04.sql como lab_05_05.sql. Ejecute la sentencia en el
archivo lab_05_05.sql.
SELECT job_id, ROUND(MAX(salary),0) "Maximum",
ROUND(MIN(salary),0) "Minimum",
ROUND(SUM(salary),0) "Sum",
ROUND(AVG(salary),0) "Average"
FROM employees
GROUP BY job_id;
6) Escriba una consulta para mostrar el nmero de personas con el mismo cargo.
SELECT job_id, COUNT(*)
FROM employees
GROUP BY job_id;
Generalice la consulta para preguntar al usuario del departamento de recursos
humanos cul es su puesto. Guarde el script en un archivo denominado
lab_05_06.sql. Ejecute la consulta. Introduzca IT_PROG cuando se le solicite y
haga clic en OK.
SELECT job_id, COUNT(*)
FROM employees
WHERE job_id = '&job_title'
GROUP BY job_id;
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-48
Prcticas de la Leccin 6
Esta prctica est destinada a proporcionarle experiencia en la extraccin de datos desde
ms de una tabla utilizando uniones compatibles con SQL:1999.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-49
Prctica 6-1: Visualizacin de Datos de Varias Tablas Utilizando
Uniones
1) Escriba una consulta para que el departamento de recursos humanos genere las
direcciones de todos los departamentos. Utilice las tablas LOCATIONS y COUNTRIES.
Muestre el ID de ubicacin, direccin, ciudad, estado o provincia y pas en la salida.
Utilice NATURAL JOIN para producir los resultados.
2) El departamento de recursos humanos necesita un informe slo de los empleados con
los departamentos correspondientes. Escriba una consulta para mostrar el apellido,
nmero y nombre de departamento de estos empleados.
3) El departamento de recursos humanos necesita un informe de todos los empleados de
Toronto. Muestre el apellido, cargo, nmero y nombre de departamento de todos los
empleados que trabajan en Toronto.
4) Cree un informe para mostrar el apellido y nmero de empleado junto con el apellido
y nmero de gestor del empleado. Etiquete las columnas como Employee, Emp#,
Manager y Mgr#, respectivamente. Guarde la sentencia SQL como
lab_06_04.sql. Ejecute la consulta.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-52
Soluciones a la Prctica 6-1: Visualizacin de Datos de Varias
Tablas Utilizando Uniones
1) Escriba una consulta para que el departamento de recursos humanos genere las
direcciones de todos los departamentos. Utilice las tablas LOCATIONS y COUNTRIES.
Muestre el ID de ubicacin, direccin, ciudad, estado o provincia y pas en la salida.
Utilice NATURAL JOIN para producir los resultados.
SELECT location_id, street_address, city, state_province,
country_name
FROM locations
NATURAL JOIN countries;
2) El departamento de recursos humanos necesita un informe de todos los empleados.
Escriba una consulta para mostrar el apellido, nmero y nombre de departamento de
todos los empleados.
SELECT last_name, department_id, department_name
FROM employees
JOIN departments
USING (department_id);
3) El departamento de recursos humanos necesita un informe de todos los empleados de
Toronto. Muestre el apellido, cargo, nmero y nombre de departamento de todos los
empleados que trabajan en Toronto.
SELECT e.last_name, e.job_id, e.department_id,
d.department_name
FROM employees e JOIN departments d
ON (e.department_id = d.department_id)
JOIN locations l
ON (d.location_id = l.location_id)
WHERE LOWER(l.city) = 'toronto';
4) Cree un informe para mostrar el apellido y nmero de empleado junto con el apellido
y nmero de gestor de sus gestores. Etiquete las columnas como Employee, Emp#,
Manager y Mgr#, respectivamente. Guarde la sentencia SQL como
lab_06_04.sql. Ejecute la consulta.
SELECT w.last_name "Employee", w.employee_id "EMP#",
m.last_name "Manager", m.employee_id "Mgr#"
FROM employees w join employees m
ON (w.manager_id = m.employee_id);
5) Modifique lab_06_04.sql para mostrar todos los empleados, incluido King, que no
tienen gestor. Ordene los resultados por nmero de empleado. Guarde la sentencia
SQL como lab_06_05.sql. Ejecute la consulta en el archivo lab_06_05.sql.
SELECT w.last_name "Employee", w.employee_id "EMP#",
m.last_name "Manager", m.employee_id "Mgr#"
FROM employees w
LEFT OUTER JOIN employees m
ON (w.manager_id = m.employee_id)
ORDER BY 2;
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-54
Prcticas de la Leccin 7
En esta prctica escribir consultas complejas utilizando sentencias SELECT anidadas.
Para las preguntas de la prctica, puede crear la consulta interna primero. Antes de
codificar la consulta externa, asegrese de que la consulta interna se ejecuta y produce los
datos que anticipe.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-55
Prctica 7-1: Uso de Subconsultas para Solucionar Consultas
1) El departamento de recursos humanos necesita una consulta que solicite al usuario el
apellido de un empleado. A continuacin, la consulta muestra el apellido y la fecha de
contratacin de cualquier empleado en el mismo departamento del empleado cuyo
nombre se proporciona (excepto ese empleado). Por ejemplo, si el usuario introduce
Zlotkey, se buscarn todos los empleados que trabajen con Zlotkey (excepto Zlotkey).
2) Cree un informe que muestre el nmero de empleado, apellido y salario de todos los
empleados que ganan ms del salario medio. Ordene los resultados en orden
ascendente de salario.
3) Escriba una consulta que muestre el nmero de empleado y el apellido de todos los
empleados que trabajan en un departamento con un empleado cuyo apellido contiene
una "u". Guarde la sentencia SQL en un archivo denominado lab_07_03.sql.
Ejecute la consulta.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-57
Soluciones a la Prctica 7-1: Uso de Subconsultas para
Solucionar Consultas
1) El departamento de recursos humanos necesita una consulta que solicite al usuario el
apellido de un empleado. A continuacin, la consulta muestra el apellido y la fecha de
contratacin de cualquier empleado en el mismo departamento del empleado cuyo
nombre se proporciona (excepto ese empleado). Por ejemplo, si el usuario introduce
Zlotkey, se buscarn todos los empleados que trabajen con Zlotkey (excepto
Zlotkey).
UNDEFINE Enter_name
SELECT last_name, hire_date
FROM employees
WHERE department_id = (SELECT department_id
FROM employees
WHERE last_name = '&&Enter_name')
AND last_name <> '&Enter_name';
2) Cree un informe que muestre el nmero de empleado, apellido y salario de todos los
empleados que ganan ms del salario medio. Ordene los resultados en orden
ascendente de salario.
SELECT employee_id, last_name, salary
FROM employees
WHERE salary > (SELECT AVG(salary)
FROM employees)
ORDER BY salary;
3) Escriba una consulta que muestre el nmero de empleado y el apellido de todos los
empleados que trabajan en un departamento con un empleado cuyo apellido contiene
una "u". Guarde la sentencia SQL en un archivo denominado lab_07_03.sql.
Ejecute la consulta.
SELECT employee_id, last_name
FROM employees
WHERE department_id IN (SELECT department_id
FROM employees
WHERE last_name like '%u%');
4) El departamento de recursos humanos necesita un informe que muestre el apellido,
nmero de departamento e ID de cargo de todos los empleados cuyo ID de ubicacin
de departamento sea 1700.
SELECT last_name, department_id, job_id
FROM employees
WHERE department_id IN (SELECT department_id
FROM departments
WHERE location_id = 1700);
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-59
Prcticas de la Leccin 8
En esta prctica escribir consultas utilizando los operadores de definicin.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-60
Prctica 8-1: Uso de los Operadores de Definicin
1) El departamento de recursos humanos necesita una lista de ID de departamento que
no contienen el ID de cargo ST_CLERK. Utilice los operadores de definicin para
crear este informe.
2) El departamento de recursos humanos necesita una lista de pases que no tienen
ningn departamento. Muestre el ID de pas y el nombre de los pases. Utilice los
operadores de definicin para crear este informe.
3) Cree una lista de cargos para los departamentos 10, 50 y 20, en ese orden. Muestre los
ID de cargo y departamento mediante los operadores de definicin.
4) Cree un informe que muestre los ID de empleado y de cargo de los empleados que
actualmente tienen un puesto que es el mismo que tenan cuando fueron contratados
(es decir, han cambiado de cargo pero ahora han vuelto a su puesto original).
5) El departamento de recursos humanos necesita un informe con las siguientes
especificaciones:
ID de departamento y apellido de todos los empleados de la tabla EMPLOYEES,
independientemente de si pertenecen o no a un departamento.
El nombre e ID de departamento de todos los departamentos de la tabla
DEPARTMENTS, independientemente de si hay o no empleados trabajando en
dichos departamentos.
Para ello, escriba una consulta compuesta.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-62
Soluciones a la Prctica 8-1: Uso de los Operadores de
Definicin
1) El departamento de recursos humanos necesita una lista de ID de departamento que
no contienen el ID de cargo ST_CLERK. Utilice los operadores de definicin para
crear este informe.
SELECT department_id
FROM departments
MINUS
SELECT department_id
FROM employees
WHERE job_id = 'ST_CLERK'
2) El departamento de recursos humanos necesita una lista de pases que no tienen
ningn departamento. Muestre el ID de pas y el nombre de los pases. Utilice los
operadores de definicin para crear este informe.
SELECT country_id,country_name
FROM countries
MINUS
SELECT l.country_id,c.country_name
FROM locations l JOIN countries c
ON (l.country_id = c.country_id)
JOIN departments d
ON d.location_id=l.location_id;
3) Cree una lista de cargos para los departamentos 10, 50 y 20, en ese orden. Muestre los
ID de cargo y departamento mediante los operadores de definicin.
SELECT distinct job_id, department_id
FROM employees
WHERE department_id = 10
UNION ALL
SELECT DISTINCT job_id, department_id
FROM employees
WHERE department_id = 50
UNION ALL
SELECT DISTINCT job_id, department_id
FROM employees
WHERE department_id = 20
4) Cree un informe que muestre los ID de empleado y de cargo de los empleados que
actualmente tienen un puesto que es el mismo que tenan cuando fueron contratados
(es decir, han cambiado de cargo pero ahora han vuelto a su puesto original).
SELECT employee_id,job_id
FROM employees
INTERSECT
SELECT employee_id,job_id
FROM job_history;
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-64
Prcticas de la Leccin 9
En esta prctica, agregar filas a la tabla MY_EMPLOYEE, actualizar y suprimir datos de
la tabla y controlar las transacciones. Ejecute un script para crear la tabla
MY_EMPLOYEE.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-65
Prctica 9-1: Manipulacin de Datos
El departamento de recursos humanos desea que cree sentencias SQL para insertar,
actualizar y suprimir datos de los empleados. Como prototipo, utilizar la tabla
MY_EMPLOYEE, antes de proporcionar las sentencias al departamento.
Nota: para todas las sentencias DML, utilice el icono Run Script (o pulse [F5]) para ejecutar
la consulta. De esta forma, ve los mensajes de comentarios en la pgina con separadores
Script Output. Para consultas SELECT, siga utilizando el icono Execute Statement o pulse
[F9] para obtener la salida con formato en la pgina con separadores Results.
Inserte los datos en la tabla MY_EMPLOYEE.
1) Ejecute la sentencia en el script lab_09_01.sql para crear la tabla MY_EMPLOYEE
utilizada en esta prctica.
2) Describa la estructura de la tabla MY_EMPLOYEE para identificar los nombres de las
columnas.
3) Cree una sentencia INSERT para agregar la primera fila de datos a la tabla
MY_EMPLOYEE a partir de los siguientes datos de ejemplo. No muestre la lista de
columnas en la clusula INSERT. No introduzca an todas las filas.
1550 aropebur Audrey Ropeburn 5
750 cnewman Chad Newman 4
1100 bbiri Ben Biri 3
860 bdancs Betty Dancs 2
895 rpatel Ralph Patel 1
SALARY USERID FIRST_NAME LAST_NAME ID
1550 aropebur Audrey Ropeburn 5
750 cnewman Chad Newman 4
1100 bbiri Ben Biri 3
860 bdancs Betty Dancs 2
895 rpatel Ralph Patel 1
SALARY USERID FIRST_NAME LAST_NAME ID
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-69
Soluciones a la Prctica 9-1: Manipulacin de Datos
Inserte los datos en la tabla MY_EMPLOYEE.
1) Ejecute la sentencia en el script lab_09_01.sql para crear la tabla MY_EMPLOYEE
utilizada en esta prctica.
a) En el men File, seleccione Open. En el cuadro de dilogo Open, navegue a la
carpeta /home/oracle/labs/sql1/labs y haga doble clic en
lab_09_01.sql.
b) Una vez abierta la sentencia en una hoja de trabajo de SQL, haga clic en el icono
Run Script para ejecutar el script. Aparece un mensaje que indica que la creacin
de la tabla se ha realizado correctamente en la pgina con separadores Script
Output.
2) Describa la estructura de la tabla MY_EMPLOYEE para identificar los nombres de las
columnas.
DESCRIBE my_employee
3) Cree una sentencia INSERT para agregar la primera fila de datos a la tabla
MY_EMPLOYEE a partir de los siguientes datos de ejemplo. No muestre la lista de
columnas en la clusula INSERT.
INSERT INTO my_employee
VALUES (1, 'Patel', 'Ralph', 'rpatel', 895);
4) Rellene la tabla MY_EMPLOYEE con la segunda fila de datos de ejemplo de la lista
anterior. En esta ocasin, muestre explcitamente la lista de columnas en la clusula
INSERT.
INSERT INTO my_employee (id, last_name, first_name,
userid, salary)
1550 aropebur Audrey Ropeburn 5
750 cnewman Chad Newman 4
1100 bbiri Ben Biri 3
860 bdancs Betty Dancs 2
895 rpatel Ralph Patel 1
SALARY USERID FIRST_NAME LAST_NAME ID
1550 aropebur Audrey Ropeburn 5
750 cnewman Chad Newman 4
1100 bbiri Ben Biri 3
860 bdancs Betty Dancs 2
895 rpatel Ralph Patel 1
SALARY USERID FIRST_NAME LAST_NAME ID
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-73
Prcticas de la Leccin 10
Cree nuevas tablas mediante la sentencia CREATE TABLE. Confirme que la nueva tabla
se ha agregado a la base de datos. Tambin aprender a definir el estado de una tabla
como READ ONLY y, a continuacin, revertir a READ/WRITE.
Nota: para todas las sentencias DDL y DML, haga clic en el icono Run Script (o pulse
[F5]) para ejecutar la consulta en SQL Developer. De esta forma, ve los mensajes de
comentarios en la pgina con separadores Script Output. Para consultas SELECT, siga
haciendo clic en el icono Execute Statement o pulse [F9] para obtener la salida con
formato en la pgina con separadores Results.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-74
Prctica 10-1: Uso de Sentencias DDL para Crear y Gestionar
Tablas
1) Cree la tabla DEPT segn el siguiente grfico de instancias de tabla. Guarde la
sentencia en un script denominado lab_10_01.sql y, a continuacin, ejecute el
script para crear la tabla. Confirme que se ha creado la tabla.
2) Rellene la tabla DEPT con datos de la tabla DEPARTMENTS. Incluya slo las columnas
que necesite.
3) Cree la tabla EMP segn el siguiente grfico de instancias de tabla. Guarde la
sentencia en un script denominado lab_10_03.sql y, a continuacin, ejecute el
script para crear la tabla. Confirme que se ha creado la tabla.
Column Name
ID NAME
Key Type
Primary key
Nulls/Unique
FK Table
FK Column
Data type
NUMBER VARCHAR2
Length 7 25
Column Name
ID LAST_NAME FIRST_NAME DEPT_ID
Key Type
Nulls/Unique
FK Table
DEPT
FK Column
ID
Data type
NUMBER VARCHAR2 VARCHAR2 NUMBER
Length 7 25 25 7
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-76
Soluciones a la Prctica 10-1: Uso de Sentencias DDL para Crear
y Gestionar Tablas
1) Cree la tabla DEPT segn el siguiente grfico de instancias de tabla. Guarde la
sentencia en un script denominado lab_10_01.sql y, a continuacin, ejecute el
script para crear la tabla. Confirme que se ha creado la tabla.
CREATE TABLE dept
(id NUMBER(7)CONSTRAINT department_id_pk PRIMARY KEY,
name VARCHAR2(25));
Para confirmar que se ha creado la tabla y visualizar su estructura, ejecute el siguiente
comando:
DESCRIBE dept
2) Rellene la tabla DEPT con datos de la tabla DEPARTMENTS. Incluya slo aquellas
columnas que necesite.
INSERT INTO dept
SELECT department_id, department_name
FROM departments;
3) Cree la tabla EMP segn el siguiente grfico de instancias de tabla. Guarde la
sentencia en un script denominado lab_10_03.sql y, a continuacin, ejecute el
script para crear la tabla. Confirme que se ha creado la tabla.
Column Name
ID NAME
Key Type
Primary key
Nulls/Unique
FK Table
FK Column
Data type
NUMBER VARCHAR2
Length 7 25
Column Name
ID LAST_NAME FIRST_NAME DEPT_ID
Key Type
Nulls/Unique
FK Table
DEPT
FK Column
ID
Data type
NUMBER VARCHAR2 VARCHAR2 NUMBER
Length 7 25 25 7
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-79
Prcticas de la Leccin 11
La Parte 1 de la prctica de esta leccin ofrece varios ejercicios de creacin, uso y
eliminacin de vistas. Complete las preguntas de la 1 a la 6 de esta leccin.
La Parte 2 de la prctica de esta leccin ofrece varios ejercicios de creacin y uso de una
secuencia, un ndice y un sinnimo. Complete las preguntas de la 7 a la 10 de esta
leccin.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-80
Prctica 11-1: Creacin de Otros Objetos de Esquema
Parte 1
1) El personal del departamento de recursos humanos desea ocultar algunos de los datos
de la tabla EMPLOYEES. Cree una vista denominada EMPLOYEES_VU basada en los
nmeros y los apellidos de los empleados y en los nmeros de departamento de la
tabla EMPLOYEES. La cabecera del nombre de empleado debe ser EMPLOYEE.
2) Confirme que la vista funciona. Visualice el contenido de la vista EMPLOYEES_VU.
3) Con la vista EMPLOYEES_VU, escriba una consulta para el departamento de recursos
humanos para visualizar todos los nombres de empleados y nmeros de departamento.
4) El departamento 50 necesita acceso a los datos de los empleados. Cree una vista con
el nombre DEPT50 que contenga los nmeros y apellidos de los empleados y los
nmeros de departamento de todos los empleados del departamento 50. Se le ha
pedido que etiquete las columnas de la vista como EMPNO, EMPLOYEE y DEPTNO. Por
motivos de seguridad, no permita la reasignacin de un empleado a otro departamento
a travs de la vista.
5) Visualice la estructura y el contenido de la vista DEPT50.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-82
Soluciones a la Prctica 11-1: Creacin de Otros Objetos de
Esquema
Parte 1
1) El personal del departamento de recursos humanos desea ocultar algunos de los datos
de la tabla EMPLOYEES. Cree una vista denominada EMPLOYEES_VU basada en los
nmeros y los apellidos de los empleados y en los nmeros de departamento de la
tabla EMPLOYEES. La cabecera del nombre de empleado debe ser EMPLOYEE.
CREATE OR REPLACE VIEW employees_vu AS
SELECT employee_id, last_name employee, department_id
FROM employees;
2) Confirme que la vista funciona. Visualice el contenido de la vista EMPLOYEES_VU.
SELECT *
FROM employees_vu;
3) Con la vista EMPLOYEES_VU, escriba una consulta para el departamento de recursos
humanos para visualizar todos los nombres de empleados y nmeros de
departamento.
SELECT employee, department_id
FROM employees_vu;
4) El departamento 50 necesita acceso a los datos de los empleados. Cree una vista con
el nombre DEPT50 que contenga los nmeros y apellidos de los empleados y los
nmeros de departamento de todos los empleados del departamento 50. Se le ha
solicitado que etiquete las columnas de la vista como EMPNO, EMPLOYEE y DEPTNO.
Por motivos de seguridad, no permita la reasignacin de un empleado a otro
departamento a travs de la vista.
CREATE VIEW dept50 AS
SELECT employee_id empno, last_name employee,
department_id deptno
FROM employees
WHERE department_id = 50
WITH CHECK OPTION CONSTRAINT emp_dept_50;
5) Visualice la estructura y el contenido de la vista DEPT50.
DESCRIBE dept50
SELECT *
FROM dept50;
6) Pruebe la vista. Intente reasignar Matos al departamento 80.
UPDATE dept50
SET deptno = 80
WHERE employee = 'Matos';
El error se debe a que la vista DEPT50 se ha creado con la restriccin WITH CHECK
OPTION. De esta forma, se garantiza que la columna DEPTNO de la vista est
protegida contra cambios.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-84
Prcticas del Apndice F
Esta prctica est destinada a proporcionarle experiencia prctica en la extraccin de
datos desde ms de una tabla utilizando sintaxis de unin en Oracle.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-85
Prctica F-1: Sintaxis de Unin en Oracle
1) Escriba una consulta para que el departamento de recursos humanos genere las
direcciones de todos los departamentos. Utilice las tablas LOCATIONS y COUNTRIES.
Muestre el ID de ubicacin, direccin, ciudad, estado o provincia y pas en la salida.
Ejecute la consulta.
2) El departamento de recursos humanos necesita un informe de todos los empleados.
Escriba una consulta para mostrar el apellido, nmero y nombre de departamento de
todos los empleados. Ejecute la consulta.
3) El departamento de recursos humanos necesita un informe de todos los empleados de
Toronto. Muestre el apellido, cargo, nmero y nombre de departamento de todos los
empleados que trabajan en Toronto.
4) Cree un informe para mostrar el apellido y nmero de empleado junto con el apellido
y nmero de gestor de sus gestores. Etiquete las columnas como Employee, Emp#,
Manager y Mgr#, respectivamente. Guarde la sentencia SQL como lab_f_04.sql.
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
Oracle Database: Conceptos Fundamentales de SQL I A-88
Soluciones a las Prcticas F-1: Sintaxis de Unin en Oracle
1) Escriba una consulta para que el departamento de recursos humanos genere las
direcciones de todos los departamentos. Utilice las tablas LOCATIONS y COUNTRIES.
Muestre el ID de ubicacin, direccin, ciudad, estado o provincia y pas en la salida.
Ejecute la consulta.
SELECT location_id, street_address, city, state_province,
country_name
FROM locations, countries
WHERE locations.country_id = countries.country_id;
2) El departamento de recursos humanos necesita un informe de todos los empleados.
Escriba una consulta para mostrar el apellido, nmero y nombre de departamento de
todos los empleados. Ejecute la consulta.
SELECT e.last_name, e.department_id, d.department_name
FROM employees e, departments d
WHERE e.department_id = d.department_id;
3) El departamento de recursos humanos necesita un informe de todos los empleados de
Toronto. Muestre el apellido, cargo, nmero y nombre de departamento de todos los
empleados que trabajan en Toronto.
SELECT e.last_name, e.job_id, e.department_id,
d.department_name
FROM employees e, departments d , locations l
WHERE e.department_id = d.department_id
AND d.location_id = l.location_id
AND LOWER(l.city) = 'toronto';
4) Cree un informe para mostrar el apellido y nmero de empleado junto con el apellido
del gestor del empleado y el nmero de gestor. Etiquete las columnas como
Employee, Emp#, Manager y Mgr#, respectivamente. Guarde la sentencia SQL
como lab_f_04.sql.
SELECT w.last_name "Employee", w.employee_id "EMP#",
m.last_name "Manager", m.employee_id "Mgr#"
FROM employees w , employees m
WHERE w.manager_id = m.employee_id;
5) Modifique lab_f_04.sql para mostrar todos los empleados, incluido King, que no
tienen gestor. Ordene los resultados por nmero de empleado. Guarde la sentencia
SQL como lab_f_05.sql. Ejecute la consulta en el archivo lab_f_05.sql.
SELECT w.last_name "Employee", w.employee_id "EMP#",
m.last_name "Manager", m.employee_id "Mgr#"
FROM employees w, employees m
WHERE w.manager_id = m.employee_id (+);
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s
J
u
l
i
o
C
o
r
d
o
b
a
(
j
u
l
i
o
c
t
0
4
@
h
o
t
m
a
i
l
c
o
m
)
h
a
s
a
n
o
n
-
t
r
a
n
s
f
e
r
a
b
l
e
l
i
c
e
n
s
e
t
o
u
s
e
t
h
i
s
S
t
u
d
e
n
t
G
u
i
d
e
U
n
a
u
t
h
o
r
i
z
e
d
r
e
p
r
o
d
u
c
t
i
o
n
o
r
d
i
s
t
r
i
b
u
t
i
o
n
p
r
o
h
i
b
i
t
e
d
C
o
p
y
r
i
g
h
t
2
0
1
1
,
O
r
a
c
l
e
a
n
d
/
o
r
i
t
s
a
f
f
i
l
i
a
t
e
s