Beruflich Dokumente
Kultur Dokumente
Fundamentales de SQL I
Volumen II Gua del Alumno
e
d
a
D64258CS10
Edicin 1.0
Enero de 2010
D73591
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
y
m
c
A
Autores
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Salome Clement
Brian Pottle
Puja Singh
Renuncia
Colaboradores y
Revisores Tcnicos
Anjulaponni Azhagulekshmi
Clair Bennett
Zarko Cesljas
Yanti Chang
Gerlinde Frenzen
Steve Friedberg
Joel Goodman
Nancy Greenberg
Pedro Neves
Manish Pawar
Surya Rekha
Helen Robertson
Lauran Serhal
Hilda Simon
Tulika Srivastava
Redactor
Diseador Grfico
Oracle es una marca comercial registrada de Oracle Corporation y/o sus filiales.
Todos los dems nombres pueden ser marcas comerciales de sus respectivos
propietarios.
e
d
a
Rajiv Chandrabhanu
Publicador
Jobi Varghese
a
r
O
e
l
c
y
m
Amitha Narayan
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
Contenido
Introduccin
Objetivos I-2
Agenda I-3
Objetivos del Curso I-4
Agenda I-5
Apndices Utilizados en el Curso I-7
Agenda I-8
Oracle Database 11g: reas de Atencin I-9
Oracle Database 11g I-10
Oracle Fusion Middleware I-12
Oracle Enterprise Manager Grid Control I-13
Oracle BI Publisher I-14
Agenda I-15
Sistema de Gestin de Bases de Datos Relacionales y Relacionales de Objetos I-16
Almacenamiento de Datos en Diferentes Medios Fsicos I-17
Concepto de Base de Datos Relacional I-18
Definicin de una Base de Datos Relacional I-19
Modelos de Datos I-20
Modelo de Relacin de Entidades I-21
Convenciones de Modelado de Relacin de Entidades I-23
Relacin de Varias Tablas I-25
Terminologa de Bases de Datos Relacionales I-27
Agenda I-29
Uso de SQL para Consultar Base de Datos I-30
Sentencias SQL I-31
Entornos de Desarrollo para SQL I-32
Agenda I-33
Esquema Human Resources(HR) I-34
Tablas Utilizadas en el Curso I-35
Agenda I-36
Documentacin de Oracle Database I-37
Recursos Adicionales I-38
Resumen I-39
Prctica I: Visin General I-40
y
m
e
d
a
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
iii
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
a
r
O
iv
y
m
c
A
e
d
a
e
d
a
a
r
O
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
y
m
Agenda 3-15
Funciones Numricas 3-16
Uso de la Funcin ROUND 3-17
Uso de la Funcin TRUNC 3-18
Uso de la Funcin MOD 3-19
Agenda 3-20
Trabajo con Fechas 3-21
Formato de Fecha RR 3-22
Uso de la Funcin SYSDATE 3-24
Operadores Aritmticos con Fechas 3-25
Uso de Operadores Aritmticos con Fechas 3-26
Agenda 3-27
Funciones de Manipulacin de Fecha 3-28
Uso de las Funciones de Fecha 3-29
Uso de las Funciones ROUND y TRUNC con Fechas 3-30
Prueba 3-31
Resumen 3-32
Prctica 3: Visin General 3-33
4
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
e
l
c
a
r
O
vi
y
m
y
m
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
e
l
c
vii
e
d
a
y
m
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
a
r
O
viii
c
A
y
m
e
l
c
a
r
O
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
ix
c
A
e
d
a
Manipulacin de Datos
Objetivos 9-2
Agenda 9-3
Lenguaje de Manipulacin de Datos 9-4
Adicin de una Nueva Fila a una Tabla 9-5
Sintaxis de las Sentencias INSERT 9-6
Insercin de Filas 9-7
Insercin de Filas con Valores Nulos 9-8
Insercin de Valores Especiales 9-9
Insercin de Valores de Fecha y Hora Especficos 9-10
Creacin de un Script 9-11
Copia de Filas de Otra Tabla 9-12
Agenda 9-13
Cambio de Datos en la Tabla 9-14
Sintaxis de Sentencias UPDATE 9-15
Actualizacin de Filas en una Tabla 9-16
Actualizacin de Dos Columnas con una Subconsulta 9-17
Actualizacin de Filas Basada en Otra Tabla 9-18
Agenda 9-19
Eliminacin de Filas de Tablas 9-20
Sentencia DELETE 9-21
Supresin de Filas de Tablas 9-22
Supresin de Filas Basada en Otra Tabla 9-23
Sentencia TRUNCATE 9-24
Agenda 9-25
Transacciones de Base de Datos 9-26
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
c
A
e
d
a
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
xi
y
m
c
A
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
xii
y
m
c
A
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
xiii
c
A
e
d
a
y
m
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
a
r
O
xiv
c
A
y
m
e
d
a
ndice
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
xv
c
A
y
m
e
d
a
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
Apndice A
Prcticas y Soluciones
y
m
e
d
a
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
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
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
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
y
m
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.
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e) Port: 1521
f) SID: ORCL
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
y
m
e
d
a
c) Password: ora1
d) Hostname: localhost
e) Port: 1521
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
f) SID: ORCL
c
A
e
l
c
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
Al crear una conexin, automticamente se abre una hoja de trabajo de SQL para
dicha conexin.
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
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.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
Verdadero/Falso
2) La siguiente sentencia SELECT se ejecuta correctamente:
SELECT *
FROM
job_grades;
Verdadero/Falso
y
m
Parte 2
employee_id, last_name
ANNUAL SALARY
employees;
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
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].
e
l
c
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
7) El departamento de recursos humanos desea una consulta para mostrar todos los ID
de cargo nicos de la tabla EMPLOYEES.
y
m
e
d
a
Parte 3
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
y
m
e
d
a
10) Para familiarizarse con los datos de la tabla EMPLOYEES, cree una consulta para
mostrar todos los datos de dicha tabla. Separe cada salida de la columna por una
coma. Asigne a la columna el ttulo THE_OUTPUT.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
Verdadero/Falso
2) La siguiente sentencia SELECT se ejecuta correctamente:
SELECT *
FROM
job_grades;
Verdadero/Falso
y
m
employee_id, last_name
ANNUAL SALARY
employees;
e
d
a
c
A
Parte 2
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
ra
DESCRIBE departments
7) El departamento de recursos humanos desea una consulta para mostrar todos los ID
de cargo nicos de la tabla EMPLOYEES.
SELECT DISTINCT job_id
FROM
employees;
Parte 3
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
y
m
e
d
a
c
A
e
l
c
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
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.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
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.
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
8) Cree un informe para mostrar el apellido y el puesto de todos los empleados que no
tienen un supervisor.
9) Cree un informe para mostrar el apellido, salario y comisin de todos los empleados que
perciben comisiones. Ordene los datos en orden descendente de salario y comisiones.
Utilice la posicin numrica de la columna en la clusula ORDER BY.
e
l
c
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
12) Muestre todos los apellidos de los empleados cuya tercera letra sea una "a".
e
l
c
a
r
O
e
d
a
y
m
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
last_name, salary
employees
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
FROM
WHERE
last_name, department_id
employees
employee_id = 176;
y
m
last_name, salary
employees
salary NOT BETWEEN 5000 AND 12000;
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
SELECT
FROM
WHERE
AND
a
r
O
last_name, hire_date
employees
hire_date LIKE '%94';
8) Cree un informe para mostrar el apellido y el puesto de todos los empleados que no
tienen un supervisor.
SELECT
FROM
WHERE
last_name, job_id
employees
manager_id IS NULL;
9) Cree un informe para mostrar el apellido, salario y comisin de todos los empleados
que perciben comisiones. Ordene los datos en orden descendente de salario y
comisiones. Utilice la posicin numrica de la columna en la clusula ORDER BY.
SELECT
FROM
WHERE
ORDER BY
y
m
10) Los miembros del departamento de recursos humanos desean tener ms flexibilidad
con las consultas que est creando. Les gustara tener un informe que muestre el
apellido y el salario de los empleados que ganen ms de una cantidad especificada por
el usuario despus de una solicitud. (Puede utilizar la consulta creada en el ejercicio
prctico 1 y modificarla). Guarde esta consulta en un archivo denominado
lab_02_10.sql.
e
d
a
SELECT
FROM
WHERE
last_name, salary
employees
salary > &sal_amt;
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
last_name
employees
last_name LIKE '__a%';
13) Muestre los apellidos de los empleados que tengan una "a" y una "e" en su apellido.
SELECT
FROM
WHERE
AND
last_name
employees
last_name LIKE '%a%'
last_name LIKE '%e%';
y
m
e
d
a
14) Muestre el apellido, cargo y salario de todos los empleados que sean vendedores u
oficinistas en el departamento de stock y cuyo salario no sea igual que 2.500, 3.500 o
7.000 dlares.
SELECT
FROM
WHERE
AND
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
FROM
WHERE
e
l
c
a
r
O
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.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
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".
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
Nota: debido a que esta consulta depende de la fecha de ejecucin, los valores de la
columna MONTHS_WORKED sern diferentes.
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
8) Cree una consulta que muestre los primeros ocho caracteres de los apellidos de los
empleados y que indique las cantidades de sus salarios con asteriscos. Cada asterisco
significa mil dlares. Ordene los datos en orden descendente de salarios. Etiquete la
columna como EMPLOYEES_AND_THEIR_SALARIES.
e
l
c
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
sysdate "Date"
dual;
FROM
FROM
e
d
a
c
A
FROM
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
y
m
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 ;
e
l
c
a
r
O
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".
Oracle Database: Conceptos Fundamentales de SQL I A-32
INITCAP(last_name) "Name",
LENGTH(last_name) "Length"
FROM
employees
WHERE
last_name LIKE '&start_letter%'
ORDER BY last_name;
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
y
m
e
d
a
c
A
7) Cree una consulta para mostrar el apellido y el salario de todos los empleados.
Formatee el salario para que tenga 15 caracteres de longitud y tenga un relleno hacia
la izquierda con el smbolo $. Etiquete la columna como SALARY.
SELECT last_name,
LPAD(salary, 15, '$') SALARY
FROM
employees;
8) Cree una consulta que muestre los primeros ocho caracteres de los apellidos de los
empleados y que indique las cantidades de sus salarios con asteriscos. Cada asterisco
significa mil dlares. Ordene los datos en orden descendente de salarios. Etiquete la
columna como EMPLOYEES_AND_THEIR_SALARIES.
e
l
c
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
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.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
ra
Grado
AD_PRES
ST_MAN
IT_PROG
SA_REP
ST_CLERK
None of the above
A
B
C
D
E
0
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
y
m
c
A
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
FROM
y
m
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
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
e
l
c
AD_PRES
ST_MAN
IT_PROG
SA_REP
ST_CLERK
None of the above
a
r
O
A
B
C
D
E
0
'E',
'D',
'C',
'B',
'A',
job_id
'ST_CLERK' THEN
'SA_REP'
THEN
'IT_PROG' THEN
'ST_MAN'
THEN
'AD_PRES' THEN
'0' END GRADE
'E'
'D'
'C'
'B'
'A'
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
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.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
9) Cree un informe para mostrar el nmero de gestor y el salario del empleado con
menor sueldo de ese gestor. Excluya a cualquier trabajador del que desconozca su
gestor. Excluya cualquier grupo en el que el salario mnimo sea 6.000 dlares o
menos. Ordene la salida en orden descendente de salarios.
e
l
c
a
r
O
11) Cree una consulta de matriz para mostrar el cargo, el salario de ese cargo segn el
nmero de departamento y el salario total del cargo para los departamentos 20, 50, 80
y 90, proporcionando a cada columna una cabecera adecuada.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
"Maximum",
"Minimum",
"Sum",
"Average"
y
m
e
d
a
"Maximum",
"Minimum",
"Sum",
"Average"
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
6) Escriba una consulta para mostrar el nmero de personas con el mismo cargo.
SELECT job_id, COUNT(*)
FROM
employees
GROUP BY job_id;
e
l
c
a
r
O
manager_id, MIN(salary)
employees
manager_id IS NOT NULL
manager_id
MIN(salary) > 6000
MIN(salary) DESC;
y
m
e
d
a
c
A
10) Cree una consulta que muestre el nmero total de empleados y, de ese total, el
nmero de empleados contratados en 1995, 1996, 1997 y 1998. Cree las cabeceras de
columna adecuadas.
SELECT
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
COUNT(*) total,
SUM(DECODE(TO_CHAR(hire_date,
'YYYY'),1995,1,0))"1995",
SUM(DECODE(TO_CHAR(hire_date,
'YYYY'),1996,1,0))"1996",
SUM(DECODE(TO_CHAR(hire_date,
'YYYY'),1997,1,0))"1997",
SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1998,1,0))"1998"
FROM
employees;
e
l
c
a
r
O
job_id "Job",
SUM(DECODE(department_id
SUM(DECODE(department_id
SUM(DECODE(department_id
SUM(DECODE(department_id
SUM(salary) "Total"
FROM
employees
GROUP BY job_id;
,
,
,
,
20,
50,
80,
90,
salary))
salary))
salary))
salary))
"Dept
"Dept
"Dept
"Dept
20",
50",
80",
90",
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
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.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
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.
e
l
c
a
r
O
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.
6) Cree un informe del departamento de recursos humanos que muestre los apellidos y
nmeros de empleado y todos los empleados que trabajen en el mismo departamento
como un empleado determinado. Proporcione a cada columna una etiqueta adecuada.
Guarde el script en un archivo denominado lab_06_06.sql.
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
y
m
e
d
a
c
A
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.
e
l
c
a
r
O
y
m
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e.last_name, e.hire_date
employees e JOIN employees davies
(davies.last_name = 'Davies')
davies.hire_date < e.hire_date;
e
l
c
a
r
O
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.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
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.
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
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.
e
l
c
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
7) Cree un informe que muestre una lista de todos los empleados cuyo salario sea mayor
que el salario de los empleados del departamento 60.
Si tiene tiempo, realice el siguiente ejercicio:
e
l
c
a
r
O
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.
y
m
e
d
a
c
A
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.
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
a
r
O
y
m
e
d
a
7) Cree un informe que muestre una lista de todos los empleados cuyo salario sea mayor
que el salario de los empleados del departamento 60.
SELECT last_name FROM employees
WHERE salary > ANY (SELECT salary
FROM employees
WHERE department_id=60);
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
Prcticas de la Leccin 8
En esta prctica escribir consultas utilizando los operadores de definicin.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
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.
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
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).
e
l
c
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
department_id
departments
department_id
employees
job_id = 'ST_CLERK'
y
m
e
d
a
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
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
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;
e
l
c
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
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.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
c
A
ID
LAST_NAME
FIRST_NAME
USERID
Patel
Ralph
rpatel
895
Dancs
Betty
bdancs
860
Biri
Ben
bbiri
1100
Newman
Chad
cnewman
750
Ropeburn
Audrey
aropebur
1550
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
SALARY
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.
a
r
O
6) Escriba una sentencia INSERT en un archivo de script reutilizable para cargar las
filas restantes en la tabla MY_EMPLOYEE. El script se debe solicitar para todas las
columnas (ID, LAST_NAME, FIRST_NAME, USERID y SALARY). Guarde este script en
un archivo lab_09_06.sql.
7) Rellene la tabla con las dos siguientes filas de ejemplo mostradas en el paso 3
mediante la ejecucin de la sentencia INSERT en el script que ha creado.
8) Confirme las adiciones a la tabla.
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
11) Cambie el salario a 1.000 dlares para todos los empleados con un salario inferior a
900.
12) Verifique los cambios en la tabla.
e
l
c
a
r
O
y
m
e
d
a
21) Deseche la operacin DELETE ms reciente sin desechar la operacin INSERT anterior.
22) Confirme que la nueva fila est intacta.
c
A
ID
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
LAST_NAME
FIRST_NAME
USERID
SALARY
Anthony
Mark
manthony
1230
a
r
O
e
l
c
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
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.
ID
LAST_NAME
FIRST_NAME
USERID
Patel
Ralph
rpatel
Dancs
Betty
bdancs
Biri
Ben
bbiri
1100
Newman
Chad
cnewman
750
Ropeburn
Audrey
aropebur
1550
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
SALARY
c
A
e
d
a
895
860
e
l
c
y
m
a
r
O
*
my_employee;
6) Escriba una sentencia INSERT en un archivo de script reutilizable para cargar las
filas restantes en la tabla MY_EMPLOYEE. El script se debe solicitar para todas las
columnas (ID, LAST_NAME, FIRST_NAME, USERID y SALARY). Guarde este script en
un archivo denominado lab_09_06.sql.
INSERT INTO my_employee
VALUES (&p_id, '&p_last_name', '&p_first_name',
'&p_userid', &p_salary);
7) Rellene la tabla con las dos siguientes filas de ejemplo mostradas en el paso 3
mediante la ejecucin de la sentencia INSERT en el script que ha creado.
INSERT INTO my_employee
VALUES (&p_id, '&p_last_name', '&p_first_name',
'&p_userid', &p_salary);
y
m
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
my_employee
last_name = 'Drexler'
id = 3;
11) Cambie el salario a 1.000 dlares para todos los empleados con un salario inferior a 900.
UPDATE
SET
WHERE
my_employee
salary = 1000
salary < 900;
e
l
c
SELECT
FROM
a
r
O
*
my_employee;
*
my_employee;
*
my_employee;
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
SELECT *
FROM
my_employee;
e
l
c
y
m
a
r
O
LAST_NAME
FIRST_NAME
USERID
SALARY
Anthony
Mark
manthony
1230
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
y
m
c
A
a
r
O
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.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
ID
NAME
Key Type
Primary key
Nulls/Unique
FK Table
FK Column
Data type
NUMBER
VARCHAR2
Length
25
y
m
e
d
a
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.
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
Column Name ID
Key Type
LAST_NAME
c
A
FIRST_NAME
DEPT_ID
Nulls/Unique
FK Table
FK Column
Data type
Length
e
l
c
DEPT
ID
NUMBER
VARCHAR2
VARCHAR2
NUMBER
25
25
a
r
O
FIRST_NAME
LAST_NAME
SALARY
DEPT_ID
34
Grant
Marcie
5678
10
y
m
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
a
r
O
ID
NAME
Key Type
Primary key
Nulls/Unique
FK Table
FK Column
Data type
NUMBER
VARCHAR2
Length
25
y
m
e
d
a
DESCRIBE dept
c
A
2) Rellene la tabla DEPT con datos de la tabla DEPARTMENTS. Incluya slo aquellas
columnas que necesite.
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
LAST_NAME
FIRST_NAME
DEPT_ID
Nulls/Unique
FK Table
e
l
c
FK Column
a
r
O
DEPT
ID
Data type
NUMBER
VARCHAR2
VARCHAR2
NUMBER
Length
25
25
e
d
a
c
A
ID
FIRST_NAME
LAST_NAME
SALARY
DEPT_ID
34
Grant
Marcie
5678
10
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
y
m
Aparecer el mensaje de error Update operation not allowed on table. Por lo tanto,
no se le permitir insertar ninguna fila en la tabla porque se ha asignado un estado de
slo lectura.
INSERT INTO employees2
VALUES (34, 'Grant','Marcie',5678,10)
e
l
c
ra
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
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.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
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.
e
l
c
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
*
employees_vu;
employee, department_id
employees_vu;
y
m
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.
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
*
dept50;
e
l
c
ra
dept50
deptno = 80
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.
8) Para probar la secuencia, escriba un script para insertar dos filas en la tabla DEPT.
Asigne al script el nombre lab_11_08.sql. Asegrese de utilizar la secuencia que
ha creado para la columna ID. Agregue dos departamentos: Education y
Administration. Confirme las adiciones. Ejecute los comandos del script.
INSERT INTO dept
VALUES (dept_id_seq.nextval, 'Education');
INSERT INTO dept
VALUES (dept_id_seq.nextval, 'Administration');
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
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.
e
l
c
ra
6) Cree un informe del departamento de recursos humanos que muestre los apellidos y
nmeros de empleado y todos los empleados que trabajen en el mismo departamento
como un empleado determinado. Proporcione a cada columna una etiqueta adecuada.
Guarde el script en un archivo denominado lab_f_06.sql.
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
l
c
a
r
O
y
m
e
d
a
c
A
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.
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
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 (+);
e
l
c
a
r
O
y
m
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e.last_name, e.hire_date
employees e , employees davies
davies.last_name = 'Davies'
davies.hire_date < e.hire_date;
a
r
O
e
l
c
y
m
e
d
a
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
Apndice AP
Prcticas y Soluciones adicionales
y
m
e
d
a
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
Tabla de Contenido
Prcticas Adicionales .......................................................................................................... 3
Prctica 1-1 ..................................................................................................................... 4
Soluciones a la Prctica 1-1 .......................................................................................... 12
Caso Prctico .................................................................................................................... 17
Prctica 2-1 ................................................................................................................... 19
Soluciones a la Prctica 2-1 .......................................................................................... 27
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
Prcticas Adicionales
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
Prctica 1-1
Estos ejercicios se pueden utilizar como prctica adicional despus de tratar los siguientes
temas: sentencia SQL SELECT bsica, comandos de SQL Developer bsicos y funciones
SQL.
1) El departamento de recursos humanos necesita obtener los datos de todos los
oficinistas que se contrataron despus del ao 1997.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
5) Muestre los empleados cuyo apellido empiece por las letras "J", "K", "L" o "M".
e
l
c
a
r
O
y
m
e
d
a
c
A
Estos ejercicios se pueden utilizar como prctica adicional despus de tratar los siguientes
temas: sentencia SQL SELECT bsica, comandos de SQL Developer bsicos, funciones
SQL, uniones y funciones de grupo.
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
8) Busque el nmero de empleados cuyo apellido termine con la letra "n". Cree dos
soluciones posibles.
e
l
c
a
r
O
11) Cree un informe que muestre los cargos de los departamentos Administration y
Executive. Muestre tambin el nmero de empleados de dichos cargos. Muestre el
cargo con el mayor nmero de empleados en primer lugar.
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
Estos ejercicios se pueden utilizar como prctica adicional despus de tratar los siguientes
temas: sentencias SQL SELECT bsicas, comandos de SQL Developer bsicos, funciones
SQL, uniones, funciones de grupo y subconsultas.
12) Muestre todos los empleados que se hayan contratado en la primera mitad del mes
(antes del 16 del mes).
e
l
c
a
r
O
y
m
e
d
a
c
A
14) Muestre todos los empleados cuyo gestor tenga un salario superior a 15.000 dlares.
Muestre los siguientes datos: nombre del empleado, nombre del gestor, salario del
gestor y grado de salario del gestor.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
16) Cree un informe que muestre el nmero de departamento y el salario ms bajo del
departamento con el salario medio ms alto.
y
m
e
d
a
c
A
17) Cree un informe que muestre los departamentos en los que no haya ningn vendedor.
Incluya el nmero y nombre de departamento, as como el ID de gestor y la ubicacin
en la salida.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
e
d
a
y
m
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
21) Cree una visin general de los aniversarios segn la fecha de contratacin de los
empleados. Ordene los aniversarios en orden ascendente.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
5) Muestre los empleados cuyo apellido empiece por las letras "J", "K", "L" o "M".
e
l
c
SELECT last_name
FROM
employees
WHERE SUBSTR(last_name, 1,1) IN ('J', 'K', 'L', 'M');
a
r
O
Estos ejercicios se pueden utilizar como prctica adicional despus de tratar los siguientes
temas: sentencia SQL SELECT bsica, comandos de SQL Developer bsicos, funciones
SQL, uniones y funciones de grupo.
7) Cree un informe que muestre el nombre de departamento, el ID de ubicacin, el
nombre, el cargo y el salario de los empleados que trabajan en una ubicacin
concreta. Solicite al usuario la ubicacin.
a) Introduzca 1800 para location_id cuando se le solicite.
SELECT d.department_name, d.location_id, e.last_name,
e.job_id, e.salary
FROM
employees e, departments d
WHERE
e.department_id = d.department_id
AND
d.location_id = &location_id;
8) Busque el nmero de empleados cuyo apellido termine con la letra "n". Cree dos
soluciones posibles.
SELECT
FROM
WHERE
--or
SELECT
FROM
WHERE
COUNT(*)
employees
last_name LIKE '%n';
COUNT(*)
employees
SUBSTR(last_name, -1) = 'n';
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
e
l
c
y
m
a
r
O
Estos ejercicios se pueden utilizar como prctica adicional despus de tratar los siguientes
temas: sentencias SQL SELECT bsicas, comandos de SQL Developer bsicos, funciones
SQL, uniones, funciones de grupo y subconsultas.
12) Muestre todos los empleados que se hayan contratado en la primera mitad del mes
(antes del 16 del mes).
SELECT last_name, hire_date
FROM
employees
WHERE TO_CHAR(hire_date, 'DD') < 16;
y
m
13) Cree un informe que muestre lo siguiente para todos los empleados: apellido, salario
y salario expresado en trminos de miles de dlares.
SELECT last_name, salary, TRUNC(salary, -3)/1000
FROM
employees;
e
d
a
Thousands
c
A
14) Muestre todos los empleados cuyo gestor tenga un salario superior a 15.000 dlares.
Muestre los siguientes datos: nombre del empleado, nombre del gestor, salario del
gestor y grado de salario del gestor.
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
a
r
O
d.department_id, d.department_name,
count(e1.employee_id) employees,
NVL(TO_CHAR(AVG(e1.salary), '99999.99'), 'No average'
) avg_sal,
e2.last_name, e2.salary, e2.job_id
FROM
departments d RIGHT OUTER JOIN employees e1
ON
d.department_id = e1.department_id
RIGHT OUTER JOIN employees e2
ON
d.department_id = e2.department_id
GROUP BY d.department_id, d.department_name, e2.last_name,
e2.salary,
e2.job_id
ORDER BY d.department_id, employees;
16) Cree un informe que muestre el nmero de departamento y el salario ms bajo del
departamento con el salario medio ms alto.
SELECT department_id, MIN(salary)
FROM
employees
GROUP BY department_id
HAVING AVG(salary) = (SELECT MAX(AVG(salary))
FROM
employees
GROUP BY department_id);
y
m
e
d
a
c
A
17) Cree un informe que muestre los departamentos en los que no haya ningn vendedor.
Incluya el nmero y nombre de departamento, as como la ubicacin, en la salida.
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
SELECT *
FROM
departments
WHERE department_id NOT IN(SELECT department_id
FROM employees
WHERE job_id = 'SA_REP'
AND department_id IS NOT NULL);
18) Cree los siguientes informes estadsticos para el departamento de recursos humanos:
incluya el nmero y nombre de departamento, as como el nmero de empleados que
trabajan en cada departamento que:
a) Contrate menos de tres empleados:
e
l
c
a
r
O
e
d
a
y
m
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
20) Muestre todos los empleados que se hayan contratado el da de la semana en que se
contratara el mayor nmero de empleados.
SELECT last_name, TO_CHAR(hire_date, 'DAY') day
FROM
employees
WHERE TO_CHAR(hire_date, 'Day') =
(SELECT TO_CHAR(hire_date, 'Day')
FROM
employees
GROUP BY TO_CHAR(hire_date, 'Day')
HAVING COUNT(*) = (SELECT MAX(COUNT(*))
FROM
employees
GROUP BY TO_CHAR(hire_date,
'Day')));
21) Cree una visin general de los aniversarios segn la fecha de contratacin de los
empleados. Ordene los aniversarios en orden ascendente.
e
l
c
a
r
O
Caso Prctico
En este caso prctico, crear un juego de tablas de base de datos para una aplicacin de
vdeo. Despus de crear las tablas, inserte, actualice y suprima registros de una base de
datos de videoclub y genere un informe. La base de datos slo contiene las tablas
esenciales.
A continuacin, se muestra un diagrama de las entidades y los atributos de una aplicacin
de vdeo:
de
RESERVATION
#* res date
el asunto
de
configurado
para
TITLE
#* id
* title
* description
o rating
o category
o release date
disponible
como
MEMBER
#* id
* last name
o first name
o address
o city
o phone
* join date
y
m
una copia
responsable
de
e
d
a
TITLE_COPY
#* id
* status
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
responsable
de
c
A
el asunto de
realizado en
creado
para
RENTAL
#* book date
o act ret date
o exp ret date
Nota: si desea crear las tablas, puede ejecutar los comandos del script buildtab.sql en
SQL Developer. Si desea borrar las tablas, puede ejecutar los comandos del script
dropvid.sql en SQL Developer. A continuacin, puede ejecutar los comandos del
script buildvid.sql en SQL Developer para crear y rellenar las tablas.
Los tres scripts SQL se encuentran en la carpeta /home/oracle/labs/sql1/labs.
Si utiliza el script buildtab.sql para crear las tablas, empiece en el paso 4.
e
l
c
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
Prctica 2-1
1) Cree las tablas segn el siguiente grfico de instancias de tabla. Seleccione los tipos
de dato adecuados y asegrese de agregar restricciones de integridad.
a) Nombre de la tabla: MEMBER
Column_
Name
MEMBER_
ID
Key
Type
Null/
Unique
Default
Value
PK
Data
Type
Length
NN,U
LAST_
NAME
FIRST_NAME
ADDRESS
CITY
PHONE
JOIN
_
DATE
NN
NN
NUMBER
VARCHAR2
VARCHAR2
VARCHAR2
VARCHAR2
VARCHAR2
System
Date
DATE
10
25
25
100
30
15
TITLE_ID
Key
Type
Null/
Unique
Check
PK
Data Type
NUMBER
VARCHAR2
VARCHAR2
VARCHAR2
DRAMA,
COMEDY,
ACTION,
CHILD,
SCIFI,
DOCUMEN
TARY
VARCHAR2
Length
10
60
400
20
NN,U
TITLE
NN
DESCRIPTION
RATING
NN
G, PG, R,
NC17, NR
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
CATEGORY
y
m
RELEASE_
DATE
e
d
a
c
A
a
r
O
DATE
FK Ref
Table
FK Ref
Col
Data
Type
Length
COPY_ID
TITLE_ID
PK
PK,FK
NN,U
NN,U
STATUS
NN
AVAILABLE,
DESTROYED,
RENTED,
RESERVED
TITLE
TITLE_ID
NUMBER
NUMBER
VARCHAR2
10
10
15
e
l
c
BOOK_
DATE
PK
MEMBER_
ID
PK,FK1
COPY_
ID
PK,FK2
ACT_RET_
DATE
System
Date
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
MEMBER
DATE
MEMBER_I
D
NUMBER
TITLE_
COPY
COPY_
ID
NUMBER
10
10
DATE
y
m
e
d
a
EXP_RET_
DATE
c
A
TITLE_
ID
PK,FK2
System Date
+ 2 days
TITLE_
COPY
TITLE_ID
DATE
a
r
O
NUMBER
10
RES_
DATE
MEMBER_
ID
TITLE_
ID
PK
PK,FK1
PK,FK2
NN,U
NN,U
NN
MEMBER
TITLE
MEMBER_ID
TITLE_ID
NUMBER
NUMBER
10
10
DATE
Length
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
4) Agregue datos a las tablas. Cree un script para cada juego de datos que desee agregar.
a) Agregue los ttulos de las pelculas a la tabla TITLE. Escriba un script para
introducir la informacin sobre las pelculas. Guarde las sentencias en un script
denominado lab_apcs_4a.sql. Utilice las secuencias para identificar de forma
nica cada ttulo. Introduzca las fechas de versin en formato DD-MES-AAAA.
Recuerde que las comillas simples se deben gestionar de forma especial en los
campos de caracteres. Verifique las adiciones.
e
l
c
a
r
O
The Glob
My Day Off
Miracles on Ice
Soda Gang
Description
All of Willies friends
make a Christmas list for
Santa, but Willie has yet
to add his own wish list.
Yet another installation of
science fiction history.
Can the heroine save the
planet from the alien life
form?
A meteor crashes near a
small American town and
unleashes carnivorous goo
in this classic.
With a little luck and a lot
of ingenuity, a teenager
skips school for a day in
New York.
A six-year-old has doubts
about Santa Claus, but she
discovers that miracles
really do exist.
After discovering a cache
of drugs, a young couple
find themselves pitted
against a vicious gang.
Rating
G
Category
CHILD
Release_date
05-OCT-1995
SCIFI
19-MAY-1995
NR
SCIFI
12-AUG-1995
PG
COMEDY
12-JUL-1995
PG
DRAMA
12-SEP-1995
NR
ACTION
01-JUN-1995
y
m
e
d
a
c
A
Last_Name
Velasquez
LaDoris
Ngao
Midori
Nagayama
Mark
e
l
c
a
r
O
Address
283 King
Street
5 Modrany
City
Seattle
Bratislava
Ropeburn
68 Via
Sao Paolo
Centrale
6921 King
Lagos
Way
86 Chu Street Hong Kong
Urguhart
3035 Laurier
Quick-to-See
Audry
Molly
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
Quebec
Phone
206-8996666
586-3558882
254-8525764
63-559-7777
Join_Date
08-MAR1990
08-MAR1990
17-JUN1991
07-APR-1990
41-559-87
18-JAN1991
18-JAN1991
418-5429988
Copy_Id
Status
Title
Copy_Id
Willie and
Christmas Too
Alien Again
AVAILABLE
AVAILABLE
RENTED
The Glob
AVAILABLE
The Glob
My Day Off
AVAILABLE
My Day Off
AVAILABLE
RENTED
Miracles on Ice
AVAILABLE
Miracles on Ice
Soda Gang
AVAILABLE
Soda Gang
1
2
e
d
a
y
m
Nota: el nmero de ttulo puede ser diferente en funcin del nmero de secuencia.
Title_ Id
92
93
95
97
e
l
c
Copy_
Id
1
Member_Id
101
Book_date
3 days ago
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
Exp_Ret_Date
1 day ago
101
1 day ago
102
2 days ago
Today
106
4 days ago
2 days ago
a
r
O
e
d
a
y
m
b) Introduzca dos reservas. Una reserva es para Carmen Velasquez, que desea
alquilar Interstellar Wars. La otra es para Mark Quick-to-See, que desea
alquilar Soda Gang.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
Title
Willie and Christmas Too
Alien Again
The Glob
My Day Off
Miracles on Ice
Soda Gang
Interstellar Wars
Price
25
35
35
35
30
35
29
y
m
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
a
r
O
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
e
l
c
y
m
a
r
O
y
m
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
ra
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
e
l
c
y
m
a
r
O
a
r
O
e
l
c
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
y
m
5) Cree una vista con el nombre TITLE_AVAIL para mostrar los ttulos de las pelculas,
la disponibilidad de cada copia y la fecha de devolucin esperada si est alquilada.
Consulte todas las filas de la vista. Ordene los resultados por ttulo.
y
m
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
SELECT
*
FROM
title_avail
ORDER BY title, copy_id;
e
l
c
a
r
O
b) Introduzca dos reservas. Una reserva es para Carmen Velasquez, que desea
alquilar Interstellar Wars. La otra es para Mark Quick-to-See, que desea
alquilar Soda Gang.
INSERT
VALUES
/
INSERT
VALUES
/
y
m
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
a
r
O
e
d
a
y
m
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
d
a
Descripcin de Esquema
Descripcin General
Los esquemas de ejemplo de Oracle Database ilustran una compaa de ejemplo que opera en todo el
mundo para surtir pedidos de varios productos distintos. La compaa tiene tres divisiones:
Human Resources: realiza un seguimiento de la informacin sobre los empleados y las
instalaciones.
Order Entry: realiza un seguimiento de los inventarios y las ventas de productos a travs de
distintos canales.
Sales History: realiza un seguimiento de los datos estadsticos de negocio para facilitar las
decisiones de negocio.
Cada una de estas divisiones se representa mediante un esquema. En este curso tendr acceso a los
objetos de todos los esquemas. No obstante, el nfasis de los ejemplos, demostraciones y prcticas
est en el esquema de Human Resources (HR).
Todos los scripts necesarios para crear los esquemas de ejemplo estn en la carpeta
$ORACLE_HOME/demo/schema/.
Human Resources (HR)
Se trata del esquema que se utiliza en este curso. En los registros de recursos humanos (HR), cada
empleado tiene un nmero de identificacin, una direccin de correo electrnico, un cdigo de
identificacin de cargo, un salario y un gestor. Algunos empleados ganan comisiones adems de su
salario.
La compaa tambin registra informacin sobre cargos dentro de la organizacin. Cada cargo
dispone de un cdigo de identificacin, un puesto y un rango de salario mximo y mnimo para el
cargo. Algunos empleados llevan bastante tiempo en la compaa y han desempeado distintos
trabajos en ella. Cuando se reasigna un empleado, se registran la duracin del trabajo del empleado,
el nmero de identificacin del cargo y el departamento.
La compaa de ejemplo se extiende por distintas regiones, por lo que registra la ubicacin de sus
almacenes y departamentos. Cada empleado est asignado a un departamento y cada departamento se
identifica mediante un nmero de departamento nico o una abreviatura. Cada departamento est
asociado a una ubicacin y cada ubicacin tiene una direccin completa que incluye el nombre de la
calle, el cdigo postal, la ciudad, el estado o la provincia y el cdigo de pas.
En las ubicaciones de los departamentos y almacenes, la compaa registra detalles como el nombre
de pas, el smbolo y nombre de divisa y la regin en la que est ubicado geogrficamente el pas.
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
HR
DEPARTMENTS
department_id
department_name
manager_id
location_id
JOB_HISTORY
employee_id
start_date
end_date
job_id
department_id
JOBS
job_id
job_title
min_salary
max_salary
LOCATIONS
location_id
street_address
postal_code
city
state_province
country_id
EMPLOYEES
employee_id
first_name
last_name
email
phone_number
hire_date
job_id
salary
commission_pct
manager_id
department_id
COUNTRIES
country_id
country_name
region_id
REGIONS
region_id
region_name
e
d
a
y
m
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
d
a
Objetivos
Al finalizar este apndice, debera estar capacitado para lo
siguiente:
Mostrar las funciones clave de Oracle SQL Developer
Identificar las opciones de men de Oracle SQL Developer
Crear una conexin a la base de datos
Gestionar objetos de bases de datos
Utilizar la hoja de trabajo de SQL
Guardar y ejecutar scripts SQL
Crear y guardar informes
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Objetivos
En este apndice, se ofrece una introduccin a la herramienta grfica SQL Developer. Aprender
cmo utilizar SQL Developer para las tareas de desarrollo de la base de datos. Aprender cmo
utilizar la hoja de trabajo de SQL para ejecutar sentencias y scripts SQL.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
SQL Developer
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
http://www.oracle.com/technology/products/database/
sql_developer/index.html
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
y
m
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Examen de Archivos
Utilizar el navegador de archivos para explorar el sistema de
archivos y abrir archivos del sistema.
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Introducir
sentencias SQL.
Los resultados se
muestran aqu.
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
F9
F5
F5
F9
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
2
3
Seleccionar una
conexin de la lista
desplegable.
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Despus de la Operacin
de Formateo
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Uso de Fragmentos
Los fragmentos son fragmentos de cdigo que puede ser
simplemente sintaxis o ejemplos.
Al colocar el cursor aqu, se
muestra la ventana Snippets. En
la lista desplegable, puede
seleccionar la categora de
funciones que desee.
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Uso de Fragmentos
Es posible que desee utilizar determinados fragmentos de cdigo al utilizar la hoja de trabajo de SQL
o al crear o editar un procedimiento o una funcin de PL/SQL. SQL Developer dispone de la funcin
denominada Snippets. Los fragmentos son fragmentos de cdigo, como funciones SQL, indicaciones
del optimizador y otras tcnicas de programacin de PL/SQL. Puede arrastrar fragmentos a la
ventana Editor.
Para visualizar los fragmentos, seleccione View > Snippets.
Aparece la ventana Snippets a la derecha. Puede utilizar la lista desplegable para seleccionar un
grupo. En el margen de la ventana derecha se encuentra un botn Snippets, para poder acceder a la
ventana Snippets si se oculta.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Insercin de un
fragmento
Edicin del
fragmento
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
1
2
Enlaces a motores de
bsqueda y foros de
discusin conocidos
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Definicin de Preferencias
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Definicin de Preferencias
Puede personalizar diferentes aspectos de la interfaz y el entorno de SQL Developer mediante la
modificacin de las preferencias de SQL Developer segn sus preferencias y necesidades. Para
modificar las preferencias de SQL Developer, seleccione Tools y, a continuacin, Preferences.
Las preferencias se agrupan en las siguientes categoras:
Environment
Accelerators (accesos directos del teclado)
Code Editors
Database
Debugger
Documentation
Extensions
File Types
Migration
PL/SQL Compilers
PL/SQL Debugger
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Resumen
En este apndice, debe haber aprendido cmo utilizar SQL
Developer para realizar las siguientes acciones:
Examinar, crear y editar objetos de bases de datos
Ejecutar sentencias SQL y scripts en la hoja de trabajo de
SQL
Crear y guardar informes personalizados
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Resumen
SQL Developer es una herramienta grfica gratuita para simplificar las tareas de desarrollo de la base
de datos. Con SQL Developer, puede examinar, crear y editar objetos de bases de datos. Puede
utilizar SQL Worksheet para ejecutar archivos de comandos y sentencias SQL. SQL Developer
permite crear y guardar su propio juego especial de informes para un uso repetido.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Uso de SQL*Plus
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
d
a
Objetivos
Al finalizar este apndice, debera estar capacitado para lo
siguiente:
Conectarse a SQL*Plus
Editar comandos SQL
Formatear la salida con comandos SQL*Plus
Interactuar con scripts
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Objetivos
Puede que desee crear sentencias SELECT que se puedan utilizar repetidamente. En este apndice
tambin se aborda el uso de comandos SQL*Plus para ejecutar sentencias SQL. Aprender cmo
formatear la salida mediante comandos SQL*Plus, editar comandos SQL y guardar scripts en
SQL*Plus.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Sentencias SQL
Servidor
SQL*Plus
Resultados de consultas
Buffer
Scripts
SQL
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
SQL y SQL*Plus
SQL es un lenguaje de comandos que se utiliza para la comunicacin con el servidor de Oracle desde
cualquier herramienta o aplicacin. Oracle SQL contiene muchas extensiones. Al introducir una
sentencia SQL, sta se almacena en una parte de la memoria denominada buffer SQL y permanece
all hasta que introduzca una nueva sentencia SQL. SQL*Plus es una herramienta de Oracle que
reconoce y enva sentencias SQL en Oracle9i Server para su ejecucin. Contiene su propio lenguaje
de comandos.
Funciones de SQL
Las pueden utilizar una gran variedad de usuarios, incluidos aqullos con poca o ninguna
experiencia
.Es un lenguaje que no es de procedimientos.
Reduce la cantidad de tiempo necesario para crear y mantener sistemas.
Es un lenguaje como el ingls.
Funciones de SQL*Plus
Acepta la entrada ad hoc de sentencias.
Acepta la entrada de SQL de los archivos.
Proporciona un editor de lneas para modificar sentencias SQL.
Controla los valores de entorno.
Formatea resultados de consulta en informes bsicos.
Accede a bases de datos locales y remotas.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Sentencias
SQL
Buffer
SQL
SQL*Plus
Un entorno
Propiedad de Oracle
Las palabras clave se
pueden abreviar.
Los comandos no
permiten la manipulacin
de valores en la base de
datos.
Comandos
SQL*Plus
Buffer
SQL*Plus
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
SQL
Lenguaje para la comunicacin con el
servidor de Oracle para acceder a los datos.
Se basa en SQL del estndar ANSI
(American National Standards Institute).
Manipula la definiciones de tablas y datos en
la base de datos.
Se introduce en el buffer SQL en una o ms
lneas.
No tiene ningn carcter de continuacin.
e
l
c
a
r
O
No se puede abreviar.
y
m
e
d
a
c
A
SQL*Plus
Reconoce las sentencias SQL y las enva al
servidor.
Interfaz propiedad de Oracle para ejecutar
sentencias SQL.
No permite la manipulacin de valores en la
base de datos.
Se introduce en una lnea al mismo tiempo y
no se almacena en el buffer SQL.
Utiliza un guin () como carcter de
continuacin si el comando es ms largo que
una lnea.
Se puede abreviar.
Conectarse a SQL*Plus.
Describir la estructura de la tabla.
Editar la sentencia SQL.
Ejecutar SQL desde SQL*Plus.
Guardar sentencias SQL en archivos y agregar sentencias
SQL a los archivos.
Ejecutar archivos guardados.
Cargar comandos del archivo en el buffer para la edicin.
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
SQL*Plus
SQL*Plus es un entorno en el que puede:
Ejecutar sentencias SQL para recuperar, modificar, agregar y eliminar datos de la base de datos.
Formatear, realizar clculos, almacenar e imprimir resultados de consulta en forma de informes.
Crear scripts para almacenar sentencias SQL para un uso repetido en el futuro.
Los comandos SQL*Plus se pueden dividir en las siguientes categoras:
Categora
Objetivo
Entorno
Formato
Manipulacin de
archivos
Ejecucin
Edicin
Interaccin
e
l
c
a
r
O
Otros
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
Conexin a SQL*Plus
sqlplus [username[/password[@database]]]
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
y
m
e
d
a
c
A
Conexin a SQL*Plus
La forma de llamar a SQL*Plus depender del tipo de sistema operativo en que est ejecutando
Oracle Database.
Para conectarse desde un entorno Linux, realice los siguientes pasos:
1. Haga clic con el botn derecho del mouse en el escritorio de Linux y seleccione un terminal.
2. Introduzca el comando sqlplus que se muestra en la diapositiva.
3. Introduzca el nombre de usuario, la contrasea y el nombre de la base de datos.
En la sintaxis:
username Nombre de usuario de la base de datos.
password Contrasea de la base de datos (la contrasea ser visible si la introduce aqu).
@database Cadena de conexin de la base de datos.
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
e
l
c
DESCRIBE departments
Name
----------------------DEPARTMENT_ID
DEPARTMENT_NAME
MANAGER_ID
LOCATION_ID
Null?
Type
-------- -----------NOT NULL NUMBER(4)
NOT NULL VARCHAR2(30)
NUMBER(6)
NUMBER(4)
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
A[PPEND] text
C[HANGE] / old / new
C[HANGE] / text /
CL[EAR] BUFF[ER]
DEL
DEL n
DEL m n
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
I[NPUT]
I[NPUT] text
L[IST]
L[IST] n
L[IST] m n
R[UN]
n
n text
0 text
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
Comando
I[NPUT]
I[NPUT] text
L[IST]
L[IST] n
L[IST] m n
R[UN]
n
n text
0 text
e
d
a
c
A
Descripcin
Inserta un nmero indefinido de lneas.
Inserta una lnea que consta de texto.
Muestra todas las lneas en el buffer SQL.
Muestra una lnea (especificada por n).
Muestra un rango de lneas (m a n), inclusive.
Muestra y ejecuta la sentencia SQL actual en el buffer.
Especifica la lnea para crear la lnea actual.
Sustituye la lnea n con texto.
Inserta una lnea delante de la lnea 1.
Nota: puede introducir slo un comando SQL*Plus para cada peticin de datos SQL. Los comandos
SQL*Plus no se almacenan en el buffer. Para que un comando SQL*Plus contine en la siguiente
lnea, finalice la primera lnea con un guin (-).
e
l
c
a
r
O
LIST
1 SELECT last_name
2* FROM
employees
1
1* SELECT last_name
A , job_id
1* SELECT last_name, job_id
LIST
1 SELECT last_name, job_id
2* FROM
employees
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
LIST
1* SELECT * from employees
c/employees/departments
1* SELECT * from departments
LIST
1* SELECT * from departments
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
SAVE filename
GET filename
START filename
@ filename
EDIT filename
SPOOL filename
EXIT
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
Descripcin
e
l
c
ED[IT]
a
r
O
ED[IT] [filename[.ext]]
Llama al editor para editar el contenido de un archivo guardado.
SPO[OL] [filename[.ext]| Almacena los resultados de la consulta en un archivo. OFF
OFF|OUT]
cierra el archivo de spool. OUT cierra el archivo de spool y
enva los resultados del archivo a la impresora.
EXIT
Sale de SQL*Plus.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
y
m
e
d
a
c
A
Utilice el comando SAVE para almacenar el contenido actual del buffer en un archivo. De esta forma,
podr almacenar los scripts utilizados con frecuencia para utilizarlos en el futuro.
START
Utilice el comando START para ejecutar un script en SQL*Plus. Adems, tambin puede utilizar el
smbolo @ para ejecutar un script.
@my_query
e
l
c
a
r
O
Comando SERVEROUTPUT
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Comando SERVEROUTPUT
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
La mayora de los programas PL/SQL realizan entradas y salidas mediante sentencias SQL para
almacenar datos en las tablas de las bases de datos o consultar dichas tablas. Las dems
entradas/salidas PL/SQL se realizan a travs de API, que interactan con otros programas. Por
ejemplo, el paquete DBMS_OUTPUT tiene procedimientos, como PUT_LINE. Para ver el resultado
fuera de PL/SQL, se necesita otro programa como SQL*Plus, para leer y visualizar los datos
transferidos a DBMS_OUTPUT.
SQL*Plus no muestra los datos de DBMS_OUTPUT a menos que antes emita el comando SQL*Plus
SET SERVEROUTPUT ON siguiente:
SET SERVEROUTPUT ON
Nota
SIZE define el nmero de bytes de la salida que se pueden almacenar en buffer en el servidor
de Oracle Database. El valor por defecto es UNLIMITED. n no puede ser menor que 2.000 o
mayor que 1.000.000.
Para obtener ms informacin sobre SERVEROUTPUT, consulte Oracle Database PL/SQL
User's Guide and Reference 11g (Gua del Usuario y Referencia de PL/SQL de Oracle
Database 11g).
e
l
c
a
r
O
Descripcin
file_name[.ext]
CRE[ATE]
REP[LACE]
APP[END]
OFF
OUT
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
y
m
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
y
m
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
Nota
Para obtener ms informacin sobre el paquete y los subprogramas, consulte Oracle Database
PL/SQL Packages and Types Reference 11g (Referencia sobre Paquetes y Tipos PL/SQL de
Oracle Database 11g).
Para obtener ms informacin sobre EXPLAIN PLAN, consulte Oracle Database SQL
Reference 11g (Referencia sobre SQL de Oracle Database 11g).
Para obtener ms informacin sobre las estadsticas de planes de ejecucin, consulte
Oracle Database Performance Tuning Guide 11g (Gua de Ajuste del Rendimiento de
Oracle Database 11g).
e
l
c
a
r
O
Resumen
En este apndice, debe haber aprendido cmo utilizar
SQL*Plus como un entorno para realizar las siguientes
acciones:
Ejecutar sentencias SQL
Editar sentencias SQL
Formatear la salida
Interactuar con scripts
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Resumen
SQL*Plus es un entorno de ejecucin que puede utilizar para enviar comandos SQL al servidor de la
base datos para editar y guardar los comandos SQL. Puede ejecutar los comandos desde la peticin
de datos SQL o desde un archivo de script.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Uso de JDeveloper
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
d
a
Objetivos
Al finalizar este apndice, debera estar capacitado para lo
siguiente:
Mostrar las funciones clave de Oracle JDeveloper
Crear una conexin a base de datos en JDeveloper
Gestionar objetos de base de datos en JDeveloper
Utilizar JDeveloper para ejecutar comandos SQL
Crear y ejecutar unidades de programa PL/SQL
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Objetivos
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
En este apndice, se presentar JDeveloper. Aprender cmo utilizar JDeveloper para las tareas de
desarrollo de la base de datos.
e
l
c
a
r
O
Oracle JDeveloper
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Oracle JDeveloper
Oracle JDeveloper es un entorno de desarrollo de integracin (IDE) para desarrollar y desplegar
aplicaciones Java y servicios web. Soporta cada etapa del ciclo de vida de desarrollo de software
(SDLC), del modelado al despliegue. Tiene funciones que permiten utilizar los ltimos estndares de
la industria para Java, XML y SQL y desarrollar una aplicacin.
Oracle JDeveloper 11g inicia un nuevo enfoque al desarrollo J2EE con funciones que permiten un
desarrollo visual y declarativo. Este enfoque innovador hace que el desarrollo J2EE sea sencillo y
eficaz.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Database Navigator
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Database Navigator
Con Oracle JDeveloper, puede almacenar la informacin necesaria para conectarse a la base de datos
en un objeto denominado conexin. Una conexin se almacena como parte de los valores de IDE y
se puede exportar e importar para compartirla fcilmente entre grupos de usuarios. Una conexin
tiene diferentes fines, desde el examen de la base de datos y la creacin de aplicaciones hasta el
despliegue.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Creacin de Conexin
1
2
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Creacin de Conexin
Una conexin es un objeto que especifica la informacin necesaria para conectarse a una base de
datos concreta como usuario especfico de dicha base de datos. Puede crear y probar conexiones para
varias bases de datos y esquemas.
Para crear una conexin a la base de datos, realice los siguientes pasos:
1. Haga clic en el icono New Connection en Database Navigator.
2. En la ventana Create Database Connection, introduzca el nombre de la conexin. Introduzca el
nombre de usuario y la contrasea del esquema al que desea conectarse. Introduzca el SID de la
base de datos a la que desea conectarse.
3. Haga clic en Test para asegurarse de que la conexin se ha definido correctamente.
4. Haga clic en OK.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
a
r
O
y
m
e
d
a
Esqueleto de la Funcin
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Compilacin
y
m
e
d
a
c
A
Compilacin
Despus de editar la definicin de esqueleto, debe compilar la unidad de programa. Haga clic con el
botn derecho del mouse en el objeto PL/SQL que necesita compilar en Connection Navigator y, a
continuacin, seleccione Compile. Tambin puede pulsar [Ctrl] + [Shift] + [F9] para compilar.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
1
2
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Ventana Structure
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Ventana Structure
La ventana Structure ofrece una vista estructural de los datos del documento seleccionados
actualmente en la ventana activa de las ventanas que proporcionan estructura: navegadores, editores,
visores y el inspector de propiedades.
Haga clic en la ventana View > Structure para ver la ventana Structure.
En la ventana Structure, puede ver los datos del documento de distintas formas. Las estructuras
disponibles estn basadas en el tipo de documento. Para un archivo Java, puede ver la estructura del
cdigo, la estructura de la interfaz de usuario o los datos de modelo de interfaz de usuario. Para un
archivo XML, puede ver la estructura XML, la estructura del diseo o los datos de modelo de
interfaz de usuario.
La ventana Structure es dinmica y realiza siempre un seguimiento de la seleccin actual de la
ventana activa (a menos que congele el contenido de la ventana en una vista concreta), ya que est
relacionada con el editor que est actualmente activo. Cuando la seleccin actual es un nodo del
navegador, se asume el editor por defecto. Para cambiar la vista en la estructura de la seleccin
actual, haga clic en un separador de estructura distinto.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Navegador de Aplicaciones
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Navegador de Aplicaciones
El navegador de aplicaciones proporciona una vista lgica de la aplicacin y de los datos que
contiene. Adems proporciona una infraestructura a la que las distintas extensiones pueden
conectarse y utilizar para organizar los datos y mens de forma abstracta y consistente. Aunque el
navegador de aplicaciones puede contener archivos individuales (como archivos de origen Java), est
diseado para consolidar datos complejos. Los tipos de dato complejos, como los objetos de
entidades, diagramas UML, EJB o servicios web aparecen en el navegador como nodos nicos. Los
archivos raw que componen estos nodos abstractos aparecen en la ventana Structure.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Tema
Direccin web
http://www.oracle.com/technology/products/jdev/index.html
http://www.oracle.com/technology/obe/obe11jdev/11/index.html
http://www.oracle.com/technology/documentation/jdev.html
http://forums.oracle.com/forums/forum.jspa?forumID=83
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
a
r
O
Resumen
En este apndice, debe haber aprendido a realizar lo siguiente:
Mostrar las funciones clave de Oracle JDeveloper
Crear una conexin a base de datos en JDeveloper
Gestionar objetos de base de datos en JDeveloper
Utilizar JDeveloper para ejecutar comandos SQL
Crear y ejecutar unidades de programa PL/SQL
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
e
d
a
Objetivos
Al finalizar este apndice, debera estar capacitado para lo
siguiente:
Escribir sentencias SELECT para acceder a datos de ms
de una tabla mediante uniones igualitarias y no igualitarias
Unir una tabla consigo misma mediante autounin
Ver datos que normalmente no cumplen una condicin de
unin mediante uniones externas
Generar un producto cartesiano de todas las filas de una o
ms tablas
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Objetivos
Esta leccin explica cmo obtener datos de ms de una tabla. Una unin se utiliza para ver
informacin de varias tablas. Por lo tanto, puede unir tablas para ver informacin de ms de una
tabla.
Nota: para obtener ms informacin sobre las uniones, consulte la seccin sobre consultas y
subconsultas SQL: uniones en Oracle Database SQL Language Reference 11g, Release 1 (11.1)
(Referencia sobre Lenguaje SQL de Oracle Database 11g, Versin 1 (11.1)).
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
DEPARTMENTS
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Productos Cartesianos
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Productos Cartesianos
Cuando una condicin de unin no es vlida o se omite completamente, el resultado es un producto
cartesiano, en el que se muestran todas las combinaciones de filas. Es decir, todas las filas de la
primera tabla se unen a todas las filas de la segunda tabla.
Un producto cartesiano tiende a generar un gran nmero de filas y el resultado es poco til. Por lo
tanto, debe incluir siempre una condicin de unin vlida a menos que tenga necesidades especficas
de combinar todas las filas de todas las tablas.
Sin embargo, los productos cartesianos son tiles para algunas pruebas para las que necesite generar
un gran nmero de filas para simular una cantidad razonable de datos.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
DEPARTMENTS (8 filas)
Producto cartesiano:
20 x 8 = 160 filas
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
Unin igualitaria
Unin no igualitaria
Unin externa
Autounin
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Tipos de Uniones
Para unir tablas, puede utilizar la sintaxis de unin de Oracle.
Nota: antes de la versin de Oracle9i , la sintaxis de unin era propietaria. La sintaxis de unin
compatible con SQL:1999 no ofrece ninguna ventaja en el rendimiento respecto a la sintaxis de
unin propietaria de Oracle.
Oracle no tiene una sintaxis equivalente para soportar FULL OUTER JOIN de la sintaxis de unin
compatible con SQL:1999.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
table1.column, table2.column
table1, table2
table1.column1 = table2.column2;
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
En la sintaxis:
table1.column
table1.column1 =
table2.column2
Instrucciones
Cuando escriba una sentencia SELECT para unir tablas, anteponga el nombre de la tabla al de
columna para mejorar la claridad y el acceso a la base de datos.
Si aparece el mismo nombre de columna en ms de una tabla, el nombre de columna debe tener
como prefijo el nombre de tabla.
Para unir n tablas, necesita un mnimo de n-1 condiciones de unin. Por ejemplo, para unir
cuatro tablas, es necesario un mnimo de tres uniones. Esta regla puede que no se aplique si la
tabla tiene una clave primaria concatenada, en cuyo caso es necesario ms de una columna para
identificar de forma nica cada fila.
e
l
c
a
r
O
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
y
m
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Uniones igualitarias
EMPLOYEES
DEPARTMENTS
Clave primaria
Clave ajena
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Uniones igualitarias
Para determinar el nombre de departamento de un empleado, compare el valor de la columna
DEPARTMENT_ID en la tabla EMPLOYEES con los valores de DEPARTMENT_ID de la tabla
DEPARTMENTS. La relacin entre las tablas EMPLOYEES y DEPARTMENTS es una unin
igualitaria; es decir, los valores de la columna DEPARTMENT_ID de ambas tablas deben ser iguales.
A menudo, este tipo de unin implica complementos de clave primaria y ajena.
Nota: las uniones igualitarias tambin se denominan uniones simples o uniones internas.
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e.department_id = d.department_id
Debido a que la columna DEPARTMENT_ID es comn a las dos tablas, debe tener como prefijo el
alias de tabla para evitar la ambigedad. Otras columnas que no estn presentes en las tablas no es
necesario que se cualifiquen segn el alias de tabla, pero es recomendable para obtener un mejor
rendimiento.
Nota: al utilizar el icono Execute Statement para ejecutar la consulta, SQL Developer agrega el
sufijo _1 para diferenciar entre los dos DEPARTMENT_ID.
e
l
c
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
a
r
O
EMPLOYEES
DEPARTMENTS
LOCATIONS
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
l
c
r
O
Uniones no Igualitarias
EMPLOYEES
JOB_GRADES
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
y
m
e
d
a
c
A
Uniones no Igualitarias
Una unin no igualitaria es una condicin de unin que contiene algn operador diferente del
operador de igualdad.
La relacin entre la tabla EMPLOYEES y JOB_GRADES es un ejemplo de unin no igualitaria. Los
rangos de la columna SALARY en la tabla EMPLOYEES entre los valores en las columnas
LOWEST_SAL y HIGHEST_SAL de la tabla JOB_GRADES. Por lo tanto, se pueden agregar grados
a cada empleado segn el salario. La relacin se obtiene mediante un operador distinto del de
igualdad (=).
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
EMPLOYEES
y
m
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Utilice una unin externa para ver las filas que no cumplen
la condicin de unin.
El operador de unin externa es el signo ms (+).
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
EMPLOYEES (WORKER)
EMPLOYEES (MANAGER)
y
m
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Autounin: Ejemplo
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Autounin: Ejemplo
El ejemplo de la diapositiva une la tabla EMPLOYEES consigo misma. Para simular dos tablas en la
clusula FROM, existen dos alias, llamados worker y manager, para la misma tabla EMPLOYEES.
En este ejemplo, la clusula WHERE contiene la unin que significa donde el nmero de gestor de un
trabajador coincide con el nmero de empleado del gestor .
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
Resumen
En este apndice debe haber aprendido a utilizar uniones para
mostrar los datos de varias tablas utilizando:
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
Resumen
Hay varios modos de unir tablas.
Tipos de Uniones
Uniones igualitarias
Uniones no igualitarias
Uniones externas
Autouniones
Productos Cartesianos
Un producto cartesiano da como resultado una visualizacin de todas las combinaciones de filas.
Para ello debe omitir la clusula WHERE.
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
Alias de Tabla
Los alias de tabla aceleran el acceso a la base de datos.
Los alias pueden ayudar a mantener el cdigo SQL ms pequeo utilizando de esta forma
menos memoria.
e
l
c
a
r
O
y
m
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
e
d
a
c
A
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
a
r
O
y
m
e
d
a
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
ndice
y
m
e
d
a
a
r
O
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
A
alias 1-5, 1-9, 1-17, 1-18, 1-20, 1-21, 1-29, 2-5, 2-6, 2-8,
2-23, 2-24, 2-38, 4-25, 5-14, 5-27, 6-7, 6-14, 6-16, 6-24, 6-36,
8-28, 10-34, 11-8, 11-10, 11-12, C-8, F-8, F-10, F-11, F-15, F-21,
F-22
ALL 2-36, 5-6, 7-3, 7-5, 7-9, 7-16, 7-17, 7-19, 7-21, 7-22,
8-3, 8-4, 8-5, 8-6, 8-7, 8-12, 8-16, 8-17, 8-18, 8-21, 8-24,
8-27, 8-29, 8-30
AND 2-3, 2-8, 2-10, 2-15, 2-16, 2-18, 2-19, 2-20, 2-21, 2-22,
2-26, 2-34, 2-38, 6-18, 6-24, 7-11, 7-18, 7-19, 9-44, F-12, F-13,
F-15
ANY 7-3, 7-5, 7-9, 7-16, 7-17, 7-18, 7-19, 7-21, 7-22, 10-39,
11-20, 11-32, 11-39
atributos i-22, i-23, i-24
autounin 6-2, 6-20, 6-21, F-2, F-20
AVG 5-3, 5-5, 5-7, 5-8, 5-12, 5-15, 5-25, 5-28
y
m
B
BETWEEN 2-3, 2-8, 2-10, 2-12, 2-18, 2-19, 2-20, 2-22, 2-26,
2-34, 2-37, 2-38, 6-24, F-15
C
CASE 3-7, 4-3, 4-10, 4-23, 4-27, 4-32, 4-36, 4-37, 4-38, 4-39,
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
e
l
c
a
r
O
C
COALESCE 3-7, 4-3, 4-10, 4-23, 4-27, 4-28, 4-33, 4-34, 4-35,
4-36, 4-44, 5-6
comando 1-8, 1-26, 1-27, 2-27, 2-28, 2-29, 2-33, 2-35, 2-36,
4-22, 9-8, 9-31, 9-32, 9-43, 10-11, 10-34, 10-37, 11-9, 11-13, 11-39,
C-11, C-22, C-31, D-6, D-7, D-9, D-10, D-11, D-12, D-14, D-15,
D-16, D-17, E-7
condiciones 1-23, 2-3, 2-8, 2-11, 2-12, 2-14, 2-15, 2-16, 2-19,
2-21, 2-22, 2-26, 2-27, 2-34, 2-38, 6-15, 6-18, 6-24, 6-37, 7-5,
7-7, 7-11, 7-22, 9-27, 10-28, 11-15, F-7, F-13, F-15, F-23
consulta i-30, 1-4, 1-8, 1-17, 1-18, 1-24, 2-2, 2-5, 2-23,
2-25, 2-27, 2-31, 2-33, 3-6, 3-26, 3-33, 4-21, 4-35, 5-15, 6-7,
6-14, 6-16, 6-20, 6-24, 6-28, 6-29, 6-30, 7-4, 7-5, 7-6, 7-11,
7-12, 7-13, 7-14, 7-15, 7-17, 7-22, 7-24, 7-25, 7-26, 8-5, 8-6,
8-13, 8-17, 8-19, 8-20, 8-22, 8-25, 8-26, 8-28, 8-29, 8-30, 9-23,
9-33, 9-44, 9-47, 10-28, 10-42, 11-8, 11-29, 11-36, 11-37, 11-38, C-18,
C-28, D-3, D-5, D-13, D-16, D-17, F-8, F-10, F-15, F-16, F-19,
F-20
COUNT 5-3, 5-5, 5-9, 5-12, 5-19, 5-25, 5-28
CURRENT_DATE 3-24, 9-9
CURRVAL 10-10, 10-28, 11-3, 11-22, 11-27, 11-28, 11-29, 11-33, 11-40
e
d
a
y
m
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
DBMS i-17
DECODE 3-7, 4-3, 4-10, 4-23, 4-27, 4-36, 4-37, 4-39, 4-40, 4-41,
4-42, 4-44, 4-45, 5-6
DEFAULT 10-3, 10-7, 10-8, 10-10, 10-11, 10-12, 10-16, 10-19, 10-32,
10-35, 10-38, 11-28
DELETE i-31, 9-3, 9-13, 9-19, 9-21, 9-22, 9-23, 9-24, 9-25, 9-29,
9-35, 9-36, 9-37, 9-39, 9-40, 9-42, 9-46, 9-47, 10-27, 10-31, 11-7,
11-19, 11-28, D-17
DESCRIBE 1-3, 1-10, 1-16, 1-19, 1-25, 1-26, 1-27, 8-9, 8-10,
9-7, 9-8, 10-11, 10-34, 11-9, 11-13, B-4, B-5, B-6, B-7, B-8,
B-9, B-10, C-11, D-7, D-8
DISTINCT 1-3, 1-5, 1-10, 1-16, 1-19, 1-24, 1-25, 1-29, 2-5,
2-38, 5-3, 5-6, 5-10, 5-12, 5-25, 11-14, 11-15, 11-16, 11-28
e
l
c
a
r
O
D
DUAL 3-17, 3-18, 3-24, 3-32
E
esquema i-2, i-4, i-34, i-40, 10-2, 10-5, 10-6, 10-9, 10-29,
10-41, 11-35, 11-42, C-3, C-5, C-8, C-10, C-13, E-5, E-6
expresin 1-5, 1-11, 1-12, 1-13, 1-15, 1-20, 1-29, 2-3, 2-8,
2-19, 2-22, 2-23, 2-26, 2-34, 3-6, 3-13, 3-17, 3-18, 3-31, 4-5,
4-6, 4-25, 4-29, 4-30, 4-31, 4-32, 4-33, 4-37, 4-38, 4-39, 4-40,
4-44, 5-9, 5-19, 10-10, 10-34, 11-13, 11-28, 11-38, F-18
F
fecha i-22, 1-9, 1-11, 1-20, 1-21, 2-7, 2-24, 2-31, 3-2, 3-3,
3-7, 3-8, 3-15, 3-17, 3-18, 3-20, 3-21, 3-22, 3-23, 3-24, 3-25,
3-26, 3-27, 3-28, 3-29, 3-30, 3-32, 3-33, 4-5, 4-11, 4-14, 4-16,
4-20, 4-21, 4-22, 4-25, 4-29, 4-43, 4-44, 5-8, 8-8, 9-7, 9-9,
9-10, 10-11, 10-13, 10-15
funciones i-2, i-4, i-9, i-10, i-11, i-13, i-16, i-39, 2-5,
2-7, 3-2, 3-4, 3-5, 3-6, 3-7, 3-9, 3-10, 3-11, 3-13, 3-16,
3-17, 3-18, 3-24, 3-28, 3-30, 3-31, 3-32, 3-33, 4-2, 4-4, 4-7,
4-9, 4-20, 4-24, 4-28, 4-44, 4-45, 5-2, 5-3, 5-4, 5-5, 5-6,
5-7, 5-8, 5-11, 5-12, 5-13, 5-14, 5-15, 5-19, 5-20, 5-22, 5-25,
5-26, 5-27, 5-28, 5-29, 7-2, 7-25, 8-25, 9-9, 10-10, 10-18, 10-28,
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
11-7, 11-13, C-2, C-6, C-14, C-24, C-26, E-2, E-3, E-15, E-18
funcin 3-4, 3-6, 3-7, 3-12, 3-17, 3-18, 3-19, 3-23, 3-24,
3-26, 3-29, 3-32, 4-11, 4-17, 4-20, 4-25, 4-26, 4-29, 4-30, 4-31,
4-32, 4-33, 4-34, 4-37, 4-39, 4-40, 4-42, 4-43, 4-44, 4-45, 5-3,
5-6, 5-9, 5-11, 5-12, 5-14, 5-15, 5-16, 5-18, 5-19, 5-22, 5-23,
5-25, 5-27, 7-12, 8-25, 9-9, 9-10, 9-12, 10-10, 10-33, 11-13, C-6,
C-23, C-24, C-25, C-26, D-17, E-8
H
HAVING 5-2, 5-3, 5-12, 5-20, 5-21, 5-22, 5-23, 5-24, 5-25, 5-28,
5-29, 7-3, 7-5, 7-9, 7-13, 7-16, 7-21, 7-25, 11-28
e
l
c
y
m
a
r
O
icono 1-6, 1-8, 2-36, 6-16, 9-4, 10-10, 10-42, 11-8, C-5, C-15,
C-17, C-19, C-20, C-21, C-22, C-26, E-5, E-7, F-10
I
IN 2-3, 2-11, 2-18, 2-19, 2-20, 2-22, 2-26, 2-34, 2-37, 2-38,
4-31, 6-10, 7-5, 7-14, 7-16, 7-17, 7-18, 7-19, 7-22, 7-23, 7-25,
9-22, 9-35, F-12, F-18
INSERT i-31, 3-23, 9-3, 9-6, 9-7, 9-8, 9-9, 9-10, 9-11, 9-12,
9-13, 9-19, 9-25, 9-29, 9-30, 9-35, 9-39, 9-40, 9-42, 9-47, 10-8,
10-10, 10-11, 10-19, 10-22, 10-24, 10-25, 11-7, 11-17, 11-28, 11-29, D-17
INTERSECT 8-3, 8-4, 8-5, 8-7, 8-12, 8-18, 8-19, 8-20, 8-21,
8-24, 8-27, 8-30, 8-31
J
Java i-12, C-4, C-8, E-3, E-12, E-14, E-15, E-16
L
LENGTH 3-9, 3-10, 3-13, 3-14, 3-32
LIKE 2-3, 2-8, 2-12, 2-13, 2-16, 2-17, 2-18, 2-19, 2-20, 2-22,
2-26, 2-34, 2-37, 2-38, 3-30, 5-7, 5-24, 9-12, 9-23
literal 1-14, 1-21, 1-22, 1-23, 3-13, 4-11, 4-31, 4-32, 4-38,
8-26, 10-10
LPAD 3-9, 3-13
M
MAX 5-3, 5-5, 5-7, 5-8, 5-12, 5-25, 5-28
MIN 5-3, 5-5, 5-7, 5-8, 5-12, 5-25, 5-28, 7-12
MINUS 8-3, 8-4, 8-5, 8-7, 8-12, 8-18, 8-21, 8-22, 8-23, 8-24,
8-27, 8-30, 8-31
MOD 3-16, 3-19, 3-32
N
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
y
m
e
d
a
c
A
e
l
c
a
r
O
N
NULL 1-3, 1-10, 1-14, 1-16, 1-19, 1-20, 1-25, 1-26, 1-27, 2-3,
2-8, 2-14, 2-18, 2-19, 2-20, 2-22, 2-26, 2-34, 2-37, 2-38, 4-32,
4-38, 4-39, 5-3, 5-12, 5-18, 5-25, 7-23, 8-13, 9-8, 9-9, 9-16,
9-35, 10-3, 10-7, 10-10, 10-12, 10-16, 10-17, 10-19, 10-20, 10-21, 10-22,
10-23, 10-25, 10-26, 10-27, 10-29, 10-32, 10-33, 10-35, 10-38, 11-16, D-7,
D-8, E-10, F-16
NULLIF 3-7, 4-3, 4-10, 4-23, 4-27, 4-28, 4-32, 4-36, 4-44
NVL2 3-7, 4-3, 4-10, 4-23, 4-27, 4-28, 4-31, 4-36, 4-44, 5-6
NVL 3-7, 4-3, 4-10, 4-23, 4-27, 4-28, 4-29, 4-30, 4-33, 4-36,
4-44, 5-6, 5-11
O
OLTP i-11, i-16
ON 2-36, 6-3, 6-5, 6-6, 6-8, 6-15, 6-16, 6-17, 6-18, 6-19,
6-21, 6-22, 6-24, 6-25, 6-27, 6-28, 6-29, 6-30, 6-31, 9-31, 10-27,
11-13, 11-37, D-15, D-17
opcin i-24, 2-13, 9-31, 10-10, 10-33, 11-8, 11-9, 11-12, 11-18, 11-25,
11-26, 11-31, 11-32, C-13, C-19, C-26
operador 1-3, 1-10, 1-12, 1-16, 1-19, 1-20, 1-23, 1-25, 2-5,
2-10, 2-11, 2-12, 2-14, 2-18, 4-30, 6-23, 7-3, 7-7, 7-9, 7-10,
7-14, 7-16, 7-17, 7-18, 7-19, 7-20, 7-21, 7-22, 7-25, 8-2, 8-4,
8-5, 8-6, 8-13, 8-14, 8-16, 8-17, 8-19, 8-22, 8-25, 8-26, 8-29,
8-30, 8-31, F-14, F-17, F-18
OR 2-3, 2-11, 2-15, 2-17, 2-19, 2-20, 2-21, 2-22, 2-26, 2-34,
2-38, 11-8, 11-9, 11-10, 11-12, 11-13, 11-17, 11-19, F-18
ORDBMS i-2, i-39
orden i-27, 1-7, 1-13, 2-2, 2-11, 2-20, 2-23, 2-24, 2-25, 2-33,
2-39, 5-15, 5-18, 5-27, 5-28, 8-2, 8-4, 8-5, 8-6, 8-13, 8-15,
8-19, 8-28, 9-7, 9-8, 11-12
ordenacin 2-23, 2-24, 2-25
P
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
y
m
c
A
a
r
O
Q
q 1-23
R
RDBMS i-2, i-18, i-25, i-27, i-39, 9-43
REFERENCES 10-26, 10-27, 10-29
REPLACE 3-9, 3-13, 11-8, 11-9, 11-10, 11-12, 11-13, 11-17, 11-19,
D-16
restricciones i-16, i-39, 1-14, 6-10, 9-4, 9-8, 9-24, 10-2,
10-3, 10-7, 10-12, 10-14, 10-16, 10-17, 10-18, 10-19, 10-20, 10-21, 10-22,
10-23, 10-26, 10-28, 10-30, 10-32, 10-33, 10-35, 10-38, 10-40, 10-41, 11-17,
11-39, C-10, E-6
restriccin 1-26, 2-4, 9-4, 9-8, 9-20, 9-24, 10-17, 10-18, 10-19,
10-20, 10-21, 10-22, 10-23, 10-24, 10-25, 10-26, 10-27, 10-28, 10-30, 10-31,
10-33, 11-8, 11-9, 11-17, 11-19, 11-21, 11-34, 11-36, 11-38, 11-44
ROUND 3-16, 3-17, 3-18, 3-28, 3-30, 3-32, 4-26
RPAD 3-9, 3-13
y
m
S
secuencias 2-24, 10-9, 11-2, 11-3, 11-22, 11-23, 11-24, 11-25, 11-30,
11-31, 11-33, 11-39, 11-40, 11-42, 11-45, 11-46
seleccin C-6, E-12
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
a
r
O
S
SELECT i-4, i-5, i-30, i-31, 1-1, 1-2, 1-3, 1-4, 1-5, 1-6,
1-7, 1-9, 1-10, 1-12, 1-13, 1-14, 1-15, 1-16, 1-17, 1-18, 1-19,
1-20, 1-21, 1-22, 1-23, 1-24, 1-25, 1-28, 1-29, 1-30, 2-5, 2-6,
2-7, 2-9, 2-10, 2-11, 2-12, 2-13, 2-14, 2-16, 2-17, 2-18, 2-21,
2-23, 2-24, 2-25, 2-28, 2-29, 2-31, 2-32, 2-33, 2-35, 2-36, 2-38,
2-39, 3-2, 3-6, 3-11, 3-12, 3-14, 3-17, 3-18, 3-19, 3-21, 3-24,
3-26, 3-29, 3-30, 4-2, 4-11, 4-16, 4-19, 4-21, 4-22, 4-25, 4-26,
4-30, 4-31, 4-32, 4-34, 4-35, 4-39, 4-41, 4-42, 4-44, 5-6, 5-7,
5-8, 5-9, 5-10, 5-11, 5-14, 5-15, 5-16, 5-17, 5-18, 5-19, 5-20,
5-22, 5-23, 5-24, 5-26, 5-27, 5-28, 6-2, 6-6, 6-7, 6-10, 6-13,
6-14, 6-16, 6-17, 6-18, 6-21, 6-24, 6-28, 6-29, 6-30, 6-34, 7-2,
7-5, 7-6, 7-8, 7-10, 7-11, 7-12, 7-13, 7-14, 7-15, 7-17, 7-18,
7-19, 7-20, 7-22, 7-23, 7-25, 7-26, 8-3, 8-5, 8-6, 8-7, 8-10,
8-11, 8-12, 8-13, 8-14, 8-15, 8-17, 8-18, 8-19, 8-20, 8-21, 8-22,
8-23, 8-24, 8-25, 8-26, 8-27, 8-28, 8-29, 8-30, 9-3, 9-9, 9-12,
9-13, 9-16, 9-17, 9-18, 9-19, 9-22, 9-23, 9-25, 9-33, 9-37, 9-39,
9-40, 9-41, 9-42, 9-43, 9-44, 9-45, 9-47, 10-9, 10-33, 10-34, 10-37,
10-42, 11-5, 11-8, 11-9, 11-10, 11-11, 11-12, 11-13, 11-17, 11-19, 11-28,
11-29, B-4, B-5, B-6, B-7, B-8, B-9, B-10, C-25, D-2, D-11,
D-12, D-14, D-17, F-2, F-5, F-7, F-8, F-10, F-11, F-12, F-13,
F-15, F-17, F-18, F-19, F-21
e
d
a
y
m
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
S
sentencia i-4, i-30, 1-2, 1-3, 1-4, 1-5, 1-6, 1-7, 1-8,
1-10, 1-11, 1-12, 1-16, 1-18, 1-19, 1-21, 1-22, 1-25, 1-29, 2-6,
2-10, 2-12, 2-13, 2-14, 2-21, 2-23, 2-27, 2-28, 2-29, 2-30, 2-31,
2-32, 2-35, 2-36, 2-38, 3-12, 3-14, 4-2, 4-16, 4-25, 4-37, 4-38,
4-39, 4-40, 4-41, 4-44, 5-9, 5-15, 5-16, 5-17, 5-18, 5-19, 5-20,
5-28, 6-7, 6-14, 6-15, 7-2, 7-5, 7-8, 7-10, 7-11, 7-13, 7-14,
7-15, 7-22, 7-25, 8-4, 8-5, 8-6, 8-20, 8-22, 8-26, 8-28, 8-30,
9-2, 9-3, 9-4, 9-6, 9-8, 9-11, 9-12, 9-13, 9-15, 9-16, 9-17,
9-19, 9-21, 9-22, 9-24, 9-25, 9-26, 9-27, 9-29, 9-30, 9-31, 9-33,
9-34, 9-35, 9-36, 9-37, 9-38, 9-39, 9-40, 9-41, 9-42, 9-43, 9-44,
9-47, 10-8, 10-10, 10-11, 10-19, 10-29, 10-31, 10-33, 10-36, 10-37, 10-39,
10-41, 10-42, 11-5, 11-6, 11-8, 11-10, 11-13, 11-20, 11-25, 11-28, 11-29,
11-30, 11-31, 11-32, 11-37, 11-39, 11-43, C-13, C-16, C-19, C-23, C-25,
C-26, C-28, D-3, D-5, E-7, F-7, F-8
sinnimo i-24, 1-24, 1-26, 7-18, 11-2, 11-42, 11-43, 11-46, D-7
subconsulta 7-3, 7-4, 7-5, 7-7, 7-9, 7-10, 7-11, 7-12, 7-13,
7-14, 7-15, 7-16, 7-17, 7-18, 7-19, 7-20, 7-21, 7-22, 7-23, 7-24,
7-25, 9-12, 9-15, 9-23, 10-3, 10-7, 10-12, 10-14, 10-33, 10-35, 10-38,
10-41, 11-8, 11-9, 11-10, 11-12, 11-28
SUBSTR 3-9, 3-10, 3-13, 3-32, 4-25
SYSDATE 3-23, 3-24, 3-26, 3-29, 3-30, 3-32, 9-9, 10-10, 10-11,
10-28
e
d
a
y
m
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O
T
tabla i-19, i-20, i-25, i-27, i-28, i-30, i-34, 1-4, 1-5, 1-6,
1-7, 1-12, 1-14, 1-24, 1-26, 1-27, 1-29, 2-7, 2-9, 2-10, 2-11,
2-12, 2-16, 2-17, 2-18, 2-20, 2-24, 2-25, 2-28, 2-32, 3-12, 3-17,
3-22, 3-23, 3-24, 3-32, 4-32, 5-2, 5-4, 5-5, 5-9, 5-10, 5-11,
5-13, 5-14, 5-15, 5-17, 5-18, 6-2, 6-4, 6-6, 6-7, 6-10, 6-12,
6-14, 6-16, 6-20, 6-21, 6-23, 6-24, 6-26, 6-27, 6-28, 6-29, 6-30,
6-32, 6-33, 6-34, 6-36, 6-37, 7-5, 7-20, 8-8, 8-20, 8-23, 8-25,
8-26, 9-2, 9-3, 9-4, 9-5, 9-6, 9-7, 9-9, 9-10, 9-11, 9-12,
9-13, 9-14, 9-15, 9-16, 9-18, 9-19, 9-20, 9-21, 9-22, 9-23, 9-24,
9-25, 9-35, 9-37, 9-39, 9-41, 9-42, 9-43, 9-44, 9-47, 9-48, 10-2,
10-3, 10-4, 10-5, 10-7, 10-8, 10-9, 10-10, 10-11, 10-12, 10-13, 10-14,
10-17, 10-18, 10-19, 10-20, 10-21, 10-22, 10-23, 10-24, 10-25, 10-26, 10-27,
10-28, 10-29, 10-30, 10-31, 10-33, 10-34, 10-35, 10-36, 10-37, 10-38, 10-39,
10-40, 10-41, 10-42, 11-5, 11-6, 11-7, 11-11, 11-16, 11-26, 11-29, 11-30,
11-35, 11-36, 11-37, 11-38, 11-39, 11-41, 11-42, 11-43, 11-44, C-10, C-11,
C-13, C-14, C-15, D-4, D-5, D-7, D-8, D-12, D-13, E-6, F-2,
F-3, F-4, F-5, F-7, F-8, F-9, F-10, F-11, F-14, F-15, F-16,
F-17, F-18, F-19, F-20, F-21, F-22, F-23
TO_CHAR 4-2, 4-3, 4-7, 4-8, 4-9, 4-10, 4-11, 4-16, 4-17,
4-18, 4-19, 4-22, 4-23, 4-26, 4-27, 4-34, 4-36, 4-44, 4-45, 8-25
TO_DATE 4-2, 4-3, 4-7, 4-8, 4-9, 4-10, 4-20, 4-21, 4-22,
4-23, 4-27, 4-36, 4-44, 4-45, 9-10
TO_NUMBER 4-2, 4-3, 4-7, 4-8, 4-9, 4-10, 4-20, 4-21, 4-23,
4-27, 4-36, 4-43, 4-44
transacciones i-11, 9-2, 9-3, 9-4, 9-13, 9-19, 9-25, 9-26,
9-29, 9-38, 9-39, 9-42, 9-48, 10-39
TRIM 3-9, 3-10, 3-13
TRUNC 3-16, 3-18, 3-28, 3-30, 3-32
e
d
a
y
m
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
UNION 8-3, 8-5, 8-6, 8-7, 8-12, 8-13, 8-14, 8-15, 8-16, 8-17,
8-18, 8-21, 8-24, 8-25, 8-26, 8-27, 8-28, 8-29, 8-30, 8-31
UNIQUE 1-24, 10-3, 10-7, 10-12, 10-16, 10-17, 10-22, 10-23, 10-29, 10-32,
10-35, 10-38, 11-36, 11-37, 11-44
e
l
c
a
r
O
U
UPDATE i-31, 9-3, 9-13, 9-15, 9-16, 9-17, 9-18, 9-19, 9-25, 9-29,
9-30, 9-35, 9-39, 9-40, 9-41, 9-42, 9-43, 9-44, 9-45, 9-47, 10-30,
10-37, 11-7, 11-17, 11-28, D-17
USING 6-3, 6-5, 6-6, 6-8, 6-11, 6-13, 6-14, 6-17, 6-19, 6-22,
6-25, 6-27, 6-31, 9-44
V
VARIANCE 5-5, 5-8, 5-28
VERIFY 2-3, 2-19, 2-22, 2-26, 2-34, 2-36
vistas 10-9, 10-11, 10-39, 11-2, 11-3, 11-4, 11-5, 11-6, 11-7, 11-14,
11-17, 11-20, 11-21, 11-22, 11-33, 11-39, 11-40, 11-42, 11-45, C-10, E-6,
E-13
W
WHERE 2-3, 2-4, 2-5, 2-6, 2-7, 2-8, 2-9, 2-10, 2-11, 2-12,
2-13, 2-14, 2-15, 2-16, 2-17, 2-18, 2-19, 2-21, 2-22, 2-23, 2-26,
2-27, 2-28, 2-29, 2-31, 2-32, 2-34, 2-35, 2-36, 2-37, 2-38, 2-39,
3-6, 3-12, 3-14, 3-19, 3-21, 3-26, 3-29, 3-30, 4-11, 4-19, 4-21,
4-22, 4-25, 4-31, 4-42, 5-6, 5-7, 5-9, 5-14, 5-15, 5-18, 5-20,
5-21, 5-22, 5-24, 5-27, 5-28, 6-10, 6-14, 6-15, 6-18, 6-36, 7-2,
7-5, 7-6, 7-10, 7-11, 7-12, 7-13, 7-14, 7-15, 7-17, 7-18, 7-19,
7-20, 7-22, 7-23, 7-25, 8-5, 9-9, 9-12, 9-15, 9-16, 9-17, 9-18,
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
e
d
a
c
A
9-21, 9-22, 9-23, 9-35, 9-37, 9-41, 9-43, 9-44, 9-45, 10-30, 10-31,
10-34, 11-9, 11-10, 11-12, 11-17, 11-19, 11-38, F-4, F-7, F-10, F-11,
F-12, F-13, F-15, F-17, F-18, F-19, F-21, F-22
X
e
l
c
y
m
a
r
O
y
m
e
d
a
e
l
c
e
l
c
a
r
O ly
& On
l
a e
n
r
s
e
t
U
n
I
c
A
a
r
O