Documentos de Académico
Documentos de Profesional
Documentos de Cultura
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
Oracle Database:
8 4 4 eConceptos
n t
a r d0 Studde SQL I
Fundamentales
( r ich this
i r ez use
R to II • Guía del Alumno
am se Volumen
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
D64258CS10
Edición 1.0
Enero de 2010
D73591
Autores Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
t m ai eฺ
Hilda Simon
@ ho Guid
U.S. GOVERNMENT RIGHTS
The U.S. Government’s rights to use, modify, reproduce, release, perform, display, or
Tulika Srivastava
8 4 4 ent
disclose these training materials are restricted by the terms of the applicable Oracle
d0 Stud
license agreement and/or the applicable U.S. Government contract.
Redactor a r
ich this
Aviso de Marca Registrada
Amitha Narayan ( r
z use Oracle es una marca comercial registrada de Oracle Corporation y/o sus filiales.
i r e Todos los demás nombres pueden ser marcas comerciales de sus respectivos
Diseñador Gráfico
R am se to propietarios.
Rajiv Chandrabhanu
o p ez licen
Publicador
r d o L rable
ica nsfe
Jobi Varghese
R
c s on n-tra
i no
Ed
Contenido
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
I Introducción
Objetivos I-2
Agenda I-3
Objetivos del Curso I-4
Agenda I-5
Apéndices Utilizados en el Curso I-7
s a
) ha
Agenda I-8
l ฺ c om
Oracle Database 11g: Áreas de Atención I-9
Oracle Database 11g I-10
t m ai eฺ
@ ho Guid
Oracle Fusion Middleware I-12
Oracle Enterprise Manager Grid Control I-13
8 4 4 ent
Oracle BI Publisher I-14
a
Agenda I-15r d0 Stud
( r ich this
Sistema de Gestión de Bases de Datos Relacionales y Relacionales de Objetos I-16
i r ez use
Almacenamiento de Datos en Diferentes Medios Físicos I-17
R am se to
Concepto de Base de Datos Relacional I-18
iii
1 Recuperación de Datos Mediante la Sentencia SQL SELECT
Objetivos 1-2
Agenda 1-3
Capacidades de las Sentencias SQL SELECT 1-4
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
iv
Uso de Condiciones de Rango mediante el Operador BETWEEN 2-10
Condición de Miembro mediante el Operador IN 2-11
Coincidencia de Patrones mediante el Operador LIKE 2-12
Combinación de Caracteres Comodín 2-13
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
a r d0 Stud
Uso de la Variable de Sustitución de Un Solo Ampersand 2-29
( r ich this
Valores de Fecha y Carácter con Variables de Sustitución 2-31
Especificación de Nombres de Columna, Expresiones y Texto 2-32
i r ez use
Uso de Variables de Sustitución de Dos Ampersands 2-33
R am se to
Agenda 2-34
o p ez licen
Uso del Comando DEFINE 2-35
Uso d
L le
deloComandobVERIFY 2-36
a r fe r a
R icPruebans2-37
s - tra 2-38
on nResumen
i c no Práctica 2: Visión General 2-39
Ed
3 Uso de Funciones de Una Sola Fila para Personalizar la Salida
Objetivos 3-2
Agenda 3-3
Funciones SQL 3-4
Dos Tipos de Funciones SQL 3-5
Funciones de Una Sola Fila 3-6
Agenda 3-8
Funciones de Carácter 3-9
Funciones de Conversión de Caracteres 3-11
Using Case-Conversion Functions 3-12
Uso de Funciones de Conversión de Caracteres 3-12
Funciones de Manipulación de Caracteres 3-13
Uso de las Funciones de Manipulación de Caracteres 3-14
v
Agenda 3-15
Funciones Numéricas 3-16
Uso de la Función ROUND 3-17
Uso de la Función TRUNC 3-18
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
8 4 4 ent
Resumen 3-32
a r d0 Stud
ich this
Práctica 3: Visión General 3-33
( r
z useCondicionales
4 Uso de Funciones de Conversión iyre Expresiones
Objetivos 4-2 R am se to
Agenda 4-3
o p ez licen
Funciones de o L ble4-4
Conversión
r d
a Implícita ra Tipo de Dato 4-5
edel
i c
Conversión
R raExplícita s f
n del Tipo de Dato 4-7
s o n
Conversión
- t
d ic Agenda
n on 4-10
E Uso de la Función TO_CHAR con Fechas 4-11
Elementos del Modelo de Formato de Fecha 4-12
Uso de la Función TO_CHAR con Fechas 4-16
Uso de la Función TO_CHAR con Números 4-17
Uso de Funciones TO_NUMBER y TO_DATE 4-20
Uso de las Funciones TO_CHAR y TO_DATE con el Formato de Fecha RR 4-22
Agenda 4-23
Funciones de Anidación 4-24
Funciones de Anidación: Ejemplo 1 4-25
Funciones de Anidación: Ejemplo 2 4-26
Agenda 4-27
Funciones Generales 4-28
Función NVL 4-29
Uso de la Función NVL 4-30
vi
Uso de la Función NVL2 4-31
Uso de la Función NULLIF 4-32
Uso de la Función COALESCE 4-33
Agenda 4-36
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
vii
6 Visualización de Datos de Varias Tablas Utilizando Uniones
Objetivos 6-2
Agenda 6-3
Obtención de Datos de Varias Tablas 6-4
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
ich this
Aplicación de Condiciones Adicionales a una Unión 6-18
Agenda 6-19 ( r
ez use
Unión de una Tabla consigo Misma ir6-20
R am ON
Autouniones que Utilizan la Cláusula e to
6-21
p e z cens
e li
Agenda 6-22
o Lo b6-23
Uniones no igualitarias l
c ard desRegistros
Recuperación
i f era con Uniones no Igualitarias 6-24
n R 6-25
Agenda r an
s o - t
d n on de Registros sin Coincidencia Directa con las uniones OUTER 6-26
ic Devolución
E Uniones INNER frente a Uniones OUTER 6-27
LEFT OUTER JOIN 6-28
RIGHT OUTER JOIN 6-29
FULL OUTER JOIN 6-30
Agenda 6-31
Productos Cartesianos 6-32
Generación de un Producto Cartesiano 6-33
Creación de Uniones Cruzadas 6-34
Prueba 6-35
Resumen 6-36
Práctica 6: Visión General 6-37
viii
7 Uso de Subconsultas para Solucionar Consultas
Objetivos 7-2
Agenda 7-3
Uso de una Subconsulta para Solucionar Problemas 7-4
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
ix
Operador INTERSECT 8-19
Uso del Operador INTERSECT 8-20
Agenda 8-21
Operador MINUS 8-22
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
x
Transacciones de la Base de Datos: Inicio y Fin 9-27
Ventajas de las Sentencias COMMIT y ROLLBACK 9-28
Sentencias de Control de Transacciones Explícitas 9-29
Rollback de los Cambios de un Marcador 9-30
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
xi
Restricción PRIMARY KEY 10-24
Restricción FOREIGN KEY: Palabras Clave 10-27
Restricción CHECK 10-28
Sentencia CREATE TABLE: Ejemplo 10-29
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
xii
Instrucciones para Modificar una Secuencia 11-32
Agenda 11-33
Índices 11-34
¿Cómo se Crean los Índices? 11-36
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
xiii
Informes de Bases de Datos C-27
Creación de un Informe Definido por el Usuario C-28
Motores de Búsqueda y Herramientas Externas C-29
Definición de Preferencias C-30
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
xiv
¿Cómo Puedo Obtener más Información sobre JDeveloper 11g? E-17
Resumen E-18
Objetivos F-2
Obtención de Datos de Varias Tablas F-3
Productos Cartesianos F-4
Generación de un Producto Cartesiano F-5
Tipos de Uniones Propiedad de Oracle F-6
Unión de Tablas mediante la Sintaxis de Oracle F-7
Cualificación de Nombres de Columna Ambiguos F-8
Uniones igualitarias F-9 s a
Recuperación de Registros con Uniones Igualitarias F-10 ) ha
l ฺ c om
Recuperación de Registros con Uniones Igualitarias: Ejemplo F-11
t m ai eฺ
Condiciones de Búsqueda Adicionales Mediante el Operador AND F-12
ho Guid
Unión de Más de Dos Tablas F-13
@
8 4 4 ent
Uniones no Igualitarias F-14
r d0 Stud
Recuperación de Registros con Uniones no Igualitarias F-15
a
r ich this
Devolución de Registros sin Coincidencia Directa con las Uniones Externas F-16
(
i r ez use
Uniones Externas: Sintaxis F-17
R am se to
Uso de Uniones Externas F-18
xv
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Apéndice A
Prácticas y Soluciones
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Tabla de Contenido
Prácticas para la Lección I ........................................................................................................ 3
Práctica I-1: Introducción ............................................................................................... 4
Soluciones a la Práctica I-1: Introducción ...................................................................... 5
Prácticas de la Lección 1......................................................................................................... 11
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
t m ai eฺ
Práctica 4-1: Uso de Funciones de Conversión y Expresiones Condicionales............. 36
ho Guid
Soluciones a la Práctica 4-1: Uso de Funciones de Conversión y Expresiones
Condicionales................................................................................................................ 39
@
4 4 ent
Prácticas de la Lección 5......................................................................................................... 41
8
a r d0 Stud
Práctica 5-1: Informes de Datos Agregados con Funciones de Grupo ......................... 42
( r ich this
Soluciones a la Práctica 5-1: Informes de Datos Agregados con Funciones de
Grupo ............................................................................................................................ 45
i r ez use
Prácticas de la Lección 6......................................................................................................... 48
R am se to Práctica 6-1: Visualización de Datos de Varias Tablas Utilizando Uniones ................ 49
En las prácticas, puede que haya ejercicios que estén precedidos por las frases “Si tiene
tiempo” o “Si desea superarse a sí mismo”. Realice estos ejercicios sólo si ha terminado s a
el resto de ejercicios en el tiempo asignado y si desea poner a prueba sus habilidades. ) ha
l ฺ c om
Realice las prácticas despacio y de forma precisa. Puede experimentar guardando
t m ai y eฺ
ejecutando los archivos de comandos. Si tiene alguna duda en cualquieromomento,d
pregunte a su instructor. @ h Gui
8 4 4 ent
Nota
a r d0 Stud
1) Todas las prácticas escritas utilizan Oracle ( r ch Developer
iSQL this como entorno de
desarrollo. Aunque se recomienda i r z
e Oracle
utilizar u e
s SQL Developer, también puede usar
SQL*Plus, disponible en esteam curso.
e t o
R s
o ez la secuencia
2) Para cualquier consulta,
p l i c en de filas recuperadas de la base de datos puede
L a blalque
variar con respecto
o e se muestra en las capturas de pantalla.
i c ard sfera
n R ran
i c s o
o n -t
Ed n
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Creación de Nuevas Conexiones a la Base de Datos de Oracle SQL Developer
2) Para crear una nueva conexión a la base de datos, en el navegador de conexiones,
haga clic con el botón derecho del mouse en Connections y seleccione New
Connection en el menú.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 44 dent
3) Cree una conexión a la base de datos con la siguiente0información:
a) Connection Name: myconnection cha
rd Stu
z ( ri e this
b) Username: ora1
m ire to us
c) Password: ora1
z Ra nse
p e lice
d) Hostname: localhost
o
e) Port:r d o L rable
1521
R ica ORCL
f) SID:a n sfe
s n
oAsegúrese
- tr
d i c n n
o de activar la casilla de control Save Password.
E
s a
) ha
l ฺ c om
t m ai eฺ
@ ho SQL
Prueba y Conexión mediante la Conexión a la Base de Datos de Oracle
G u id
Developer
8 4 4 ent
4) Pruebe la nueva conexión.
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
hode SQL
Al crear una conexión, automáticamente se abre una hoja de trabajo
@ G
id
upara
dicha conexión. 8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
7) Examine la estructura de la tabla EMPLOYEES.
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Verdadero/Falso
s a
2) La siguiente sentencia SELECT se ejecuta correctamente:
) ha
SELECT *
l ฺ c om
FROM job_grades;
t m ai eฺ
@ ho Guid
Verdadero/Falso 8 4 4 ent
a r d0 Stud
( r
3) En la siguiente sentencia hay cuatro errores icdehcodificación.
this ¿Puede identificarlos?
z
re o us
ilast_name e
SELECT employee_id, m
a se t
sal x 12 ANNUAL SALARY R
FROM ez licen
employees;
o p
r d o L rable
Parte
R i2ca nsfe
s oTenga n tra los siguientes puntos antes de iniciar las prácticas:
n en-cuenta
i c n•o Guarde todos los archivos de los ejercicios prácticos en la siguiente ubicación:
Ed
/home/oracle/labs/sql1/labs
• Introduzca las sentencias SQL en una hoja de trabajo de SQL. Para guardar un
script en SQL Developer, asegúrese de que la hoja de trabajo de SQL necesaria
está activa y, a continuación, 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, asegúrese de que utiliza Save As para guardarlo
con un nombre de archivo diferente.
• Para ejecutar una consulta, haga clic en el icono Execute Statement en la hoja de
trabajo de SQL. Como alternativa, puede pulsar [F9]. Para sentencias DML y
DDL, utilice el icono Run Script o pulse [F5].
• Una vez ejecutada la consulta, asegúrese de que no introduce la siguiente consulta
en la misma hoja de trabajo. Abra una hoja de trabajo nueva.
Se le ha contratado como programador de SQL para Acme Corporation. Su primera tarea
es crear algunos informes según los datos de las tablas de recursos humanos.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
5) Determine la estructura de la tabla EMPLOYEESa . rd
0 tud
r i c h his S
z ( e t
r e s
a mi e to u
z R ns
o p e l i c e
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
7) El departamento de recursos humanos desea una consulta para mostrar todos los ID s a
de cargo únicos de la tabla EMPLOYEES. ) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i Parteno3
Ed
Si tiene tiempo, realice los siguientes ejercicios:
8) El departamento de recursos humanos desea cabeceras de columna más descriptivas
para su informe sobre empleados. Copie la sentencia de lab_01_05.sql en una
nueva hoja de trabajo de SQL. Asigne a las cabeceras de columna los nombres Emp
#, Employee, Job y Hire Date, respectivamente. A continuación, vuelva a ejecutar
la consulta.
s a
) ha
l ฺ c om
…
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r
Si desea superarse a sí mismo, complete el siguienteich ejercicio:
this
z
iderela tabla us e
m
a seSepare cada salida, cree
10) Para familiarizarse con los datos t o EMPLOYEES una consulta para
mostrar todos los datos deRdicha tabla. de la columna por una
coma. Asigne a lap
o ez lelictítulo
columna en THE_OUTPUT.
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Verdadero/Falso
s a
2) La siguiente sentencia SELECT se ejecuta correctamente:
) ha
SELECT *
l ฺ c om
FROM job_grades;
t m ai eฺ
@ ho Guid
Verdadero/Falso 8 4 4 ent
a r d0 Stud
( r
3) En la siguiente sentencia hay cuatro errores icdehcodificación.
this ¿Puede identificarlos?
z
re o us
ilast_name e
SELECT employee_id, m
a se t
sal x 12 ANNUAL SALARY R
FROM p ez licen
employees;
o
L ble
o EMPLOYEES
La a r d
tabla
e ra no contiene ninguna columna denominada sal. La
i c
R columna s f
n se denomina SALARY.
o n t r a
d ics nonEl- operador de multiplicación es *, no x, como se muestra en la línea 2.
E
El alias ANNUAL SALARY no puede incluir espacios. El alias debe ser
ANNUAL_SALARY o se deben incluir entre comillas dobles.
R ica nsfe
s n 3 -tra
oParte
d c ontiempo, realice los siguientes ejercicios:
i Si ntiene
E
8) El departamento de recursos humanos desea cabeceras de columna más descriptivas
para su informe sobre empleados. Copie la sentencia de lab_01_05.sql en una
nueva hoja de trabajo de SQL. Asigne a las cabeceras de columna los nombres Emp
#, Employee, Job y Hire Date, respectivamente. A continuación, vuelva a ejecutar
la consulta.
SELECT employee_id "Emp #", last_name "Employee",
job_id "Job", hire_date "Hire Date"
FROM employees;
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
2) Abra una hoja de trabajo de SQL nueva. Cree un informe que muestre el apellido y el
t m ai eฺ
número de departamento para el número de empleado 176. Ejecute la consulta.
@ ho Guid
8 4 4 ent
a r d0 Stud
h his
(ric encontrar
3) El departamento de recursos humanosznecesita e t los empleados con salarios
tanto altos como bajos. Modifique r e u
i lab_02_01.sqls para mostrar el apellido y el
a m t o
z R nse
salario de cualquier empleado cuyo salario no esté entre 5.000 y 12.000 dólares.
Guarde la sentencia
o p eSQL como
l i c elab_02_03.sql.
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
t m ai eฺ
a guardar lab_02_03.sql como lab_02_06.sql. Ejecute la sentencia en el
archivo lab_02_06.sql.
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R
7) El departamento de recursos
m enecesita
ahumanos to un informe que muestre el apellido y
e z de todos
la fecha de contratación
p c e nloss empleados contratados durante el año 1994.
o Lo ble li
i c ard sfera
n R ran
i c s o
o n -t
Ed n
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 comisión de todos los empleados que
perciben comisiones. Ordene los datos en orden descendente de salario y comisiones.
Utilice la posición numérica de la columna en la cláusula ORDER BY.
siguientes resultados:
s a
11) El departamento de recursos humanos desea ejecutar informes basados en un ) ha
l ฺ c om
supervisor. Cree una consulta que solicite al usuario un ID de supervisor y genere el
t m ai eฺ
ID de empleado, apellido, salario y departamento de los empleados de ese supervisor.
@ ho Guid
El departamento de recursos humanos desea ordenar el informe en una columna
seleccionada. Puede probar los datos con los siguientes valores:
8 4 4 ent
manager_id = 103, ordenado por last_name:
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licporensalary:
manager_id = 201, ordenado
r d o L rable
R ica nsfe
s n - tra = 124, ordenado por employee_id:
on manager_id
i c no
Ed
8) Cree un informe para mostrar el apellido y el puesto de todos los empleados que no
tienen un supervisor.
SELECT last_name, job_id
FROM employees
WHERE manager_id IS NULL;
9) Cree un informe para mostrar el apellido, salario y comisión de todos los empleados s a
que perciben comisiones. Ordene los datos en orden descendente de salario y ) ha
c om
comisiones. Utilice la posición numérica de la columna en la cláusula ORDER BY.
l ฺ
SELECT last_name, salary, commission_pct t m ai eฺ
FROM employees
@ ho Guid
WHERE commission_pct IS NOT NULL
8 4 4 ent
ORDER BY 2 DESC, 3 DESC;
a r d0 Stud
h hidesean
10) Los miembros del departamento de recursos
con las consultas que está creando. Les z ( r ichumanos
gustaría e t unsinforme
tener
tener más flexibilidad
que muestre el
i
apellido y el salario de los empleados r e que ganen
u s más de una cantidad especificada por
el usuario después de unaR a m t o
e utilizar la consulta creada en el ejercicio
solicitud.s(Puede
p e z
práctico 1 y modificarla). c
Guarde e n esta consulta en un archivo denominado
o l i
lab_02_10.sql
r d o L r. able
R i ca nlast_name,
SELECT s fe salary
s on WHERE
FROM
n - tra salary > &sal_amt;
employees
i c no
Ed Introduzca 12000 cuando se le solicite un valor en un cuadro de diálogo. Haga clic
en OK.
FROM employees
WHERE manager_id = &mgr_num
ORDER BY &order_col;
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Nota: si la base de datos se ubica de forma remota en una zona horaria diferente, la
salida será la fecha del sistema operativo en el que reside la base de datos.
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
mayúscula) cuando se le solicita que introduzca una letra, la salida debe mostrar a s a
todos los empleados cuyos apellidos empiecen por la letra "H". ) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stdeudla letra introducida no
Modifique la consulta de forma que la mayúscula/minúscula
r
afecte a la salida. La letra introducida debe
h en mayúscula
icestar his antes de que la procese
z ( e t
la consulta SELECT.
m ire to us
z Ra nse
o p e lice
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
Si tiene tiempo, realice los siguientes ejercicios:
l ฺ c om
7) Cree una consulta para mostrar el apellido y el salario de todos los empleados.
t m ai eฺ
Formatee el salario para que tenga 15 caracteres de longitud y tenga un relleno hacia
ho Guid
la izquierda con el símbolo $. Etiquete la columna como SALARY.
@
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
… o p ez licen
r d o L rable
R ica nsfe
s traconsulta que muestre los primeros ocho caracteres de los apellidos de los
o8)n Creen-una
i c o
Ed nempleados y que indique las cantidades de sus salarios con asteriscos. Cada asterisco
significa mil dólares. Ordene los datos en orden descendente de salarios. Etiquete la
columna como EMPLOYEES_AND_THEIR_SALARIES.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Nota: si la base de datos se ubica de forma remota en una zona horaria diferente, la
salida será la fecha del sistema operativo en el que reside la base de datos.
SELECT sysdate "Date"
FROM dual;
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 mayúscula)
cuando se le solicita que introduzca una letra, la salida debe mostrar a todos los
empleados cuyos apellidos empiecen por la letra "H".
ORDER BY last_name;
a r d0 Stud
trabajado. Redondee el número de meses hasta el número entero más cercano.
Nota: debido a que esta consulta depende ( r ichla fechathdeisejecución, los valores de la
de
columna MONTHS_WORKED serán i r z use
ediferentes.
R am se to
SELECT last_name, ROUND(MONTHS_BETWEEN(
SYSDATE, e
p z cen MONTHS_WORKED
hire_date))
FROM L
employeeso l e li
ORDER BY o ab
rd months_worked;
r
c a f e
n
Si Ri tiempo,
tiene r a n s
realice los siguientes ejercicios:
s o n - t
c
i 7) nCree o una consulta para mostrar el apellido y el salario de todos los empleados.
Ed Formatee el salario para que tenga 15 caracteres de longitud y tenga un relleno hacia
la izquierda con el símbolo $. 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 dólares. Ordene los datos en orden descendente de salarios. Etiquete la
columna como EMPLOYEES_AND_THEIR_SALARIES.
SELECT rpad(last_name, 8)||' '||
rpad(' ', salary/1000+1, '*')
EMPLOYEES_AND_THEIR_SALARIES
FROM employees
ORDER BY salary DESC;
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
…
l ฺ c om
t m ai eฺ
2) Muestre el apellido, fecha de contratación y fecha de revisión de h
o cada
salario de u id
empleado, que es el primer lunes después de seis meses de 4 @ t G
4contrato.enEtiquete la
columna como REVIEW. Formatee las fechas para que 8
d0aparezcan uden un formato
a r S t
( r ich this
similar a “Lunes treinta y uno de julio de 2000”.
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on … n-tra
i no
Ed
3) Muestre el apellido, fecha de contratación y día de la semana en el que empezó a
trabajar el empleado. Etiquete la columna como DAY. Ordene los resultados por el día
de la semana, empezando por el lunes.
…
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
Si tiene tiempo, realice los siguientes ejercicios:
a r d0 Stud
5) Con la función DECODE, escriba una consulta
( r ichque muestre
t his el grado de todos los
empleados según el valor de la columna
i r z
e JOB_ID u e
s , utilizando los siguientes datos:
Cargo am se t
Grado o
R
AD_PRES
ST_MAN o p ez ABlicen
IT_PROG o
L ble C
SA_REP r d
a sfera D
R i c
ST_CLERKn E
o n t r a
ics non-
None of the above 0
Ed
…
s a
) ha
… l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
5) Con la función DECODE, escriba una consulta que muestre el grado de todos los
empleados según el valor de la columna JOB_ID, utilizando los siguientes datos:
Cargo Grado
AD_PRES A
ST_MAN B
IT_PROG C
SA_REP D
ST_CLERK E
None of the above 0
'ST_MAN', 'B',
'AD_PRES', 'A',
'0')GRADE
FROM employees;
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Verdadero/Falso
2) Las funciones de grupo incluyen valores nulos en los cálculos.
Verdadero/Falso
3) La cláusula WHERE restringe las filas antes de incluirlas en un cálculo de grupo.
Verdadero/Falso
t m ai eฺ
los empleados. Etiquete las columnas como Maximum, Minimum, Sum y Average,
respectivamente. Redondee los resultados al número entero más cercano. Guarde la
ho Guid
sentencia SQL como lab_05_04.sql. Ejecute la consulta.
@
8 4 4 ent
a r d0 Stud
( r ich thpara is mostrar el valor mínimo, el
z
5) Modifique la consulta del archivo lab_05_04.sql e
e salarioudes cada tipo de cargo. Vuelva a guardar
valor máximo, la suma y la mediairdel
R a se to. Ejecute la sentencia en el archivo
m
lab_05_04.sql como lab_05_05.sql
lab_05_05.sqlp . ez c en
o l i
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
Generalice la consulta para preguntar al usuario del departamentohde orecursosuid
@
4 ent
humanos cuál es su puesto. Guarde el script en un archivo4denominado G
lab_05_06.sql. Ejecute la consulta. Introduzca IT_PROG d 8
0 tcuando
u d se le solicite.
r
ha his S
( r i c t
r e z s e
a
7) Determine el número de gestores t o u en una lista. Etiquete la columna
misin eenumerarlos
z R ns
Number of Managers
o p e .
l i c e
o L ble MANAGER_ID para determinar el número de gestores.
Indicación: utilice la columna
i c ard sfera
n R ran
i c o
s 8) Busque
o n -t la diferencia entre los salarios más altos y más bajos. Etiquete la columna
Ed ncomo DIFFERENCE.
11) Cree una consulta de matriz para mostrar el cargo, el salario de ese cargo según el
número de departamento y el salario total del cargo para los departamentos 20, 50, 80
y 90, proporcionando a cada columna una cabecera adecuada.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Verdadero/Falso
2) Las funciones de grupo incluyen valores nulos en los cálculos.
Verdadero/Falso
3) La cláusula WHERE restringe las filas antes de incluirlas en un cálculo de grupo.
Verdadero/Falso
l ฺ om
los empleados. Etiquete las columnas como Maximum, Minimum, Sum y Average,
c
respectivamente. Redondee los resultados al número entero más cercano. Guarde la
m ai eฺ
sentencia SQL como lab_05_04.sql. Ejecute la consulta.
t
SELECT ROUND(MAX(salary),0) "Maximum", @ ho Guid
ROUND(MIN(salary),0) "Minimum", 84
4 ent
ROUND(SUM(salary),0) "Sum", rd0 t ud
a S
FROM
ROUND(AVG(salary),0) "Average"
employees; ( r ich this
i r ez use
R a e to
m lab_05_04.sql
5) Modifique la consulta del archivo para mostrar el valor mínimo,
el valor máximo, la suma
e z y lacomomedia
e s del salario de cada tipo de cargo. Vuelva a
nlab_05_05.sql.
L o p
guardar lab_05_04.sql l i c Ejecute la sentencia en el
l e
a r do erab
archivo lab_05_05.sql.
ic job_id,
SELECT
R n s f ROUND(MAX(salary),0) "Maximum",
c s on n-tra ROUND(MIN(salary),0) "Minimum",
d i n o ROUND(SUM(salary),0) "Sum",
E ROUND(AVG(salary),0) "Average"
FROM employees
GROUP BY job_id;
6) Escriba una consulta para mostrar el número de personas con el mismo cargo.
SELECT job_id, COUNT(*)
FROM employees
GROUP BY job_id;
Generalice la consulta para preguntar al usuario del departamento de recursos
humanos cuál es su puesto. Guarde el script en un archivo denominado
lab_05_06.sql. Ejecute la consulta. Introduzca IT_PROG cuando se le solicite y
haga clic en OK.
SELECT job_id, COUNT(*)
FROM employees
WHERE job_id = '&job_title'
GROUP BY job_id;
8) Busque la diferencia entre los salarios más altos y más bajos. Etiquete la columna
como DIFFERENCE.
SELECT MAX(salary) - MIN(salary) DIFFERENCE
FROM employees;
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
4) Cree un informe para mostrar el apellido y número de empleado junto con el apellido
y número 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.
5) Modifique lab_06_04.sql para mostrar todos los empleados, incluido King, que no
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
tienen gestor. Ordene los resultados por número de empleado. Guarde la sentencia
SQL como lab_06_05.sql. Ejecute la consulta en el archivo lab_06_05.sql.
s a
) ha
…
l ฺ c om
t m ai eฺ
@ ho Guid
6) Cree un informe del departamento de recursos humanos 8 4
que
4muestre
e n t apellidos y
los
números de empleado y todos los empleados que a r d0 S
trabajen
d departamento
umismo
entel
como un empleado determinado. Proporcione
( r icha cadathcolumna
is una etiqueta adecuada.
i r e z
Guarde el script en un archivo denominado s e
lab_06_06.sql
u .
am se t o
R
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i n…o
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Zlotkey, se buscarán todos los empleados que trabajen con Zlotkey (excepto Zlotkey).
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 44 ydsalario
2) Cree un informe que muestre el número de empleado,0apellido e nt de todos los
empleados que ganan más del salario medio. h a rd los resultados
Ordene S tu en orden
ascendente de salario.
z (ric e this
m ire to us
z Ra nse
o p e lice
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
3) Escriba una consulta que muestre el número 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.
l ฺ c om
5) Cree un informe para el departamento de recursos humanos que muestre el apellido y
t m ai eฺ
el salario de cada empleado que realice informes para King.
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
6) Cree un informe para z departamento
el n de recursos humanos que muestre el número de
ope leeIDlide
departamento,Lapellido cecargo de cada empleado del departamento Executive.
o
rd ferab
c a
n Ri rans
i c so on-t
Ed n
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:
8) Modifique la consulta del archivo lab_07_03.sql para mostrar el número de
empleado, apellido y salario de todos los empleados que ganan más del salario medio
y que trabajan en un departamento con cualquier empleado cuyo apellido contiene
una "u". Vuelva a guardar lab_07_03.sql como lab_07_08.sql. Ejecute la
sentencia en el archivo lab_07_08.sql.
8 4 4 eenntorden
empleados que ganan más del salario medio. Ordene los resultados
ascendente de salario.
a r d0 Stud
SELECT employee_id, last_name, isalary
( r ch this
FROM employees
WHERE salary > (SELECT iAVG(salary)r ez use
FROM
R e to
am employees)
ORDER BY salary;z
p e c e ns
3) Escriba una consulta
li el número de empleado y el apellido de todos los
Lo bquelemuestre
o
i c ard que
empleados
s f e ra en un departamento con un empleado cuyo apellido contiene
trabajan
n R r a n la sentencia SQL en un archivo denominado lab_07_03.sql.
una "u". Guarde
o t
d on- la consulta.
ics nEjecute
E SELECT employee_id, last_name
FROM employees
WHERE department_id IN (SELECT department_id
FROM employees
WHERE last_name like '%u%');
4) El departamento de recursos humanos necesita un informe que muestre el apellido,
número de departamento e ID de cargo de todos los empleados cuyo ID de ubicación
de departamento sea 1700.
SELECT last_name, department_id, job_id
FROM employees
WHERE department_id IN (SELECT department_id
FROM departments
WHERE location_id = 1700);
R ic last_name
SELECT
n s f FROM employees
o n WHERE
- t r a
salary > ANY (SELECT salary
i c s o n FROM employees
Ed n WHERE department_id=60);
Si tiene tiempo, realice el siguiente ejercicio:
8) Modifique la consulta del archivo lab_07_03.sql para mostrar el número de
empleado, apellido y salario de todos los empleados que ganan más del salario medio
y que trabajan en un departamento con cualquier empleado cuyo apellido contiene
una "u". Vuelva a guardar lab_07_03.sql como lab_07_08.sql. Ejecute la
sentencia en el archivo lab_07_08.sql.
SELECT employee_id, last_name, salary
FROM employees
WHERE department_id IN (SELECT department_id
FROM employees
WHERE last_name like '%u%')
AND salary > (SELECT AVG(salary)
FROM employees);
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
2) El departamento de recursos humanos necesita una lista de países que no tienen ) ha
l ฺ c om
ningún departamento. Muestre el ID de país y el nombre de los países. Utilice los
operadores de definición para crear este informe.
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
3) Cree una lista de cargos para los departamentos
r i c h 50
10,
h iys20, en ese orden. Muestre los
ID de cargo y departamento mediante los
z ( operadores
e t de definición.
r e s
a mi e to u
z R ns
o p e l i c e
r d o L rable
R ica nsfe
c s on n-tra
i 4) nCreeo un informe que muestre los ID de empleado y de cargo de los empleados que
Ed actualmente tienen un puesto que es el mismo que tenían cuando fueron contratados
(es decir, han cambiado de cargo pero ahora han vuelto a su puesto original).
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
SELECT department_id
FROM departments
MINUS
SELECT department_id
FROM employees
WHERE job_id = 'ST_CLERK'
2) El departamento de recursos humanos necesita una lista de países que no tienen
s a
ningún departamento. Muestre el ID de país y el nombre de los países. Utilice los
) ha
operadores de definición para crear este informe.
l ฺ c om
SELECT country_id,country_name a i ฺ
FROM countries t m
o uide
h
MINUS
SELECT l.country_id,c.country_name
8 4 4@ ent G
FROM locations l JOIN countries c
ON (l.country_id = c.country_id) ha
rd0 Stud
JOIN departments d
z (ric e this
ON d.location_id=l.location_id;
m ire to us
Ralos ndepartamentos
3) Cree una lista de cargos para
z selos operadores
10, 50 y 20, en ese orden. Muestre los
o p e
ID de cargo y departamento
l i c e
mediante de definición.
o L rabjob_id,
SELECTddistinct
r
le department_id
FROMa
ic nsfe
employees
R a
WHERE department_id
n UNION-trALL = 10
s o
d on DISTINCT job_id, department_id
ic nSELECT
E FROM employees
WHERE department_id = 50
UNION ALL
SELECT DISTINCT job_id, department_id
FROM employees
WHERE department_id = 20
4) Cree un informe que muestre los ID de empleado y de cargo de los empleados que
actualmente tienen un puesto que es el mismo que tenían 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;
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
c s on n-tra
i no1
Ed Patel Ralph rpatel 895
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 cláusula INSERT. No introduzca aún todas las filas.
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.
s a
7) Rellene la tabla con las dos siguientes filas de ejemplo mostradas en el paso 3
) ha
l ฺ c om
mediante la ejecución de la sentencia INSERT en el script que ha creado.
8) Confirme las adiciones a la tabla.
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
9) Convierta las adiciones de datos
R e to
amenspermanentes.
o p ez licen
Actualice y d
r o L rdatos
suprima a blede la tabla MY_EMPLOYEE.
10)R ica el napellido
Cambie s fe del empleado 3 a Drexler.
s n Cambie
o11) n - trela salario a 1.000 dólares para todos los empleados con un salario inferior a
i c o
Ed n900.
12) Verifique los cambios en la tabla.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
FROM 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',
s a
) ha
'&p_userid', &p_salary);
l ฺ c om
7) Rellene la tabla con las dos siguientes filas de ejemplo mostradas en el paso 3
t m ai eฺ
mediante la ejecución de la sentencia INSERT en el script que ha creado.
INSERT INTO my_employee
@ ho Guid
VALUES (&p_id, '&p_last_name', '&p_first_name',
8 4 4 ent
'&p_userid', &p_salary);
a r d0 Stud
8) Confirme las adiciones a la tabla.
( r ich this
SELECT * i r ez use
FROM my_employee;
R am se to
p ezde datos
9) Convierta las adiciones
o l i c enen permanentes.
COMMIT;
r d o L rable
R ica nsfe
s n
oActualice
n - tyrasuprima datos de la tabla MY_EMPLOYEE.
i c no
Ed 10) Cambie el apellido del empleado 3 a Drexler.
UPDATE my_employee
SET last_name = 'Drexler'
WHERE id = 3;
11) Cambie el salario a 1.000 dólares para todos los empleados con un salario inferior a 900.
UPDATE my_employee
SET salary = 1000
WHERE salary < 900;
SELECT *
FROM my_employee;
@ ho Guid
17) Confirme la adición a la tabla.
8 4 4 ent
SELECT *
a r d0 Stud
FROM my_employee;
( r ich this
ez usede la transacción.
18) Marque un punto intermedio en elrprocesamiento
i
SAVEPOINT step_17; Ra
m e to
p e z cens
Lo filasbldee lalitabla MY_EMPLOYEE.
19) Suprima todas las
o
DELETE d era
army_employee;
R i
FROMc n s f
s n Confirme
o20) n - traque la tabla está vacía.
i c o
Ed nSELECT *
FROM my_employee;
21) Deseche la operación DELETE más reciente sin desechar la operación INSERT
anterior.
ROLLBACK TO step_17;
tanto, no se debe solicitar el script para el USERID. Guarde este script en un archivo
denominado lab_09_24.sql.
SET ECHO OFF
SET VERIFY OFF
INSERT INTO my_employee
VALUES (&p_id, '&&p_last_name', '&&p_first_name',
lower(substr('&p_first_name', 1, 1) ||
substr('&p_last_name', 1, 7)), &p_salary); s a
SET VERIFY ON ) ha
SET ECHO ON
l ฺ c om
UNDEFINE p_first_name
UNDEFINE p_last_name t m ai eฺ
@ ho Guid
25) Ejecute el script lab_09_24.sql para insertar el siguiente4registro:
8 4 e n t
ID LAST_NAME FIRST_NAME a r d0 StUSERID
ud SALARY
r i c h his
z ( e t
6 Anthony
i r eMark
u s manthony 1230
am
26) Confirme que se ha agregado
R la nuevae tocon el USERID correcto.
fila
p e z cens
SELECT *
o Lo ble li
FROM my_employee
WHERE d era
arID='6';
R i c n s f
c s on n-tra
i no
Ed
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 página 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 página con separadores Results.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Nulls/Unique
FK Table
FK Column
Data type NUMBER VARCHAR2
Length 7 25
s a
) ha
l ฺ c om
1) Cree la tabla DEPT según el siguiente gráfico de instancias de tabla. Guarde la
m ai eฺ
sentencia en un script denominado lab_10_01.sql y, a continuación, ejecute el
t
ho Guid
script para crear la tabla. Confirme que se ha creado la tabla.
@
8 4 4 ent
a r d0 Stud
( r ich this
i r e z use
2) Rellene la tabla DEPT con datos
que necesite. R amdeslaetablato DEPARTMENTS. Incluya sólo las columnas
3) Cree la tabla EMPo p ez el siguiente
según l i c en gráfico de instancias de tabla. Guarde la
sentencia
r d o unL script
en a b le
denominado lab_10_03.sql y, a continuación, ejecute el
icaparancrear
script
R s felar tabla. Confirme que se ha creado la tabla.
s on Column
n - traName ID LAST_NAME FIRST_NAME DEPT_ID
i c o
Ed n Key Type
Nulls/Unique
FK Table DEPT
FK Column ID
Data type NUMBER VARCHAR2 VARCHAR2 NUMBER
Length 7 25 25 7
5) Modifique el estado de la tabla EMPLOYEES2 a sólo lectura. Tenga en cuenta que esta
opción está soportada en Oracle Database 11g.
s a
6) Intente insertar la siguiente fila en la tabla EMPLOYEES2:
) ha
Aparecerá el siguiente mensaje de error:
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
a la tabla
7) Revierta
i c s f eEMPLOYEES2 al estado de lectura/escritura. Ahora, vuelva a intentar
R
n insertar r anmisma fila. Tenga en cuenta que esta opción está soportada en Oracle
la
s o - t
d ic non 11g.
Database
E Deben aparecer los siguientes mensajes:
Nulls/Unique
FK Table
FK Column
Data type NUMBER VARCHAR2
Length 7 25
s a
) ha
l ฺ c om
1) Cree la tabla DEPT según el siguiente gráfico de instancias de tabla. Guarde la
m ai eฺ
sentencia en un script denominado lab_10_01.sql y, a continuación, ejecute el
t
ho Guid
script para crear la tabla. Confirme que se ha creado la tabla.
@
CREATE TABLE dept 8 4 4 ent
(id NUMBER(7)CONSTRAINT department_id_pk
a r d0 SPRIMARY
t ud KEY,
name VARCHAR2(25));
( r ich this
Para confirmar que se ha creado la i r z y visualizar
etabla u se su estructura, ejecute el siguiente
comando:
R am se to
DESCRIBE deptpez c en
o l i
2) Rellene la
r d otablaL DEPT
a b le datos de la tabla DEPARTMENTS. Incluya sólo aquellas
con
ica que
columnas s f er
necesite.
R
n INSERT r n
aINTO
s o n - t dept
i c o
Ed n FROM departments; department_name
SELECT department_id,
first_name VARCHAR2(25),
dept_id NUMBER(7)
CONSTRAINT emp_dept_id_FK REFERENCES dept (id)
);
i c so on-t
Ed n
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
sólo lectura.
INSERT INTO employees2
VALUES (34, 'Grant','Marcie',5678,10)
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
…
t m ai eฺ
@ ho Guid
8 4 4 ent
r 0 tud
dpara
c h a
3) Con la vista EMPLOYEES_VU, escriba una consulta
i
el S
s departamento de recursos
i
(r de empleados
humanos para visualizar todos los nombres th y números de departamento.
z
ire to us e
m
z Ra nse
o p e lice
r d o L rable
R ica nsfe
c s on n-tra
i n…o
Ed
4) El departamento 50 necesita acceso a los datos de los empleados. Cree una vista con
el nombre DEPT50 que contenga los números y apellidos de los empleados y los
números 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 reasignación de un empleado a otro departamento
a través de la vista.
5) Visualice la estructura y el contenido de la vista DEPT50.
Parte 2
7) Necesita una secuencia que se pueda utilizar con la columna PRIMARY KEY de la
s a
tabla DEPT. La secuencia debe empezar en 200 y tener un valor máximo de 1.000.
) ha
l ฺ c om
Aplique incrementos de 10 a la secuencia. Asigne a la secuencia el nombre
DEPT_ID_SEQ.
t m ai eฺ
8) Para probar la secuencia, escriba un script para insertar dos filas en
h ola tabla uDEPT
id .
Asigne al script el nombre lab_11_08.sql. Asegúrese de4utilizar
4 @ lantsecuencia
G que
ha creado para la columna ID. Agregue dos departamentos: 8
0 Education
dcomandos u descript.y
Administration. Confirme las adiciones. Ejecutealos r
h his S t del
9) Cree un índice no único en la columna r i c t DEPT.
( de ela tabla
r e z NAME
s
i to .uLlámelo EMP.
10) Cree un sinónimo para la tabla
a mEMPLOYEES
z R nse
o p e l i c e
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
a r do a etravés
departamento
r a bde la vista.
ic VIEW
CREATE
R n s f dept50 AS
s on nSELECT- tra employee_id empno, last_name employee,
SELECT *
FROM dept50;
6) Pruebe la vista. Intente reasignar Matos al departamento 80.
UPDATE dept50
SET deptno = 80
WHERE employee = 'Matos';
El error se debe a que la vista DEPT50 se ha creado con la restricción WITH CHECK
OPTION. De esta forma, se garantiza que la columna DEPTNO de la vista esté
protegida contra cambios.
DEPT_ID_SEQ.
CREATE SEQUENCE dept_id_seq
START WITH 200
INCREMENT BY 10
MAXVALUE 1000;
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. Asegúrese de utilizar la secuencia que s a
ha creado para la columna ID. Agregue dos departamentos: Education y
) ha
l ฺ c om
Administration. Confirme las adiciones. Ejecute los comandos del script.
INSERT INTO dept
t m ai eฺ
VALUES (dept_id_seq.nextval, 'Education');
@ ho Guid
INSERT INTO dept 8 4 4 ent
VALUES (dept_id_seq.nextval, 'Administration');
a r d0 Stud
( r
9) Cree un índice no único en la columna NAME ichde la tabla
thisDEPT.
z
ireONtodept e
us(name);
CREATE INDEX dept_name_idx m
a se
z Rtabla n
o p e liceEMPLOYEES
10) Cree un sinónimo para la . Llámelo EMP.
o L raemp
CREATE SYNONYM
r d bleFOR EMPLOYEES;
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
…
i r ez use
R am se to
o p ez licen
r d o L derarecursos
3) El departamento b le humanos necesita un informe de todos los empleados de
R ica Muestre
Toronto.
empleados n s
que
f e el apellido, cargo, número y nombre de departamento de todos los
trabajan en Toronto.
o n t r a
d ics non-
E
4) Cree un informe para mostrar el apellido y número de empleado junto con el apellido
y número de gestor de sus gestores. Etiquete las columnas como Employee, Emp#,
Manager y Mgr#, respectivamente. Guarde la sentencia SQL como lab_f_04.sql.
s a
) ha
c om
6) Cree un informe del departamento de recursos humanos que muestre los apellidos y
l ฺ
t m ai eฺ
números de empleado y todos los empleados que trabajen en el mismo departamento
ho Guid
como un empleado determinado. Proporcione a cada columna una etiqueta adecuada.
@
8 4 4 ent
Guarde el script en un archivo denominado lab_f_06.sql.
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
… ard
o L rable
R ic nsfe
c s on n-tra
i no
Ed
7) El departamento de recursos humanos necesita un informe sobre los salarios y grados
de cargo. Para familiarizarse con la tabla JOB_GRADES, en primer lugar, muestre la
estructura de la tabla JOB_GRADES. A continuación, cree una consulta que muestre el
apellido, cargo, nombre de departamento, salario y grado de todos los empleados.
t m ai eฺ
empleados contratados después de Davies. Cree una consulta para mostrar el
nombre y la fecha de contratación de cualquier empleado contratado después del
empleado Davies.
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
s - tra
o9)n El ndepartamento
d i c n o de recursos humanos necesita buscar el nombre y la fecha de
E contratación de todos los empleados contratados antes que sus gestores, junto con el
nombre y fecha de contratación del gestor. Guarde el script en un archivo
denominado lab_f_09.sql.
5) Modifique lab_f_04.sql para mostrar todos los empleados, incluido King, que no
tienen gestor. Ordene los resultados por número 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 (+);
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Apéndice AP
Prácticas y Soluciones adicionales
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Tabla de Contenido
Prácticas Adicionales .......................................................................................................... 3
Práctica 1-1 ..................................................................................................................... 4
Soluciones a la Práctica 1-1 .......................................................................................... 12
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
s n - tralos empleados cuyo apellido empiece por las letras "J", "K", "L" o "M".
o5)n Muestre
i c no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
ca nsesfpueden
Estos iejercicios
R
e utilizar como práctica adicional después de tratar los siguientes
o n
temas:
- t r a
sentencia SQL SELECT básica, comandos de SQL Developer básicos, funciones
s
ic SQL, n y funciones de grupo.
ouniones
Ed n
7) Cree un informe que muestre el nombre de departamento, el ID de ubicación, el
nombre, el cargo y el salario de los empleados que trabajan en una ubicación
concreta. Solicite al usuario la ubicación. Por ejemplo, si el usuario introduce 1800,
se obtienen los siguientes resultados:
8) Busque el número de empleados cuyo apellido termine con la letra "n". Cree dos
soluciones posibles.
s a
10) El departamento de recursos humanos necesita obtener los puestos de los ) ha
l ฺ c om
departamentos 10 y 20. Cree un informe en el que se muestren los ID de cargo de
dichos departamentos.
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
11) Cree un informe que muestre los cargos
i r ez de los
u e
sdepartamentos Administration y
Executive. Muestre tambiénaelm número de
e o
t empleados de dichos cargos. Muestre el
cargo con el mayor númeroR
z cen de s
empleados en primer lugar.
p e
o Lo ble li
i c ard sfera
n R ran
i c s o
o n -t
Ed n
Estos ejercicios se pueden utilizar como práctica adicional después de tratar los siguientes
temas: sentencias SQL SELECT básicas, comandos de SQL Developer básicos, 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).
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
14) Muestre todos Llos empleados
osiguientes b le cuyo gestor tenga un salario superior a 15.000 dólares.
Muestre
a r dlos e r a datos: nombre del empleado, nombre del gestor, salario del
R i c s f
n de salario del gestor.
gestor y grado
o n t r a
d ics non-
E
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i
16) Cree un informe que muestre el númeror ez de departamento
u se y el salario más bajo del
a m más t o
z R nse
departamento con el salario medio alto.
o p e l i c e
r d o L rable
17)R icaun informe
Cree n s feque muestre los departamentos en los que no haya ningún vendedor.
s on Incluya
n - trelanúmero y nombre de departamento, así como el ID de gestor y la ubicación
i c neno la salida.
Ed
s a
c) Tenga el menor número de empleados: ) ha
l ฺ c om
t m ai eฺ
@ helosalario,
G uelid
8 4 4 ent
19) Cree un informe que muestre el número de empleado, el apellido,
número de departamento y el salario medio del departamento
0 tupara
d todos los
r d
empleados.
r i c ha his S
z ( e t
r e s
a mi e to u
z R ns
o p e l i c e
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
21) Cree una visión general de los aniversarios según la fecha de contratación de los
empleados. Ordene los aniversarios en orden ascendente.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Estos ejercicios se pueden utilizar como práctica adicional después de tratar los siguientes
temas: sentencia SQL SELECT básica, comandos de SQL Developer básicos, funciones
SQL, uniones y funciones de grupo.
7) Cree un informe que muestre el nombre de departamento, el ID de ubicación, el
nombre, el cargo y el salario de los empleados que trabajan en una ubicación
s a
concreta. Solicite al usuario la ubicación.
) ha
l ฺ c om
a) Introduzca 1800 para location_id cuando se le solicite.
SELECT d.department_name, d.location_id, e.last_name, t m ai eฺ
e.job_id, e.salary
@ ho Guid
FROM employees e, departments d
8 4 4 ent
WHERE
AND
e.department_id = d.department_id
d.location_id = &location_id; a r d0 Stud
h his
(ric termine
8) Busque el número de empleados cuyozapellido e t con la letra "n". Cree dos
r e s
soluciones posibles.
a mi e to u
SELECT COUNT(*) z R ns
p e c e
e li '%n';
FROM employees
o Lo blLIKE
WHERE last_name
--orard
i c s f era
n R
SELECT n
COUNT(*)
FROM-traemployees
s o
d ic nWHEREon SUBSTR(last_name, -1) = 'n';
E 9) Cree un informe que muestre el nombre, la ubicación y el número de empleados de
cada departamento. Asegúrese de que el informe sólo incluye los departamentos sin
empleados.
SELECT d.department_id, d.department_name,
d.location_id, COUNT(e.employee_id)
FROM employees e RIGHT OUTER JOIN departments d
ON e.department_id = d.department_id
GROUP BY d.department_id, d.department_name, d.location_id;
Estos ejercicios se pueden utilizar como práctica adicional después de tratar los siguientes
temas: sentencias SQL SELECT básicas, comandos de SQL Developer básicos, funciones s a
SQL, uniones, funciones de grupo y subconsultas. ) ha
c om
12) Muestre todos los empleados que se hayan contratado en la primera mitad del mes
l ฺ
(antes del 16 del mes).
t m ai eฺ
SELECT last_name, hire_date
@ ho Guid
FROM employees
8 4 4 ent
WHERE TO_CHAR(hire_date, 'DD') < 16;d0 ud
a r S t
ichtodosthlosisempleados: apellido, salario
13) Cree un informe que muestre lo siguienterpara
(
y salario expresado en términos de e
i r z de udólares.
miles se
SELECT last_name, salary,
R to
am sTRUNC(salary,
e -3)/1000 Thousands
FROM employees;
p z
e lice n
14) Muestre todos
o
Llos empleados
le cuyo gestor tenga un salario superior a 15.000 dólares.
r d o a b
icay grado
Muestre er datos: nombre del empleado, nombre del gestor, salario del
los siguientes
s f
n Rgestor
r a n salario del gestor.
de
o t
n- e.last_name, m.last_name manager, m.salary,
d ics nSELECT
o
E j.grade_level
FROM employees e JOIN employees m
ON e.manager_id = m.employee_id
JOIN job_grades j
ON m.salary BETWEEN j.lowest_sal AND j.highest_sal
AND m.salary > 15000;
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,
s a
) ha
e2.salary,
e2.job_id
ORDER BY d.department_id, employees;
l ฺ c om
t m ai eฺ
16) Cree un informe que muestre el número de departamento y el salario
@ homásGbajouiddel
departamento con el salario medio más alto.
8 4 4 ent
SELECT department_id, MIN(salary) ard
0 tud
FROM employees
r i c h his S
GROUP BY department_id z ( e t
r e s
HAVING AVG(salary) = (SELECT
a m t ou
i MAX(AVG(salary))
FROM e employees
z R GROUP ns BY department_id);
p e c e
o
17) Cree un informe l e li los departamentos en los que no haya ningún vendedor.
Loque bmuestre
i c areld número
Incluya
s f eryanombre de departamento, así como la ubicación, en la salida.
n R r a*n
s o SELECT
- t
d ic nFROM on departments
E 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 estadísticos para el departamento de recursos humanos:
incluya el número y nombre de departamento, así como el número de empleados que
trabajan en cada departamento que:
a) Contrate menos de tres empleados:
SELECT d.department_id, d.department_name, COUNT(*)
FROM departments d JOIN employees e
ON d.department_id = e.department_id
GROUP BY d.department_id, d.department_name
HAVING COUNT(*) < 3;
21) Cree una visión general de los aniversarios según la fecha de contratación de los
empleados. Ordene los aniversarios en orden ascendente.
SELECT last_name, TO_CHAR(hire_date, 'Month DD') BIRTHDAY
FROM employees
ORDER BY TO_CHAR(hire_date, 'DDD');
esenciales.
A continuación, se muestra un diagrama de las entidades y los atributos de una aplicación
de vídeo:
TITLE
de #* id
RESERVATION * title
#* res date el asunto * description
o rating s a
) ha
de
configurado o category
para l ฺ c om o release date
t m ai eฺ
@ ho disponible
G uid
8 4 4 encomo t
a r d0 Stud
responsable ( r ich tunahiscopia
de
z
ire to us e
m
a se TITLE_COPY
MEMBER ez
R n #* id
p li c e
#* id Lo e * status
*rd o
last name ab l
c a f e
i o firstnsname r el asunto de
R a
c s on n-tooraddress responsable
i o city
Ed n o phone de realizado en
* join date RENTAL
creado #* book date
para 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 continuación, 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.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
t m ai eฺ
@ ho Guid
8 4 4 ent
b) Nombre de la tabla: TITLE
a r d0 Stud
Column_ TITLE_ID TITLE ( r ich thRATING
DESCRIPTION
is CATEGORY RELEASE_
Name i r e z u s e DATE
am se t o
Key PK
R
Type
Null/
ez
NN,U op NN lic
en NN
Unique
r d o L rable
Checkca f e G, PG, R, DRAMA,
R i n s NC17, NR COMEDY,
o n - t r a
i c s o n ACTION,
Ed n CHILD,
SCIFI,
DOCUMEN
TARY
Data Type NUMBER VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 DATE
Length 10 60 400 4 20
Key PK PK,FK
Type
Null/ NN,U NN,U NN
Unique
Check AVAILABLE,
DESTROYED,
RENTED,
RESERVED
FK Ref TITLE s a
Table ) ha
FK Ref TITLE_ID
l ฺ c om
NUMBER
Col
NUMBER t m
VARCHAR2
ai eฺ
Data
Type @ ho Guid
10 Length 10 8 4 4 e15nt
a r d0 Stud
( r ich this
d) Nombre de la tabla: RENTAL irez u se
BOOK_ RMEMBER_
o
am se tCOPY_ ACT_RET_ EXP_RET_ TITLE_
Column
Name DATE
p e z ID
c e n ID DATE DATE ID
Key o L PK
o l i
d a b le PK,FK1 PK,FK2 PK,FK2
r
a sfeSystem
Type r
R icDefault n Date System Date
o n - t
Valuer a + 2 days
i c s o n
Ed n Table
FK Ref MEMBER TITLE_ TITLE_
COPY COPY
FK Ref MEMBER_I COPY_ TITLE_ID
Col D ID
Data DATE NUMBER NUMBER DATE DATE NUMBER
Type
Length 10 10 10
Type
Null/ NN,U NN,U NN
Unique
FK Ref MEMBER TITLE
Table
FK Ref MEMBER_ID TITLE_ID
Column
Data Type DATE NUMBER NUMBER
s a
Length 10 10
) ha
l ฺ c om
a i ฺ
2) Verifique que las tablas se han creado correctamente comprobandoo t m ide
en el navegador
de conexiones de SQL Developer. h u
8 4 4@ ent G
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
4) Agregue datos a las tablas. Cree un script para cada juego de datos que desee agregar.
a) Agregue los títulos de las películas a la tabla TITLE. Escriba un script para
introducir la información sobre las películas. Guarde las sentencias en un script
denominado lab_apcs_4a.sql. Utilice las secuencias para identificar de forma
única cada título. Introduzca las fechas de versión en formato DD-MES-AAAA.
Recuerde que las comillas simples se deben gestionar de forma especial en los
campos de caracteres. Verifique las adiciones.
2 RENTED 2
s a
) ha
l ฺ c om
6) Realice cambios en los datos de las tablas. t m ai eฺ
a) Agregue un nuevo título. La película es “Interstellar Wars”,@ ho laucategoría
que tieneG
id
PG y está clasificada como una película de ciencia 8 4 4 La efecha
ficción. n t de la versión
es 07-JUL-77. La descripción es “Futuristica r d0 Saction
interstellar t ud movie. Can the
ich Asegúrese
rebels save the humans from the evil empire?”
( r this de agregar un registro
z
de copia de título para dos copias.
re o us e
mireserva
b) Introduzca dos reservas.aUna
e t es para Carmen Velasquez, que desea
R s
o
alquilar “Soda p ez Wars”.eLa
alquilar “Interstellar
Gang”. lic
n otra es para Mark Quick-to-See, que desea
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
Title Price ) ha
Willie and Christmas Too 25
l ฺ c om
Alien Again 35
t m ai eฺ
The Glob 35
@ ho Guid
My Day Off 8 4
35 4 ent
Miracles on Ice a r d0 Stud
30
Soda Gang
( r ich this 35
r ez use
Interstellar Wars
i 29
member(member_id),
copy_id NUMBER(10),
act_ret_date DATE,
exp_ret_date DATE DEFAULT SYSDATE + 2,
title_id NUMBER(10),
CONSTRAINT rental_book_date_copy_title_pk
PRIMARY KEY (book_date, member_id, copy_id,title_id),
CONSTRAINT rental_copy_id_title_id_fk
FOREIGN KEY (copy_id, title_id) s a
REFERENCES title_copy(copy_id, title_id)); ) ha
e) Nombre de la tabla: RESERVATION l ฺ c om
t m ai eฺ
CREATE TABLE reservation
(res_date DATE, @ ho Guid
member_id NUMBER(10) 8 4 4 ent
CONSTRAINT reservation_member_id
a r d0 REFERENCES
S t ud
member(member_id),
title_id ( r
NUMBER(10) ich this
i r ez use REFERENCES
CONSTRAINT reservation_title_id
title(title_id), a m e to
CONSTRAINT R ns title_id));
z reservation_resdate_mem_tit_pk PRIMARY KEY
p e c e
Lo ble li
(res_date, member_id,
o
dei ardqueslas
2) Verifique
c
conexiones f
de
a se han creado correctamente comprobando en el navegador
ertablas
SQL Developer.
n R ran
i c so a)onEn-tel navegador de conexiones, amplíe Connections > myconnection > Tables.
Ed n
3) Cree secuencias para identificar de forma única cada fila de las tablas MEMBER y
TITLE.
a) Número de miembro para la tabla MEMBER: empezar por 101; no permitir
almacenamiento en caché de los valores. Asigne el nombre MEMBER_ID_SEQ a la
secuencia.
CREATE SEQUENCE member_id_seq
START WITH 101
NOCACHE;
4) Agregue datos a las tablas. Cree un script para cada juego de datos que desee agregar.
a) Agregue los títulos de las películas a la tabla TITLE. Escriba un script para
introducir la información sobre las películas. Guarde las sentencias en un script
denominado lab_apcs_4a.sql. Utilice las secuencias para identificar de forma
única cada título. Introduzca las fechas de versión en formato DD-MES-AAAA.
Recuerde que las comillas simples se deben gestionar de forma especial en los
campos de caracteres. Verifique las adiciones.
s a
INSERT INTO title(title_id, title, description, rating,
) ha
l ฺ om
category, release_date)
c
VALUES (title_id_seq.NEXTVAL, 'Willie and Christmas Too',
t m ai eฺ
'All of Willie''s friends make a Christmas list for
@ ho Guid
Santa, but Willie has yet to add his own wish list.',
'G', 'CHILD', TO_DATE('05-OCT-1995','DD-MON-YYYY'))
/ 8 4 4 ent
r d0 Stud
INSERT INTO title(title_id , title, description, rating,
a
( r
VALUES
ich this category, release_date)
(title_id_seq.NEXTVAL, 'Alien Again', 'Yet another
i r ez use installment of science fiction history. Can the
R am se to heroine save the planet from the alien life form?',
o p ez licen /
'R', 'SCIFI', TO_DATE( '19-MAY-1995','DD-MON-YYYY'))
JUN-1995','DD-MON-YYYY'))
/
COMMIT
/
SELECT title
FROM title;
'DD-MM-YYYY'))
/
o p 'AVAILABLE')
l i c e
o L title_copy(copy_id,
le
/
INSERTdINTO
r r a b title_id, status)
i c
VALUESa (2,
s f e
93, 'RENTED')
n R
/
r a n
i c so INSERT
o n -t INTO title_copy(copy_id, title_id, status)
Ed nVALUES (1, 94, 'AVAILABLE')
/
INSERT INTO title_copy(copy_id, title_id, status)
VALUES (1, 95, 'AVAILABLE')
/
INSERT INTO title_copy(copy_id, title_id,status)
VALUES (2, 95, 'AVAILABLE')
/
INSERT INTO title_copy(copy_id, title_id,status)
VALUES (3, 95, 'RENTED')
/
INSERT INTO title_copy(copy_id, title_id,status)
VALUES (1, 96, 'AVAILABLE')
/
INSERT INTO title_copy(copy_id, title_id,status)
VALUES (1, 97, 'AVAILABLE')
/
SELECT *
FROM title_avail
ORDER BY title, copy_id;
rebels save the humans from the evil empire?” Asegúrese de agregar un registro
de copia de título para dos copias.
INSERT INTO title(title_id, title, description, rating,
category, release_date)
VALUES (title_id_seq.NEXTVAL, 'Interstellar Wars',
'Futuristic interstellar action movie. Can the
rebels save the humans from the evil empire?',
'PG', 'SCIFI', '07-JUL-77')
/ s a
INSERT INTO title_copy (copy_id, title_id, status) ) ha
VALUES (1, 98, 'AVAILABLE')
l ฺ c om
/
t m
INSERT INTO title_copy (copy_id, title_id, status)
ai eฺ
VALUES (2, 98, 'AVAILABLE')
@ ho Guid
/
8 4 4 ent
r d0 Velasquez,
b) Introduzca dos reservas. Una reserva es paraaCarmen
S t ud que desea
ch MarkthQuick-to-See,
alquilar “Interstellar Wars”. La otra esripara
( is que desea
alquilar “Soda Gang”. z
re o us
i(res_date, e
m
INSERT INTO reservation
VALUES (SYSDATE,z101, Ra 98)nse t member_id, title_id)
/ o p e lice
INSERT INTO o L reservation
b le (res_date, member_id, title_id)
a r d r a
VALUES
/ ic
R n s fe
(SYSDATE, 104, 97)
o7)n Realice
- a
truna
i c s o n modificación en una de las tablas.
Ed n
a) Ejecute el script lab_apcs_7a.sql ubicado en la carpeta
/home/oracle/labs/sql1/labs, para agregar una columna PRICE a la tabla
TITLE para registrar el precio de venta del vídeo. Verifique las modificaciones.
ALTER TABLE title
ADD (price NUMBER(8,2));
DESCRIBE title
l ฺ c om
y la duración de los alquileres. Calcule el número total de alquileres de todos los
en un script lab_apcs_8.sql. t m ai eฺ
clientes para el período de informe. Guarde los comandos generados por el informe
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Descripción de Esquema
Descripción General
Los esquemas de ejemplo de Oracle Database ilustran una compañía de ejemplo que opera en todo el
mundo para surtir pedidos de varios productos distintos. La compañía tiene tres divisiones:
• Human Resources: realiza un seguimiento de la información sobre los empleados y las
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
instalaciones.
• Order Entry: realiza un seguimiento de los inventarios y las ventas de productos a través de
distintos canales.
• Sales History: realiza un seguimiento de los datos estadísticos 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 prácticas
está en el esquema de Human Resources (HR).
s a
Todos los scripts necesarios para crear los esquemas de ejemplo están en la carpeta ) ha
$ORACLE_HOME/demo/schema/.
l ฺ c om
Human Resources (HR)
t m ai eฺ
ho Guid
Se trata del esquema que se utiliza en este curso. En los registros de recursos humanos (HR), cada
@
4 4 ent
empleado tiene un número de identificación, una dirección de correo electrónico, un código de
8
a r d0 Stud
identificación de cargo, un salario y un gestor. Algunos empleados ganan comisiones además de su
salario.
( r ich this
i r ez use
La compañía también registra información sobre cargos dentro de la organización. Cada cargo
R am se to
dispone de un código de identificación, un puesto y un rango de salario máximo y mínimo para el
cargo. Algunos empleados llevan bastante tiempo en la compañía y han desempeñado distintos
o p ez licentrabajos en ella. Cuando se reasigna un empleado, se registran la duración del trabajo del empleado,
R ica nsfe La compañía de ejemplo se extiende por distintas regiones, por lo que registra la ubicación de sus
c s on n-tra almacenes y departamentos. Cada empleado está asignado a un departamento y cada departamento se
i no identifica mediante un número de departamento único o una abreviatura. Cada departamento está
Ed asociado a una ubicación y cada ubicación tiene una dirección completa que incluye el nombre de la
calle, el código postal, la ciudad, el estado o la provincia y el código de país.
En las ubicaciones de los departamentos y almacenes, la compañía registra detalles como el nombre
de país, el símbolo y nombre de divisa y la región en la que está ubicado geográficamente el país.
HR DEPARTMENTS
department_id
LOCATIONS
location_id
department_name street_address
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
manager_id postal_code
location_id city
state_province
country_id
JOB_HISTORY
employee_id
start_date EMPLOYEES
end_date employee_id
job_id first_name
COUNTRIES a
department_id last_name
s
) ha
country_id
email
country_name
ฺ c om
phone_number
hire_date
l
region_id
t m ai eฺ
job_id
JOBS
job_id
@ ho Guid salary
commission_pct
job_title
8 4 4 eREGIONS
n t manager_id
min_salary
max_salary a r d0 Stud region_id
department_id
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
SELECT * FROM employees; @ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
• Navigate: contiene opciones para acceder a los paneles y ejecutar los subprogramas.
• Run: contiene las opciones Run File y Execution Profile, que son relevantes en la selección de
una función o un procedimiento, además de las opciones de depuración.
• Source: contiene opciones para utilizarlas al editar funciones y procedimientos.
• Versioning: proporciona soporte integrado para los siguientes sistemas de control de versiones
y orígenes: CVS (Concurrent Versions System) y Subversion.
• Migration: contiene opciones relacionadas con la migración de bases de datos de terceros a
Oracle.
s a
• Tools: llama a las herramientas de SQL Developer, como SQL*Plus, Preferences y SQL
) ha
Worksheet.
l ฺ c om
t m ai eฺ
Nota: el menú Run también contiene opciones relevantes para la selección de una función o un
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
r d o L rable
Creación de a Conexión
icuna s fe a la Base Datos
R n
Una
s n
oconexión
n - traun objeto de SQL Developer que especifica la información necesaria para
es
i c noa una base de datos concreta como usuario específico de dicha base de datos. Para utilizar
Ed conectarse
SQL Developer, debe tener al menos una conexión a la base de datos que puede ser existente, creada
o importada.
Puede crear y probar conexiones para varias bases de datos y esquemas.
Por defecto, el archivo tnsnames.ora está ubicado en el directorio
$ORACLE_HOME/network/admin, pero también puede estar en el directorio especificado por la
variable de entorno TNS_ADMIN o el valor de registro. Al iniciar SQL Developer, cuando se muestra
el cuadro de diálogo Database Connections, SQL Developer importa automáticamente las conexiones
definidas en el archivo tnsnames.ora al sistema.
Nota: en los sistemas Windows, si existe el archivo tnsnames.ora, pero SQL Developer no está
utilizando sus conexiones, defina TNS_ADMIN como una variable de entorno del sistema.
Puede exportar conexiones a un archivo XML para poder volver a utilizarlas.
Puede crear conexiones adicionales como usuarios diferentes a la misma base de datos o conectarse a
diferentes bases de datos.
1 2
3 a
s
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Creación de a Conexión
icuna s fe a la Base Datos (continuación)
R n
ra a la base de datos, realice los siguientes pasos:
n una-tconexión
Para
c s ocrear n
i opágina con separadores Connections, haga clic con el botón derecho del mouse en
Ed 1. Connections
Ennla
y seleccione New Connection.
2. En la ventana New/Select Database Connection, introduzca el nombre de la conexión.
Introduzca el nombre de usuario y la contraseña del esquema al que desea conectarse.
a) En la lista desplegable Role, puede seleccionar default o SYSDBA. (Debe seleccionar
SYSDBA para el usuario sys o cualquier usuario con privilegios de administrador de la
base de datos).
b) Puede seleccionar el tipo de conexión como:
Basic: en este tipo, introduzca el nombre del host y el SID de la base de datos a la que
desea conectarse. El puerto ya está definido en 1521. También puede introducir el
nombre del servicio directamente si utiliza una conexión a la base de datos remota.
TNS: puede seleccionar cualquiera de los alias de base de datos importados del archivo
tnsnames.ora.
LDAP: puede consultar los servicios de base de datos en Oracle Internet Directory, que
es un componente de Oracle Identity Management.
Advanced: puede definir una URL de Java Database Connectivity (JDBC) URL
personalizada para conectarse a la base de datos.
3. La conexión se agrega al navegador de conexiones. Puede ampliar la conexión para ver los
objetos de base de datos y las definiciones de objetos (por ejemplo, dependencias, detalles,
estadísticas, etc.).
Nota: en la misma ventana New/Select Database Connection, puede definir conexiones a orígenes de
datos no Oracle mediante los separadores Access, MySQL y SQL Server. Sin embargo, se trata de
conexiones de sólo lectura que permiten examinar los objetos y datos de dicho origen de datos.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Examen deic a sdefeBases de Datos
Objetos
R n
n creada-trlaaconexión
Unaovez a la base de datos, puede utilizar el navegador de conexiones para
i c s o n
Ed paquetes,n procedimientos, disparadores
examinar los objetos de un esquema de base de datos entre los que se incluyen tablas, vistas, índices,
y tipos.
SQL Developer utiliza la parte izquierda de la navegación para buscar y seleccionar objetos y la parte
derecha para mostrar la información sobre los objetos seleccionados. También puede personalizar
muchos aspectos de la apariencia de SQL Developer mediante la definición de preferencias.
Puede ver la definición de los objetos desglosados en separadores de información que se transfieren
al diccionario de datos. Por ejemplo, si selecciona una tabla en el navegador, se muestran los detalles
sobre las columnas, restricciones, permisos, estadísticas, disparadores, etc., en una página con
separadores fáciles de leer.
Si desea ver la definición de la tabla EMPLOYEES como se muestra en la diapositiva, realice los
siguientes pasos:
1. Amplíe el nodo Connections en el navegador de conexiones.
2. Amplíe Tables.
3. Haga clic en EMPLOYEES. Por defecto, está seleccionado el separador Columns. Se muestra la
descripción de las columnas de la tabla. Mediante el separador Data, puede ver los datos de la
tabla e introducir las nuevas filas, datos de actualización y confirmar estos cambios en la base
de datos.
una tabla:
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Visualización
R icade lanEstructura
s fe de la Tabla
n r a
-t también puede visualizar la estructura de una tabla mediante el comando
i
En
c soSQL Developer,
o n
Ed dato, asíncomo una
DESCRIBE. El resultado del comando es una visualización de los nombres de columna y tipos de
indicación de si una columna debe contener datos.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Examen deic a sdefeBases de Datos
Objetos
R an
nutilizar-eltrnavegador
c s o
Puede
n de archivos para examinar y abrir archivos del sistema.
i o
Ed •• Para n ver el navegador de archivos, haga clic en el separador Files o seleccione View > Files.
Para
ver el contenido de un archivo, haga clic dos veces en un nombre de archivo para mostrar
su contenido en el área de la hoja de trabajo de SQL.
esquema mediante:
– Ejecución de una sentencia SQL en SQL Worksheet
– Uso del menú contextual
• Editar los objetos mediante un cuadro de diálogo de edición
o con uno de los muchos menús sensibles al contexto.
a
• Ver el lenguaje de definición de datos (DDL) para los
) has
ajustes, como la creación de un nuevo objeto o la edición
l ฺ c omde
i ฺ
un objeto de esquema existente. maot uide
h
8 4 4@ ent G
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Creación de a Objeto
icun s fede Esquema
R n
a la creación de cualquier objeto de esquema mediante la ejecución de una
SQL
c s onDeveloper
n - trsoporta
i noSQL en la hoja de trabajo de SQL. Por otro lado, puede crear objetos mediante los menús
Ed sentencia
contextuales. Cuando se crea, puede editar los objetos con un cuadro de diálogo de edición o con uno
de los muchos menús sensibles al contexto.
Una vez que se han creado los nuevos objetos o se han editado los existentes, el DDL de estos ajustes
estará disponible para la revisión. Una opción Export DDL está disponible si desea crear el DDL
completo para uno o más objetos en el esquema.
La diapositiva muestra cómo crear una tabla mediante el menú contextual. Para abrir un cuadro de
diálogo para la creación de una nueva tabla, haga clic con el botón derecho del mouse en Tables y
seleccione New Table. Los cuadros de diálogo para la creación y edición de objetos de la base de
datos tienen varios separadores, cada uno de ellos contiene un agrupamiento lógico de propiedades
para dicho tipo de objeto.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Creación de a Nueva
icuna s feTabla: Ejemplo
R n
a Create Table, si no activa la casilla de control Advanced, puede crear una
En
c s oelncuadronde-trdiálogo
i rápidamente
no
Ed tabla
frecuencia.
mediante la especificación de columnas y algunas funciones utilizadas con
Si activa la casilla de control Advanced, el cuadro de diálogo Create Table cambia a otro con varias
opciones, en las que puede especificar un juego ampliado de funciones mientras crea la tabla.
En el ejemplo de la diapositiva se muestra cómo crear la tabla DEPENDENTS mediante la activación
de la casilla de control Advanced.
Para crear una nueva tabla, realice los siguientes pasos:
1. En el navegador de conexiones, haga clic con el botón derecho del mouse en Tables.
2. Seleccione Create TABLE.
3. En el cuadro de diálogo Create Table, seleccione Advanced.
4. Especifique la información de columna.
5. Haga clic en OK.
Aunque no es necesario, también debe especificar una clave primaria con el separador Primary Key
en el cuadro de diálogo. En ocasiones, puede que desee editar la tabla que ha creado; para ello, haga
clic con el botón derecho del mouse en la tabla del navegador de conexiones y seleccione Edit.
s a
) ha
l ฺ c om
t m ai eฺ
o Worksheet.
O hacer clic
h uid
en el icono
Seleccionar SQL Worksheet
4 @
Open
4 ent SQL
G
en el menú Tools. 8
d0 Stud
a r
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Uso de la Hoja
R ica de nTrabajo
s fe de SQL
Al n
oconectarse- a base de datos, automáticamente se abre una ventana de hoja de trabajo de SQL
atruna
i c s n
Ed para dichanoconexión. Puede utilizar la hoja de trabajo de SQL para introducir y ejecutar sentencias
SQL, PL/SQL y SQL *Plus. SQL Worksheet soporta sentencias SQL*Plus hasta un determinado
grado. Las sentencias SQL*Plus no soportadas por la hoja de trabajo de SQL se ignoran y no se
transfieren a la base de datos.
Puede especificar las acciones que se pueden procesar mediante la conexión a la base de datos
asociada a la hoja de trabajo, como:
• Creación de una tabla
• Inserción de datos
• Creación y edición de un disparador
• Selección de datos de tablas
• Guardado de datos seleccionados en un archivo
Para visualizar una hoja de trabajo de SQL, utilice una de las siguientes opciones:
• Seleccione Tools > SQL Worksheet.
• Haga clic en el icono Open SQL Worksheet.
2 4 6 8
s a
1 3 5 7 9 ) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
ica de nTrabajo
Uso de la Hoja
R s fe de SQL (continuación)
onque desee
Puede - a teclas de acceso directo o iconos para realizar determinadas tareas como la
trutilizar
i c s n
ode una sentencia SQL o de un script y la visualización del historial de sentencias SQL
Ed ejecución
n
ejecutadas. Puede utilizar la barra de herramientas de la hoja de trabajo de SQL que contiene iconos
para realizar las siguientes tareas:
1. Execute Statement: ejecuta la sentencia en la que está ubicado el cursor del cuadro Enter SQL
Statement. Puede utilizar variables de enlace en las sentencias SQL pero no variables de
sustitución.
2. Run Script: ejecuta todas las sentencias en el cuadro Enter SQL Statement mediante Script
Runner. Puede utilizar variables de sustitución en las sentencias SQL pero no variables de
enlace.
3. Commit: escribe cualquier cambio realizado en la base de datos y finaliza la transacción.
4. Rollback: desecha cualquier cambio realizado en la base de datos, sin escribirlos en la base de
datos y finaliza la transacción.
5. Cancel: para la ejecución de cualquier sentencia que se esté ejecutando actualmente.
6. SQL History: muestra un recuadro de diálogo con información sobre las sentencias SQL
ejecutadas.
7. Execute Explain Plan: genera la ejecución del plan, que puede ver haciendo clic en el
separador Explain.
8. Autotrace: genera información de rastreo sobre la sentencia.
9. Clear: borra la sentencia o sentencias del recuadro Enter SQL Statement.
Introducir
sentencias SQL.
s a
) ha
l ฺ c om
Los resultados se
t m ai eฺmuestran aquí.
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Uso de la Hoja
R ica de nTrabajo
s fe de SQL (continuación)
Al n
oconectarse- a base de datos, automáticamente se abre una ventana de hoja de trabajo de SQL
atruna
i c s n
Ed para dichanoconexión. Puede utilizar la hoja de trabajo de SQL para introducir y ejecutar sentencias
SQL, PL/SQL y SQL *Plus. Todos los comandos SQL y PL/SQL están soportados conforme se
transfieren directamente desde la hoja de trabajo de SQL a Oracle Database. La hoja de trabajo de
SQL debe interpretar los comandos SQL*Plus utilizados en SQL Developer antes de transferirlos a la
base de datos.
La hoja de trabajo de SQL soporta actualmente varios comandos SQL*Plus. Los comandos que no
soporta la hoja de trabajo de SQL se ignoran y no se envían a Oracle Database. A través de la hoja de
trabajo de SQL, puede ejecutar sentencias SQL y algunos de los comandos SQL*Plus.
Puede mostrar una hoja de trabajo de SQL mediante cualquiera de las siguientes opciones:
• Seleccione Tools > SQL Worksheet.
• Haga clic en el icono Open SQL Worksheet.
F9 F5
s a
F5 ) ha m
l ฺ c o
F9
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Ejecución de
R icaSentencias
n s fe SQL
Ens oelnejemplo
n - trala diapositiva se muestra la diferencia entre la salida de la misma consulta cuando
de
i c o
Ed se utilizanla tecla [F9] o Execute Statement y cuando se utiliza [F5] o Run Script.
SQL en un archivo.
2
Identificar una ubicación,
s a
) ha
El contenido del archivo introducir un nombre de
3 archivo y hacer clic en Save.
om
guardado es visible y se
puede editar en la ventana
l ฺ c
de la hoja de trabajo de SQL.
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Guardado de
R icaScripts n s e
fSQL
onguardar
Puede
s n - tlasrasentencias SQL desde la hoja de trabajo de SQL en un archivo de texto. Para
i c o
Ed guardarnel contenido del cuadro Enter SQL Statement, realice los siguientes pasos:
1. Haga clic en el icono Save o utilice la opción de menú File > Save.
2. En el cuadro de diálogo Save, introduzca un nombre de archivo y la ubicación en la que desea
guardarlo.
3. Haga clic en Save.
Después de guardar el contenido de un archivo, en la ventana Enter SQL Statement se muestra una
página con separadores del contenido del archivo. Puede tener varios archivos abiertos al mismo
tiempo. Cada archivo se muestra como una página con separadores.
Script Pathing
Puede seleccionar una ruta de acceso por defecto para buscar y guardar scripts. En Tools >
Preferences > Database > Worksheet Parameters, introduzca un valor en el campo “Select default
path to look for scripts”.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
seguido de la ubicación y el
nombre del archivo que
desea ejecutar y haga clic
en el icono Run Script.
s a
) ha
La salida del script se
l ฺ c om
muestra en la página
con separadores Script
t m ai eฺ
Output.
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Ejecución de
R icaArchivos
n s fede Script Guardados: Método 2
Para n un
oguardar - a SQL, realice los siguientes pasos:
trscript
i c s n
no el comando @, seguido de la ubicación y el nombre del archivo que desea ejecutar en la
Ed 1. Utilice ventana Enter SQL Statement.
2. Haga clic en el icono Run Script.
El resultado de la ejecución del archivo se muestra en la página con separadores Script Output.
También puede guardar la salida del script haciendo clic en el icono Save de la página con
separadores Script Output. Aparece el cuadro de diálogo File Save donde puede identificar un
nombre y una ubicación para el archivo.
Antes de la Operación
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
de Formateo
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
Después de la Operación a r d0 Stud
de Formateo
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Formato del a sSQL
icCódigo fe
R n
a formato al sangrado, espaciado, uso de mayúsculas y separación de líneas del
onque desee
Puede
c s n - trdar
i o SQL Developer dispone de una función para dar formato a código SQL.
Ed código nSQL.
Para dar formato al código SQL, haga clic con el botón derecho del mouse en el área de la sentencia
y seleccione Format SQL.
En el ejemplo de la diapositiva, antes de dar formato, las palabras clave del código SQL no están en
mayúscula y la sentencia no está sangrada correctamente. Después de dar formato, el código SQL
mejora el aspecto con las palabras clave en mayúscula y la sentencia sangrada correctamente.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
ica nsfe
Uso de Fragmentos
R
Es
s n ra utilizar determinados fragmentos de código al utilizar la hoja de trabajo de SQL
n que-tdesee
oposible
c
i al crearnoo editar un procedimiento o una función de PL/SQL. SQL Developer dispone de la función
Ed odenominada Snippets. Los fragmentos son fragmentos de código, como funciones SQL, indicaciones
del optimizador y otras técnicas de programación 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 botón Snippets, para poder acceder a la
ventana Snippets si se oculta.
Inserción de un
fragmento
s a
) ha
Edición del l ฺ c om
fragmento
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
ica nsEjemplo
Uso de Fragmentos:
R fe
Paraoinsertar a
n un-trfragmento en el código en la hoja de trabajo de SQL o en otro procedimiento o
i c s o n
Ed función nPL/SQL, arrastre el fragmento desde la ventana Snippets hasta el lugar deseado del código.
A continuación, puede editar la sintaxis para que la función SQL sea válida en el contexto actual.
Para ver una descripción breve de una función SQL en una ayuda de burbuja, coloque el cursor sobre
el nombre de la función.
En el ejemplo de la diapositiva se muestra que CONCAT(char1, char2) se arrastra desde el
grupo Character Functions a la ventana Snippets. A continuación, se edita la sintaxis de la función
CONCAT y el resto de la sentencia se agrega como se describe a continuación:
SELECT CONCAT(first_name, last_name)
FROM employees;
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Informes de a de
icBases s feDatos
R a n
SQL
c s onDeveloper
n - trproporciona diferentes informes sobre la base de datos y sus objetos. Estos informes
i o
Ed • Informes
se n
pueden agrupar en las siguientes
About Your Database
categorías:
repetido.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r i ch this
i r ez informes
Organizar
u se en carpetas.
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Creación de a Informe
icun s fe Definido por el Usuario
R n
Los
s n
oinformes
n - tra por el usuario son informes creados por los usuarios de SQL Developer. Para
definidos
i c o definido por el usuario, realice los siguientes pasos:
Ed crear unninforme
1. Haga clic con el botón derecho del mouse en el nodo User Defined Reports en Reports y
seleccione Add Report.
2. En el cuadro Create Report Dialog, especifique el nombre del informe y la consulta SQL para
recuperar del informe. A continuación, haga clic en Apply.
En el ejemplo de la diapositiva, se especifica el nombre del informe como emp_sal. Se proporciona
una descripción opcional que indica que el informe contiene los detalles de los empleados con un
salario salary >= 10000. La sentencia SQL completa para la recuperación de la información
que se mostrará en el informe definido por el usuario se especifica en el cuadro SQL. También puede
incluir una ayuda de burbuja opcional que se muestre al colocar el cursor brevemente sobre el
nombre del informe en la pantalla del navegador Reports.
Puede organizar los informes definidos por el usuario en carpetas y puede crear una jerarquía de
carpetas y subcarpetas. Para crear una carpeta para los informes definidos por el usuario, haga clic
con el botón derecho del mouse en el nodo User Defined Reports o en cualquier nombre de carpeta
de dicho nodo y seleccione Add Folder. La información sobre los informes definidos por el usuario,
incluidas las carpetas de dichos informes, se almacena en un archivo denominado
UserReports.xml en el directorio de información específica del usuario.
2 s a
) ha
l ฺ c om
t m ai eฺ
Enlaces a motores de @ ho Guid
búsqueda y foros de 8 4 4 ent
discusión conocidos
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Motores deic a sfey Herramientas Externas
Búsqueda
n R r an
Para
s omejorar
n -
latproductividad de los desarrolladores de SQL, SQL Developer ha agregado enlaces
i c o
Ed rápidosna motores de búsqueda y foros de discusión conocidos, como AskTom, Google, etc. Además,
dispone de iconos de acceso directo a algunas de las herramientas más utilizadas, como el Bloc de
notas, Microsoft Word y Dreamweaver.
Puede agregar herramientas externas a la lista de herramientas existentes o incluso suprimir accesos
directos a las herramientas que no utilice habitualmente. Para ello, realice los siguientes pasos:
1. En el menú Tools, seleccione External Tools.
2. En el cuadro de diálogo External Tools, seleccione New para agregar nuevas herramientas.
Seleccione Delete para eliminar cualquier herramienta de la lista.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
icaPreferencias
Definición de
R n s fe
Puede
s n tra diferentes aspectos de la interfaz y el entorno de SQL Developer mediante la
onpersonalizar
-
i c no de las preferencias de SQL Developer según sus preferencias y necesidades. Para
Ed modificación modificar las preferencias de SQL Developer, seleccione Tools y, a continuación, Preferences.
Las preferencias se agrupan en las siguientes categorías:
• Environment
• Accelerators (accesos directos del teclado)
• Code Editors
• Database
• Debugger
• Documentation
• Extensions
• File Types
• Migration
• PL/SQL Compilers
• PL/SQL Debugger
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
ica ndelsfDiseño
Restablecimiento
R
e de SQL Developer
Al n r a
-tSQL Developer, si desaparece el navegador de conexiones o no puede encajar la
otrabajar con
i c s o n
Ed ventana nLog en su lugar original, realice los siguientes pasos para solucionar el problema:
1. Salga de SQL Developer.
2. Abra una ventana de terminal y utilice el comando de búsqueda para buscar la ubicación de
windowinglayout.xml.
3. Vaya al directorio que contenga el archivo windowinglayout.xml y suprímalo.
4. Reinicie SQL Developer.
Uso de SQL*Plus
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Objetivos
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
Sentencias SQL
Servidor
SQL*Plus
Resultados de consultas s a
) ha
l ฺ c om
Buffer
t m ai eฺ
@ ho Guid
8 4 4 ent
Scripts ha
rd0 Stud
SQL
z (ric e this
m ire to us
z Ra nse
o p e© 2010, lOracle
Copyright i c e y/o sus filiales. Todos los derechos reservados.
r d o L rable
SQL y SQL*Plus
R ica nsfe
SQL
s n tra de comandos que se utiliza para la comunicación con el servidor de Oracle desde
ones un lenguaje
-
i c noherramienta o aplicación. Oracle SQL contiene muchas extensiones. Al introducir una
Ed cualquier
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 envía sentencias SQL en Oracle9i Server para su ejecución. Contiene su propio lenguaje
de comandos.
Funciones de SQL
• Las pueden utilizar una gran variedad de usuarios, incluidos aquéllos 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 inglés.
Funciones de SQL*Plus
• Acepta la entrada ad hoc de sentencias.
• Acepta la entrada de SQL de los archivos.
• Proporciona un editor de líneas para modificar sentencias SQL.
• Controla los valores de entorno.
• Formatea resultados de consulta en informes básicos.
• Accede a bases de datos locales y remotas.
Oracle Database: Conceptos Fundamentales de SQL I D-3
Sentencias SQL frente a
Comandos SQL*Plus
SQL SQL*Plus
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
• Un lenguaje • Un entorno
• Estándar de ANSI • Propiedad de Oracle
• Las palabras clave no • Las palabras clave se
se pueden abreviar. pueden abreviar.
• Las sentencias manipulan • Los comandos no
definiciones de tablas permiten la manipulación as
a
y datos en la base de datos. de valores en la base de
m )h
datos. i l ฺ co
tam ideฺ
o
h Gu
4 4 @ n t
8
d0 Stud Buffer e
Sentencias Buffer r
Comandos
a
SQL SQL
( r ichSQL*Plusthis SQL*Plus
z
ire to us e
m
z Ra nse
o p e© 2010, lOracle
Copyright i c e y/o sus filiales. Todos los derechos reservados.
r d o L rable
SQL y SQL*Plus
R ica (continuación)
n s fe
Ens olansiguiente
n - ra compara SQL y SQL*Plus:
ttabla
i c o
Ed SQLn SQL*Plus
Lenguaje para la comunicación con el Reconoce las sentencias SQL y las envía al
servidor de Oracle para acceder a los datos. servidor.
Se basa en SQL del estándar ANSI Interfaz propiedad de Oracle para ejecutar
(American National Standards Institute). sentencias SQL.
Manipula la definiciones de tablas y datos en No permite la manipulación de valores en la
la base de datos. base de datos.
Se introduce en el buffer SQL en una o más Se introduce en una línea al mismo tiempo y
líneas. no se almacena en el buffer SQL.
No tiene ningún carácter de continuación. Utiliza un guión (–) como carácter de
continuación si el comando es más largo que
una línea.
No se puede abreviar. Se puede abreviar.
Utiliza un carácter de terminación para No necesita caracteres de terminación;
ejecutar comandos inmediatamente. ejecuta los comandos inmediatamente.
Utiliza funciones para realizar algunas tareas Utiliza comandos para formatear datos.
de formato.
Oracle Database: Conceptos Fundamentales de SQL I D-4
Visión General de SQL*Plus
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
• 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. a
• Ejecutar archivos guardados. ) has
c o m
• ailฺ ฺ
Cargar comandos del archivo en el buffer para la edición.
h otm uide
8 4 4@ ent G
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
SQL*Plus ica s fe
R n
a en el que puede:
on esnun
SQL*Plus
c s - trentorno
i no sentencias SQL para recuperar, modificar, agregar y eliminar datos de la base de datos.
Ed • Ejecutar • Formatear, realizar cálculos, 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 categorías:
Categoría Objetivo
Entorno Afectar al comportamiento general de sentencias SQL para la sesión.
Formato Formatear resultados de consulta.
Manipulación de Guardar, cargar y ejecutar archivos de comandos.
archivos
Ejecución Enviar sentencias SQL del buffer SQL al servidor de Oracle.
Edición Modificar sentencias SQL en el buffer.
Interacción Crear y transferir variables a la sentencia SQL, imprimir valores de
variables y mensajes en la pantalla.
Otros Conectarse a la base de datos, manipular el entorno SQL*Plus y
mostrar definiciones de columnas.
s a
sqlplus [username[/password[@database]]] ) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud 2
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Conexión aic a sfe
SQL*Plus
R
n de llamarr ana SQL*Plus dependerá del tipo de sistema operativo en que esté ejecutando
La
s o
forma - t
d n on
icOracle Database.
E Para conectarse desde un entorno Linux, realice los siguientes pasos:
1. Haga clic con el botón 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 contraseña y el nombre de la base de datos.
En la sintaxis:
username Nombre de usuario de la base de datos.
password Contraseña de la base de datos (la contraseña será visible si la introduce aquí).
@database Cadena de conexión de la base de datos.
Nota: para asegurarse de la integridad de la contraseña, no la introduzca en la petición de datos del
sistema operativo. En su lugar, introduzca sólo el nombre de usuario. Introduzca la contraseña en la
petición de datos de la contraseña.
DESC[RIBE] tablename
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Visualización
R icade lanEstructura
s fe de la Tabla
En o n r a
SQL*Plus,-tpuede mostrar la estructura de una tabla mediante el comando DESCRIBE. El
i c s odelncomando es una visualización de los nombres de columna y tipos de dato, así como una
d n
resultado
E indicación de si una columna debe contener datos.
En la sintaxis:
tablename Nombre de cualquier tabla existente, vista o sinónimo al que puede acceder
el usuario.
Para describir la tabla DEPARTMENTS, utilice este comando:
SQL> DESCRIBE DEPARTMENTS
Name Null? Type
----------------------- -------- ---------------
DESCRIBE departments
•
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
A[PPEND] text
• C[HANGE] / old / new
• C[HANGE] / text /
• CL[EAR] BUFF[ER]
• DEL
• DEL n s a
• ) ha
DEL m n
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Comandoside
R caEdición n s feSQL*Plus
Los
s n
ocomandos
n - ra
tSQL*Plus se introducen en una línea al mismo tiempo y no se almacenan en el buffer
i c o
Ed SQL.Comando
n
Descripción
A[PPEND] text Agrega texto al final de la línea actual.
C[HANGE] / old / new Cambia el texto antiguo por el nuevo en la línea
actual.
C[HANGE] / text / Suprime el texto de la línea actual.
CL[EAR] BUFF[ER] Suprime todas las líneas del buffer SQL.
DEL Suprime la línea actual.
DEL n Suprime la línea n.
DEL m n Suprime de las líneas m hasta la n, inclusive.
Instrucciones
• Si pulsa Intro antes de que haya terminado la ejecución de un comando, SQL*Plus le solicitará
un número de línea.
• Termine el buffer SQL introduciendo uno de los caracteres de terminación (punto y coma o
barra) o pulsando [Intro] dos veces. Aparecerá la petición de datos SQL.
•
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
I[NPUT]
• I[NPUT] text
• L[IST]
• L[IST] n
• L[IST] m n
• R[UN] s a
• ) ha
n
l ฺ c om
• n text
t m ai eฺ
• 0 text @ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Comandoside
R caEdiciónn s feSQL*Plus (continuación)
s n
oComando
n - tra
d c
i I[NPUT]
n o Descripción
E Inserta un número indefinido de líneas.
I[NPUT] text Inserta una línea que consta de texto.
L[IST] Muestra todas las líneas en el buffer SQL.
L[IST] n Muestra una línea (especificada por n).
L[IST] m n Muestra un rango de líneas (m a n), inclusive.
R[UN] Muestra y ejecuta la sentencia SQL actual en el buffer.
n Especifica la línea para crear la línea actual.
n text Sustituye la línea n con texto.
0 text Inserta una línea delante de la línea 1.
Nota: puede introducir sólo un comando SQL*Plus para cada petición de datos SQL. Los comandos
SQL*Plus no se almacenan en el buffer. Para que un comando SQL*Plus continúe en la siguiente
línea, finalice la primera línea con un guión (-).
LIST
1 SELECT last_name
2* FROM employees
1
1* SELECT last_name a
s
) ha
l ฺ c om
A , job_id
t m ai eฺ
1* SELECT last_name, job_id
@ ho Guid
8 4 4 ent
LIST a r d0 Stud
1 SELECT last_name, job_id ( r ich this
2* FROM employees irez u se
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Uso de LIST,
R ican y APPEND
n s fe
• on
s ra L[IST] para mostrar el contenido del buffer SQL. El asterisco (*) situado
Utilice el-tcomando
n
i c noa la línea 2 en el buffer indica que la línea 2 es la línea actual. Cualquier edición que
Ed junto
realice se aplica a la línea actual.
• Introduzca el número (n) de la línea que desea editar para cambiar el número de la línea actual.
Se muestra la nueva línea actual.
• Utilice el comando A[PPEND] para agregar texto a la línea actual. Se muestra la línea recién
editada. Verifique el nuevo contenido del buffer mediante el comando LIST.
Nota: muchos de los comandos SQL*Plus, incluidos LIST y APPEND, se pueden abreviar sólo con
su primera letra. LIST se puede abreviar con L; APPEND se puede abreviar con A.
LIST
1* SELECT * from employees
c/employees/departments
s a
1* SELECT * from departments
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
LIST 8 4 4 ent
1* SELECT * from departments ard
0 tud
r i c h his S
z ( e t
r e s
a mi e to u
z R ns
o p e
Copyright
l i c e y/o sus filiales. Todos los derechos reservados.
© 2010, Oracle
r d o L rable
ica nCHANGE
Uso del Comando
R s fe
• on
s - tra para mostrar el contenido del buffer.
Utilice L[IST]
n
i c no el comando C[HANGE] para modificar el contenido de la línea actual del buffer SQL.
Ed • Utilice
En este caso, sustituya la tabla employees por la tabla departments. Se muestra la nueva
línea actual.
• Utilice el comando L[IST] para verificar el nuevo contenido del buffer.
•
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
SAVE filename
• GET filename
• START filename
• @ filename
• EDIT filename
• SPOOL filename s a
• ) ha
EXIT
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Comandoside
R caArchivos
n s fe SQL*Plus
n
Lasosentencias
s n - ra se comunican con el servidor de Oracle. Los comandos SQL*Plus controlan el
tSQL
c
i entorno, formatean
o los resultados de la consulta y gestionan archivos. Puede utilizar los comandos
Ed descritosnen la siguiente tabla:
Comando Descripción
SAV[E] filename [.ext] Guarda el contenido actual del buffer SQL en un archivo.
[REP[LACE]APP[END]] Utilice APPEND para agregar a un archivo existente; utilice
REPLACE para sobrescribir un archivo existente. La extensión
por defecto es .sql.
GET filename [.ext] Escribe el contenido de un archivo guardado anteriormente en
el buffer SQL. La extensión por defecto del nombre de archivo
es .sql.
STA[RT] filename [.ext] Ejecuta el archivo de comandos guardado anteriormente.
@ filename Ejecuta un archivo de comandos guardado anteriormente (igual
que START).
ED[IT] Llama al editor y guarda el contenido del buffer en un archivo
denominado afiedt.buf.
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
envía los resultados del archivo a la impresora.
EXIT Sale de SQL*Plus.
LIST
1 SELECT last_name, manager_id, department_id
2* FROM employees
SAVE my_query
Created file my_query
s a
) ha
START my_query
l ฺ c om
LAST_NAME MANAGER_ID DEPARTMENT_ID t m ai eฺ
------------------------- ---------- ------------- @ ho Guid
King 8 4 4 ent 90
Kochhar
a r
100d0 Stud 90
...
( r ich this
107 rows selected.
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
ca nsfeSAVE, START y EDIT
Uso de los iComandos
R
SAVE
c s on n-tra
i nel ocomando SAVE para almacenar el contenido actual del buffer en un archivo. De esta forma,
Ed Utilice
podrá almacenar los scripts utilizados con frecuencia para utilizarlos en el futuro.
START
Utilice el comando START para ejecutar un script en SQL*Plus. Además, también puede utilizar el
símbolo @ para ejecutar un script.
@my_query
Opción Descripción
s a
SET AUTOT[RACE] {ON | OFF | TRACE[ONLY]} [EXP[LAIN]] ) ha
[STAT[ISTICS]]
l ฺ c om
t m ai eฺ
SET AUTOTRACE ON @ ho Guid
-- The AUTOTRACE report includes both 8 4
the
4 optimizer
e n t
-- execution path and the SQL statement a r d0 Sexecutiont ud
-- statistics ( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
ica nAUTOTRACE
Uso del Comando
R s fe
on muestra
EXPLAIN
s n - tra la ruta de acceso de ejecución de consulta mediante la ejecución de EXPLAIN
c
i PLAN. STATISTICS
no
Ed puede muestra estadísticas de sentencias SQL. El formato del informe AUTOTRACE
variar en función de la versión del servidor al que está conectado y la configuración del
servidor. El paquete DBMS_XPLAN proporciona una forma fácil de mostrar la salida del comando
EXPLAIN PLAN en varios formatos predefinidos.
Nota
• Para obtener más información 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 más información sobre EXPLAIN PLAN, consulte Oracle Database SQL
Reference 11g (Referencia sobre SQL de Oracle Database 11g).
• Para obtener más información sobre las estadísticas de planes de ejecución, consulte
Oracle Database Performance Tuning Guide 11g (Guía de Ajuste del Rendimiento de
Oracle Database 11g).
Uso de JDeveloper
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Objetivos
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
ica nsfe
Oracle JDeveloper
R
Oracle
s n traes un entorno de desarrollo de integración (IDE) para desarrollar y desplegar
onJDeveloper
-
i c no Java y servicios web. Soporta cada etapa del ciclo de vida de desarrollo de software
Ed aplicaciones
(SDLC), del modelado al despliegue. Tiene funciones que permiten utilizar los últimos estándares de
la industria para Java, XML y SQL y desarrollar una aplicación.
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.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
ica nsfe
Database Navigator
R
Con
s n - tra puede almacenar la información necesaria para conectarse a la base de datos
n JDeveloper,
oOracle
c
i un objeto
no denominado “conexión”. Una conexión se almacena como parte de los valores de IDE y
Ed en
se puede exportar e importar para compartirla fácilmente entre grupos de usuarios. Una conexión
tiene diferentes fines, desde el examen de la base de datos y la creación de aplicaciones hasta el
despliegue.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Examen deic a sdefeBases de Datos
Objetos
R n
n creada-trlaaconexión
Una
c s ovez
n a la base de datos, puede utilizar el navegador de la base de datos para
i o
Ed examinarn los objetos de un esquema de base de datos entre los que se incluyen tablas, vistas, índices,
paquetes, procedimientos, disparadores y tipos.
Puede ver la definición de los objetos desglosados en separadores de información que se transfieren
al diccionario de datos. Por ejemplo, si selecciona una tabla en el navegador, se muestran los detalles
sobre las columnas, restricciones, permisos, estadísticas, disparadores, etc., en un navegador de la
base de datos fácil de leer.
2
s a
) ha
l ฺ c om
t m ai eฺ
3 @ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Ejecuciónicde a Sentencias
s fe SQL
R n
Para
s n
oejecutar
n - trasentencia SQL, realice los siguientes pasos:
una
i c noclic en el icono Open SQL Worksheet.
Ed 1. Haga
2. Seleccione la conexión.
3. Ejecute el comando SQL haciendo clic en:
1. El botón Execute statement o pulsando F9. La salida es la siguiente:
2
s a
) ha
l ฺ c om
1 t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this 3
z e
ire to us Esqueleto de la Función
m
z Ra nse
o p e© 2010, lOracle
Copyright i c e y/o sus filiales. Todos los derechos reservados.
r d o L rable
Creación de a sfede Programa
icUnidades
R an de programa PL/SQL, realice los siguientes pasos:
n una-tunidad
r
s o
Para crear
d n on View > Database Navigator. Seleccione y amplíe una conexión de base de datos.
ic 1. Seleccione
E Haga clic con el botón derecho del mouse en una carpeta que corresponda al tipo de objeto
(Procedures, Packages, Functions). Seleccione “New [Procedures|Packages|Functions]”.
2. Introduzca un nombre válido para la función, el paquete o el procedimiento y haga clic en OK.
3. Se crea una estructura básica que se abre en la ventana Code Editor. A continuación, puede
editar el subprograma para que se ajuste a sus necesidades.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Ejecución de
R icauna nUnidad
s fe de Programa
Para n
oejecutar -
la a de programa, haga clic con el botón derecho del mouse en el objeto y haga
trunidad
i c s n
no Aparece el cuadro de diálogo Run PL/SQL. Puede que tenga que cambiar los valores
Ed clic en Run. NULL por valores razonables que se transfieren a la unidad de programa. Después de cambiar los
valores, haga clic en OK. La salida se mostrará en la ventana Message-Log.
s a
) ha
l ฺ c om
t m ai eฺ
1
@ ho Guid
8 4 4 ent
a r d0 Stud 2
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Borrado deic a Unidad
una s fede Programa
R n
a de programa, haga clic con el botón derecho del mouse en el objeto y
n una-trunidad
Para
c s oborrar n
i noDrop. Aparece el cuadro de diálogo Drop Confirmation; haga clic en Apply. El objeto se
Ed seleccione
borra de la base de datos.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
ica nsfe
Ventana Structure
R
Las n - tra ofrece una vista estructural de los datos del documento seleccionados
n Structure
oventana
i c no en la ventana activa de las ventanas que proporcionan estructura: navegadores, editores,
Ed actualmente
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 están basadas en el tipo de documento. Para un archivo Java, puede ver la estructura del
código, 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 diseño o los datos de modelo de
interfaz de usuario.
La ventana Structure es dinámica y realiza siempre un seguimiento de la selección 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 selección actual es un nodo del
navegador, se asume el editor por defecto. Para cambiar la vista en la estructura de la selección
actual, haga clic en un separador de estructura distinto.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
a sfe
Ventana delicEditor
R
n doble-tclic
r anen el nombre de una unidad de programa, se abre en la ventana del editor. Puede
Al
s o
hacer
d icver todosnolosnarchivos de proyectos en una única ventana del editor, abrir varias vistas del mismo
E archivo o abrir varias vistas de diferentes archivos.
Los separadores situados en la parte superior de la ventana del editor son los separadores del
documento. Al hacer clic en un separador del documento, dicho documento se enfoca y se coloca en
primer plano en la ventana del editor actual.
Los separadores situados en la parte inferior de la ventana del editor para un archivo concreto son los
separadores del editor. Al seleccionar un separador del editor, el archivo se abre en ese editor.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Navegadoride
R caAplicaciones
n s fe
Elsnavegador a
on n-detraplicaciones proporciona una vista lógica de la aplicación y de los datos que
i c o
Ed contiene.
n Además proporciona una infraestructura a la que las distintas extensiones pueden
conectarse y utilizar para organizar los datos y menús de forma abstracta y consistente. Aunque el
navegador de aplicaciones puede contener archivos individuales (como archivos de origen Java), está
diseñado 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.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 2Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Publicaciónicde a Javasen fePL/SQL
R n
Las n
odiapositiva
n - tra el código Java y cómo publicar el código Java en un procedimiento PL/SQL.
muestra
i c no
Ed
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Objetivos
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
EMPLOYEES DEPARTMENTS
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
… ( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Obtención ide
R caDatos n s feVarias Tablas
de
on necesita
Asveces,
n - trautilizar datos de más de una tabla. En el ejemplo de la diapositiva, el informe
i c o
Ed muestrandatos de dos tablas independientes:
• La tabla EMPLOYEES contiene los ID de empleado.
• Las tablas EMPLOYEES y DEPARTMENTS contienen los ID de departamento.
• La tabla DEPARTMENTS contiene los nombres de departamento.
Para producir el informe, necesita enlazar las tablas EMPLOYEES y DEPARTMENTS y acceder a los
datos de ambas.
s a
) ha
l ฺ c om
Producto cartesiano:
t m ai eฺ
20 x 8 = 160 filas
@ ho Guid
…
8 4 4 ent
a r d0 Stud
… ( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Generaciónicde a un Producto
s fe Cartesiano
R n
Se
s n - tra cartesiano si se omite una condición de unión. En el ejemplo de la diapositiva
n un producto
ogenera
c
i se muestra
noel apellido del empleado y el nombre del departamento de las tablas EMPLOYEES y
Ed DEPARTMENTS, respectivamente. Ya que no se ha especificado ninguna condición de unión, todas
las filas (20 filas) de la tabla EMPLOYEES se unen con todas las filas (8 filas) de la tabla
DEPARTMENTS, por lo que se generan 160 filas en la salida.
SELECT last_name, department_name dept_name
FROM employees, departments;
• Unión igualitaria
• Unión no igualitaria
• Unión externa
• Autounión
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
ica nsfe
Tipos de Uniones
R
Para n tablas,
ounir - a utilizar la sintaxis de unión de Oracle.
trpuede
i c s n
Ed Nota: no de la versión de Oracle9i , la sintaxis de unión era propietaria. La sintaxis de unión
antes
compatible con SQL:1999 no ofrece ninguna ventaja en el rendimiento respecto a la sintaxis de
unión propietaria de Oracle.
Oracle no tiene una sintaxis equivalente para soportar FULL OUTER JOIN de la sintaxis de unión
compatible con SQL:1999.
EMPLOYEES DEPARTMENTS
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
s a
m ) ha
… l ฺ c o
t m ai eฺ
Clave primaria
@ ho Guid
Clave ajena 8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
ica nsfe
Uniones igualitarias
R
Para
s n
odeterminar
n - trelanombre de departamento de un empleado, compare el valor de la columna
i c no
Ed DEPARTMENT_ID en la tabla EMPLOYEES con los valores de DEPARTMENT_ID de la tabla
DEPARTMENTS. La relación entre las tablas EMPLOYEES y DEPARTMENTS es una unión
igualitaria; es decir, los valores de la columna DEPARTMENT_ID de ambas tablas deben ser iguales.
A menudo, este tipo de unión implica complementos de clave primaria y ajena.
Nota: las uniones igualitarias también se denominan uniones simples o uniones internas.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
… i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Recuperación
R icade Registros
n s fe con Uniones Igualitarias
Ens oelnejemplo
n - trala diapositiva:
de
i c o
Ed • Lan- cláusula SELECT especifica los nombres de columna que se van a recuperar:
El apellido de empleado, número de empleado y número de departamento, que son
columnas de la tabla EMPLOYEES
- El número de departamento, nombre de departamento e ID de ubicación, que son
columnas de la tabla DEPARTMENTS
• La cláusula FROM especifica las dos tablas a las que la base de datos debe acceder:
- Tabla EMPLOYEES
- Tabla DEPARTMENTS
• La cláusula WHERE especifica cómo se van a unir las tablas:
e.department_id = d.department_id
Debido a que la columna DEPARTMENT_ID es común a las dos tablas, debe tener como prefijo el
alias de tabla para evitar la ambigüedad. Otras columnas que no estén presentes en las tablas no es
necesario que se cualifiquen según 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.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Recuperación
R icade Registros
n s fe con Uniones Igualitarias: Ejemplo
En o
s eln trala diapositiva, la tabla LOCATIONS está unida a la tabla DEPARTMENTS mediante
ejemplo-de
n
c
i la columna
noLOCATION_ID, que es la única con el mismo nombre en ambas. Los alias de tabla se
Ed utilizar para cualificar las columnas y evitar ambigüedades.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Condiciones
R icade Búsqueda
n s fe Adicionales mediante el Operador AND
Además
s tra puede tener diferentes criterios para la cláusula WHERE para restringir las filas
on de nla-unión,
c
i consideración
no
Ed bajo para una o más tablas en la unión. El siguiente ejemplo de la diapositiva limita las
filas de salida a las que tienen un ID de departamento igual a 20 o a 50:
Por ejemplo, para mostrar el número y nombre de departamento del empleado Matos, necesita una
condición adicional en la cláusula WHERE.
SELECT e.last_name, e.department_id,
d.department_name
FROM employees e, departments d
WHERE e.department_id = d.department_id
AND last_name = 'Matos';
s a
) ha
… l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
Para unir n tablas, necesita a r d0un mínimo
S t ud de n–1
condiciones de unión.
( r ichPortejemplo,is para unir tres tablas
hdos
se necesitaneun
i r z mínimo
u s e de uniones.
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Unión de Más
R icade Dos n s e
fTablas
Puede
s - tranecesite unir más de dos tablas. Por ejemplo, para mostrar el apellido, el nombre
onque anveces
i c no y la ciudad de cada empleado, tiene que unir las tablas EMPLOYEES,
Ed de departamento DEPARTMENTS y LOCATIONS.
SELECT e.last_name, d.department_name, l.city
FROM employees e, departments d, locations l
WHERE e.department_id = d.department_id
AND d.location_id = l.location_id;
EMPLOYEES JOB_GRADES
s a
) ha
l ฺ c om
JOB_GRADES define el rango de t m ai
valoreseฺ
de LOWEST_SAL y HIGHEST_SAL @ ho G deu id
cada
… GRADE_LEVEL. Por8lo 4 4tanto,elancolumna
t
GRADE_LEVELrse
a d0puede S t d para
uutilizar
asignarrigrados
( ch tahcada is empleado.
z
ire to us e
m
z Ra nse
o p e© 2010, lOracle
Copyright i c e y/o sus filiales. Todos los derechos reservados.
r d o L rable
Uniones noic a sfe
Igualitarias
R an es una condición de unión que contiene algún operador diferente del
n no-igualitaria
r
Una
s ounión t
d icoperadornodenigualdad.
E La relación entre la tabla EMPLOYEES y JOB_GRADES es un ejemplo de unión 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 según el salario. La relación se obtiene mediante un operador distinto del de
igualdad (=).
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
…
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Recuperación
R icade Registros
n s fe
con Uniones no Igualitarias
Las n
odiapositiva
n - traejemplo crea una unión no igualitaria para evaluar el grado de salario de un
del
i c noEl salario debe estar entre cualquier par de los rangos de salario bajos y altos.
Ed empleado.
Es importante tener en cuenta que todos los empleados aparecerán sólo una vez al ejecutar esta
consulta. No se repite ningún empleado en la lista. Existen dos motivos por los que se produce este
hecho:
• Ninguna de las filas de la tabla de grados de cargo contiene grados que se solapen. Es decir, el
valor de salario de un empleado sólo puede oscilar entre los valores de salario bajo y alto de
una de las filas de la tabla de grados de salario.
• Todos los salarios de los empleados oscilan entre los límites proporcionados por la tabla de
grados de cargo. Es decir, ningún empleado gana menos que el valor más bajo de la columna
LOWEST_SAL o más que el valor más alto de la columna HIGHEST_SAL.
Nota: se pueden utilizar otras condiciones (como <= y >=), pero BETWEEN es la más simple.
Recuerde especificar primero el valor bajo y, a continuación, el alto, al utilizar BETWEEN. El
servidor Oracle convierte la condición BETWEEN en un par de condiciones AND. Por lo tanto, el uso
de BETWEEN no proporciona ninguna ventaja, se recomienda sólo para la simplicidad lógica.
En el ejemplo de la diapositiva se han especificado los alias de tabla por motivos de rendimiento, no
por una posible ambigüedad.
DEPARTMENTS EMPLOYEES
s a
) ha
l ฺ c om
t m ai eฺ
…
@ ho Guid
8 4 4 ent
a r d0 Stud
No ( r ch ningún
ihay this empleado en el
z
ire departamentous e 190.
m t o
z Ra nse
o p e© 2010, lOracle
Copyright i c e y/o sus filiales. Todos los derechos reservados.
r d o L rable
Devoluciónic aRegistros
de s fe sin Coincidencia Directa con las Uniones Externas
R n
tra una condición de unión, la fila no aparece en el resultado de consultas. Por
onfila non-cumple
Sisuna
c
i ejemplo,nen
o la condición de unión igualitaria de las tablas EMPLOYEES y DEPARTMENTS, el ID de
Ed departamento 190 no aparece porque no hay ningún empleado con ese ID de departamento registrado
en la tabla EMPLOYEES. Igualmente, hay un empleado cuyo DEPARTMENT_ID se ha definido en
NULL, por lo que esta fila tampoco aparecerá en los resultados de la consulta de una unión
igualitaria. Para volver al registro de departamento que no tiene ningún empleado o volver al registro
de empleado que no pertenece a ningún departamento, puede utilizar la unión externa.
• Utilice una unión externa para ver las filas que no cumplen
la condición de unión.
• El operador de unión externa es el signo más (+).
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
… a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Uso de Uniones
R ica Externas
n s fe
Ens oelnejemplo
n - trala diapositiva se muestran los apellidos de los empleados e ID y nombres de
de
i c no El departamento Contracting no tiene ningún empleado. El valor vacío no se muestra
Ed departamento.
en la salida.
Restricciones de Unión Externa
• La unión externa sólo puede aparecer a un lado de la expresión, el lado al que le falta
información. Devuelve aquellas filas, de una tabla, que no tienen coincidencia directa en la otra
tabla.
• Una condición que incluya una unión externa no puede utilizar el operador IN ni se puede
enlazar a otra condición con el operador OR.
Nota: Oracle no tiene una sintaxis equivalente para soportar FULL OUTER JOIN de la sintaxis de
unión compatible con SQL:1999.
s a
) ha
l ฺ c om
… ai eฺ
t m
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
ica Otro
Unión Externa:
R n s fe
Ejemplo
La o
s consulta
n ra de la diapositiva recupera todas las filas de la tabla EMPLOYEES, incluso si
n del-tejemplo
i c no
Ed no hay coincidencia en la tabla DEPARTMENTS.
s a
) ha
l ฺ c om
t m ai eฺ
… … ho Guid
4 @
4 ent
8
d0 Stud
a r
MANAGER_ID en la(tabla r ich WORKER t his es igual a
EMPLOYEE_ID i r z
e en u e
lastabla MANAGER.
am se t o
R
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Unión de una
R icaTablansconsigo
fe Misma
Puede
s - tranecesite unir una tabla consigo misma. Para buscar el nombre de cada gestor del
onque anveces
i c nonecesita unir la tabla EMPLOYEES consigo misma o realizar una autounión. Por ejemplo,
Ed empleado, para buscar el nombre del gestor de Lorentz, necesita:
• Buscar a Lorentz en la tabla EMPLOYEES buscando en la columna LAST_NAME.
• Busque el número de gestor de Lorentz consultando la columna MANAGER_ID. El número de
gestor de Lorentz es 103.
• Busque el nombre del supervisor con un EMPLOYEE_ID de 103 consultando la
columnaLAST_NAME. El número de empleado de Hunold es 103, por lo que Hunold en el
gestor de Lorentz.
Durante este proceso, busca dos veces en la tabla. La primera vez, cuando consulta la tabla para
buscar a Lorentz en la columna LAST_NAME y el valor de MANAGER_ID de 103. La segunda vez,
cuando busca en la columna EMPLOYEE_ID para buscar 103 y en la columna LAST_NAME para
buscar a Hunold.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
… i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Autounión:ic a sfe
Ejemplo
R an
n de-latrdiapositiva
c s o
El ejemplo
n une la tabla EMPLOYEES consigo misma. Para simular dos tablas en la
i o
Ed En estenejemplo, la cláusula WHERE
cláusula FROM, existen dos alias, llamados worker y manager, para la misma tabla EMPLOYEES.
contiene la unión que significa “donde el número de gestor de un
trabajador coincide con el número de empleado del gestor ”.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
Resumen ica s fe
R n
Hay
s n modos
ovarios n - trade unir tablas.
i c o
Ed Tipos den Uniones • Uniones igualitarias
• Uniones no igualitarias
• Uniones externas
• Autouniones
Productos Cartesianos
Un producto cartesiano da como resultado una visualización de todas las combinaciones de filas.
Para ello debe omitir la cláusula WHERE.
Alias de Tabla
• Los alias de tabla aceleran el acceso a la base de datos.
• Los alias pueden ayudar a mantener el código SQL más pequeño utilizando de esta forma
menos memoria.
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p e©z2010, lOracle
Copyright i c eny/o sus filiales. Todos los derechos reservados.
r d o L rable
ca nGeneral
Práctica F: iVisión
R s fe
Esta
s n
opráctica
n - tradestinada a proporcionarle experiencia práctica en la extracción de datos desde más
está
i c no utilizando sintaxis de unión en Oracle.
Ed de una tabla
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
Índice
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed
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,
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2015, Oracle and/or its affiliatesฺ
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,
s a
) ha
F-15
l ฺ c om
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
t m ai eฺ
atributos i-22, i-23, i-24
@ ho Guid
4
autounión 6-2, 6-20, 6-21, F-2, F-20
8 4 ent
r d0 Stud
AVG 5-3, 5-5, 5-7, 5-8, 5-12, 5-15, 5-25, 5-28
a
B ( r ich this
i r z use
e2-19,
BETWEEN 2-3, 2-8, 2-10, 2-12, 2-18, m e to2-20, 2-22, 2-26,
2-34, 2-37, 2-38, 6-24,
a
R ns
F-15
p e z c e
C o
L ble l i
r d o ra 4-27, 4-32, 4-36, 4-37, 4-38, 4-39,
CASE 3-7,a4-3, 4-10,e4-23,
i c
R 4-44, s f
o n 4-40,
- t r an4-45, 5-6
s
ic CHECK n 10-3, 10-7, 10-12, 10-16, 10-17, 10-28, 10-29, 10-32, 10-35,
o9-8,
Ed n
10-38, 11-8, 11-9, 11-17
cláusula 1-5, 1-7, 1-11, 1-20, 1-24, 2-3, 2-4, 2-5, 2-6,
2-7, 2-8, 2-9, 2-11, 2-15, 2-19, 2-22, 2-23, 2-24, 2-25, 2-26,
2-27, 2-28, 2-31, 2-32, 2-34, 2-37, 2-38, 2-39, 3-12, 3-17, 4-38,
4-39, 5-2, 5-9, 5-13, 5-14, 5-15, 5-16, 5-18, 5-19, 5-20, 5-21,
5-22, 5-23, 5-26, 5-27, 5-28, 5-29, 6-6, 6-7, 6-9, 6-10, 6-11,
6-14, 6-15, 6-16, 6-17, 6-18, 6-21, 6-34, 6-36, 7-2, 7-5, 7-13,
7-14, 7-15, 7-23, 7-25, 8-3, 8-5, 8-6, 8-7, 8-12, 8-13, 8-15,
8-17, 8-18, 8-21, 8-24, 8-27, 8-28, 8-29, 8-30, 9-6, 9-7, 9-8,
9-12, 9-15, 9-16, 9-17, 9-22, 9-43, 9-44, 9-47, 10-14, 10-33, 10-39,
11-12, 11-14, 11-15, 11-16, 11-17, 11-25, 11-28, 11-38, F-4, F-7, F-8,
F-10, F-12, F-17, F-21, F-22
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
s a
) ha
consulta i-30, 1-4, 1-8, 1-17, 1-18, 1-24, 2-2, 2-5, 2-23,
l ฺ c om
2-25, 2-27, 2-31, 2-33, 3-6, 3-26, 3-33, 4-21, 4-35, 5-15, 6-7,
t m ai eฺ
6-14, 6-16, 6-20, 6-24, 6-28, 6-29, 6-30, 7-4, 7-5, 7-6, 7-11,
ho Guid
7-12, 7-13, 7-14, 7-15, 7-17, 7-22, 7-24, 7-25, 7-26, 8-5, 8-6,
@
4 4 ent
8-13, 8-17, 8-19, 8-20, 8-22, 8-25, 8-26, 8-28, 8-29, 8-30, 9-23,
8
r d0 Stud
9-33, 9-44, 9-47, 10-28, 10-42, 11-8, 11-29, 11-36, 11-37, 11-38, C-18,
a
r ich this
C-28, D-3, D-5, D-13, D-16, D-17, F-8, F-10, F-15, F-16, F-19,
(
i r ez use
F-20
R am se to
COUNT 5-3, 5-5, 5-9, 5-12, 5-19, 5-25, 5-28
o p ez licen CURRENT_DATE 3-24, 9-9
r d o L rable CURRVAL 10-10, 10-28, 11-3, 11-22, 11-27, 11-28, 11-29, 11-33, 11-40
D R ica nsfe
s on i-17
n - tra
i c DBMS
no 3-7, 4-3, 4-10, 4-23, 4-27, 4-36, 4-37, 4-39, 4-40, 4-41,
Ed DECODE
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
10-41, 11-35, 11-42, C-3, C-5, C-8, C-10, C-13, E-5, E-6
expresión 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
s a
fecha i-22, 1-9, 1-11, 1-20, 1-21, 2-7, 2-24, 2-31, 3-2, 3-3, ) ha
c om
3-7, 3-8, 3-15, 3-17, 3-18, 3-20, 3-21, 3-22, 3-23, 3-24, 3-25,
l ฺ
t m ai eฺ
3-26, 3-27, 3-28, 3-29, 3-30, 3-32, 3-33, 4-5, 4-11, 4-14, 4-16,
@ ho Guid
4-20, 4-21, 4-22, 4-25, 4-29, 4-43, 4-44, 5-8, 8-8, 9-7, 9-9,
8 4 4 ent
9-10, 10-11, 10-13, 10-15
a r d0 Stud
( r ich this
funciones i-2, i-4, i-9, i-10, i-11, i-13, i-16, i-39, 2-5,
i r ez use
2-7, 3-2, 3-4, 3-5, 3-6, 3-7, 3-9, 3-10, 3-11, 3-13, 3-16,
R am se to
3-17, 3-18, 3-24, 3-28, 3-30, 3-31, 3-32, 3-33, 4-2, 4-4, 4-7,
o p ez licen 4-9, 4-20, 4-24, 4-28, 4-44, 4-45, 5-2, 5-3, 5-4, 5-5, 5-6,
r d o L rable 5-7, 5-8, 5-11, 5-12, 5-13, 5-14, 5-15, 5-19, 5-20, 5-22, 5-25,
R i ca nsfe 5-26, 5-27, 5-28, 5-29, 7-2, 7-25, 8-25, 9-9, 10-10, 10-18, 10-28,
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 a
s
Java i-12, C-4, C-8, E-3, E-12, E-14, E-15, E-16
) ha
L l ฺ c om
LENGTH 3-9, 3-10, 3-13, 3-14, 3-32 t m ai eฺ
LIKE 2-3, 2-8, 2-12, 2-13, 2-16, 2-17, 2-18, 2-19, 2-20, 2-22, @h
o uid
4 4 n t G
2-26, 2-34, 2-37, 2-38, 3-30, 5-7, 5-24, 9-12, 9-230
d 8 u de
literal 1-14, 1-21, 1-22, 1-23, 3-13, 4-11, 4-31, 4-32,
r
ha 4-38, S t
( r i c t h i s
8-26, 10-10
r e z s e
LPAD 3-9, 3-13
a mi e to u
z R ns
M
o p e l i c e
MAX 5-3, 5-5, 5-7,
r d o L5-8,ra5-12,
ble5-25, 5-28
MIN 5-3,ic a 5-7,s5-8,
5-5, f e 5-12, 5-25, 5-28, 7-12
R
n 8-3,-t8-4,
MINUS r an8-5, 8-7, 8-12, 8-18, 8-21, 8-22, 8-23, 8-24,
s o
d ic n8-27, on 8-30, 8-31
E MOD 3-16, 3-19, 3-32
N
NEXTVAL 10-10, 10-28, 11-3, 11-22, 11-27, 11-28, 11-33, 11-40
nomenclatura 10-3, 10-5, 10-7, 10-12, 10-16, 10-18, 10-32, 10-35, 10-38
NOT 1-14, 1-26, 1-27, 2-3, 2-14, 2-15, 2-18, 2-19, 2-20, 2-22,
2-26, 2-34, 2-38, 5-24, 7-19, 7-20, 7-22, 7-23, 9-8, 10-3, 10-7,
10-12, 10-16, 10-17, 10-19, 10-20, 10-21, 10-22, 10-23, 10-26, 10-29, 10-32,
10-33, 10-35, 10-38, 11-16, D-7, D-8
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,
s a
) ha
4-44, 5-6, 5-11
O
l ฺ c om
OLTP i-11, i-16
t m ai eฺ
ho Guid
ON 2-36, 6-3, 6-5, 6-6, 6-8, 6-15, 6-16, 6-17, 6-18, 6-19,
@
8 4 4 ent
6-21, 6-22, 6-24, 6-25, 6-27, 6-28, 6-29, 6-30, 6-31, 9-31, 10-27,
a r d0 Stud
11-13, 11-37, D-15, D-17
( r ich this
opción i-24, 2-13, 9-31, 10-10, 10-33, 11-8, 11-9, 11-12, 11-18, 11-25,
i r ez use
11-26, 11-31, 11-32, C-13, C-19, C-26
R am se to
operador 1-3, 1-10, 1-12, 1-16, 1-19, 1-20, 1-23, 1-25, 2-5,
o p ez licen 2-10, 2-11, 2-12, 2-14, 2-18, 4-30, 6-23, 7-3, 7-7, 7-9, 7-10,
r d o L rable 7-14, 7-16, 7-17, 7-18, 7-19, 7-20, 7-21, 7-22, 7-25, 8-2, 8-4,
R ica nsfe 8-5, 8-6, 8-13, 8-14, 8-16, 8-17, 8-19, 8-22, 8-25, 8-26, 8-29,
c s on n-tra 8-30, 8-31, F-14, F-17, F-18
i no
Ed 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
ordenación 2-23, 2-24, 2-25
P
pseudocolumnas 10-28, 11-27, 11-28
t m ai eฺ
10-20, 10-21, 10-22, 10-23, 10-24, 10-25, 10-26, 10-27, 10-28, 10-30, 10-31,
ho Guid
10-33, 11-8, 11-9, 11-17, 11-19, 11-21, 11-34, 11-36, 11-38, 11-44
@
8 4 4 ent
ROUND 3-16, 3-17, 3-18, 3-28, 3-30, 3-32, 4-26
RPAD 3-9, 3-13 a r d0 Stud
( r i ch this
S
i r e z use
R am11-22,
secuencias 2-24, 10-9, 11-2, 11-3,
e to 11-24, 11-25, 11-30,
11-23,
11-31, 11-33, 11-39, z
p e c e ns 11-45, 11-46
11-40, 11-42,
Lo ble li
selección C-6, E-12
o
i c ard sfera
n R ran
i c s o
o n -t
Ed n
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,
s a
) ha
5-22, 5-23, 5-24, 5-26, 5-27, 5-28, 6-2, 6-6, 6-7, 6-10, 6-13,
l ฺ c om
6-14, 6-16, 6-17, 6-18, 6-21, 6-24, 6-28, 6-29, 6-30, 6-34, 7-2,
t m ai eฺ
7-5, 7-6, 7-8, 7-10, 7-11, 7-12, 7-13, 7-14, 7-15, 7-17, 7-18,
ho Guid
7-19, 7-20, 7-22, 7-23, 7-25, 7-26, 8-3, 8-5, 8-6, 8-7, 8-10,
@
4 4 ent
8-11, 8-12, 8-13, 8-14, 8-15, 8-17, 8-18, 8-19, 8-20, 8-21, 8-22,
8
r d0 Stud
8-23, 8-24, 8-25, 8-26, 8-27, 8-28, 8-29, 8-30, 9-3, 9-9, 9-12,
a
( r ich this
9-13, 9-16, 9-17, 9-18, 9-19, 9-22, 9-23, 9-25, 9-33, 9-37, 9-39,
i r ez use
9-40, 9-41, 9-42, 9-43, 9-44, 9-45, 9-47, 10-9, 10-33, 10-34, 10-37,
R am se to 10-42, 11-5, 11-8, 11-9, 11-10, 11-11, 11-12, 11-13, 11-17, 11-19, 11-28,
o p ez licen 11-29, B-4, B-5, B-6, B-7, B-8, B-9, B-10, C-25, D-2, D-11,
r d o L rable D-12, D-14, D-17, F-2, F-5, F-7, F-8, F-10, F-11, F-12, F-13,
R ica nsfe F-15, F-17, F-18, F-19, F-21
c s on n-tra
i no
Ed
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,
s a
) ha
9-34, 9-35, 9-36, 9-37, 9-38, 9-39, 9-40, 9-41, 9-42, 9-43, 9-44,
l ฺ c om
9-47, 10-8, 10-10, 10-11, 10-19, 10-29, 10-31, 10-33, 10-36, 10-37, 10-39,
t m ai eฺ
10-41, 10-42, 11-5, 11-6, 11-8, 11-10, 11-13, 11-20, 11-25, 11-28, 11-29,
ho Guid
11-30, 11-31, 11-32, 11-37, 11-39, 11-43, C-13, C-16, C-19, C-23, C-25,
@
4 4 ent
C-26, C-28, D-3, D-5, E-7, F-7, F-8
8
r d0 Stud
sinónimo i-24, 1-24, 1-26, 7-18, 11-2, 11-42, 11-43, 11-46, D-7
a
r ich this
subconsulta 7-3, 7-4, 7-5, 7-7, 7-9, 7-10, 7-11, 7-12, 7-13,
(
i r ez use
7-14, 7-15, 7-16, 7-17, 7-18, 7-19, 7-20, 7-21, 7-22, 7-23, 7-24,
R am se to 7-25, 9-12, 9-15, 9-23, 10-3, 10-7, 10-12, 10-14, 10-33, 10-35, 10-38,
o p ez licen 10-41, 11-8, 11-9, 11-10, 11-12, 11-28
r d o L rable SUBSTR 3-9, 3-10, 3-13, 3-32, 4-25
R ica nsfe SYSDATE 3-23, 3-24, 3-26, 3-29, 3-30, 3-32, 9-9, 10-10, 10-11,
c s on n-tra 10-28
i no
Ed
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,
s a
) ha
9-25, 9-35, 9-37, 9-39, 9-41, 9-42, 9-43, 9-44, 9-47, 9-48, 10-2,
l ฺ c om
10-3, 10-4, 10-5, 10-7, 10-8, 10-9, 10-10, 10-11, 10-12, 10-13, 10-14,
t m ai eฺ
10-17, 10-18, 10-19, 10-20, 10-21, 10-22, 10-23, 10-24, 10-25, 10-26, 10-27,
ho Guid
10-28, 10-29, 10-30, 10-31, 10-33, 10-34, 10-35, 10-36, 10-37, 10-38, 10-39,
@
4 4 ent
10-40, 10-41, 10-42, 11-5, 11-6, 11-7, 11-11, 11-16, 11-26, 11-29, 11-30,
8
r d0 Stud
11-35, 11-36, 11-37, 11-38, 11-39, 11-41, 11-42, 11-43, 11-44, C-10, C-11,
a
( r ich this
C-13, C-14, C-15, D-4, D-5, D-7, D-8, D-12, D-13, E-6, F-2,
i r ez use
F-3, F-4, F-5, F-7, F-8, F-9, F-10, F-11, F-14, F-15, F-16,
R am se to F-17, F-18, F-19, F-20, F-21, F-22, F-23
o p ez licen TO_CHAR 4-2, 4-3, 4-7, 4-8, 4-9, 4-10, 4-11, 4-16, 4-17,
r d o L rable 4-18, 4-19, 4-22, 4-23, 4-26, 4-27, 4-34, 4-36, 4-44, 4-45, 8-25
R ica nsfe TO_DATE 4-2, 4-3, 4-7, 4-8, 4-9, 4-10, 4-20, 4-21, 4-22,
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, a
s
11-17, 11-20, 11-21, 11-22, 11-33, 11-39, 11-40, 11-42, 11-45, C-10, E-6,
) ha
E-13
l ฺ c om
W t m ai eฺ
WHERE 2-3, 2-4, 2-5, 2-6, 2-7, 2-8, 2-9, 2-10, 2-11, 2-12, @ ho Guid
2-13, 2-14, 2-15, 2-16, 2-17, 2-18, 2-19, 2-21, 2-22, 8 4 4 2-26,
2-23, e n t
a r d0 2-38,
S t d
u2-39,
2-27, 2-28, 2-29, 2-31, 2-32, 2-34, 2-35, 2-36,
( r i ch this2-37,
3-6, 3-12, 3-14, 3-19, 3-21, 3-26, 3-29,
i r e z 3-30,u s e4-11, 4-19, 4-21,
R am 5-9,
4-22, 4-25, 4-31, 4-42, 5-6, 5-7,
e to 5-15, 5-18, 5-20,
5-14,
5-21, 5-22, 5-24, 5-27,
p e ns 6-14, 6-15, 6-18, 6-36, 7-2,
z 5-28,ce6-10,
o 7-12,
7-5, 7-6, 7-10,L7-11, l e li7-13, 7-14, 7-15, 7-17, 7-18, 7-19,
7-20, a
7-22,
o
rd 7-23, r ab 8-5, 9-9, 9-12, 9-15, 9-16, 9-17, 9-18,
7-25,
c f e
n Ri 9-22,
9-21, r a n s
9-23, 9-35, 9-37, 9-41, 9-43, 9-44, 9-45, 10-30, 10-31,
i c so 10-34,
o n -t11-9, 11-10, 11-12, 11-17, 11-19, 11-38, F-4, F-7, F-10, F-11,
Ed n
F-12, F-13, F-15, F-17, F-18, F-19, F-21, F-22
X
XML i-9, i-14, i-39, C-7, C-9, C-27, E-3, E-12
s a
) ha
l ฺ c om
t m ai eฺ
@ ho Guid
8 4 4 ent
a r d0 Stud
( r ich this
i r ez use
R am se to
o p ez licen
r d o L rable
R ica nsfe
c s on n-tra
i no
Ed