You are on page 1of 84

Introduccin a Oracle SQL-Plus

Introduccin a Oracle SQL-Plus

Introduccin a Oracle SQL-Plus

INDICE DE CONTENIDO
ACCESO Y VISUALIZACIN DE DATOS .......................................................................................4 EL MODELO RELACIONAL ..............................................................................................................4 VISIN GENERAL DE SQL................................................................................................................6 SQL CONTRA SQL*PLUS ..................................................................................................................6 Comandos SQL......................................................................................................................................6 Use los comandos de SQL*Plus para:....................................................................................................6 VISIN GENERAL DEL INICIO DE UNA SESIN SQL.................................................................7 ACCESO A LA AYUDA ......................................................................................................................8 VISTAZO DE LA SENTENCIA SELECT...........................................................................................8 SELECCIN DE COLUMNAS ............................................................................................................9 SELECCIN DE FILAS .....................................................................................................................12 VER EL DICCIONARIO DE DATOS................................................................................................20 Nombre de tabla ...................................................................................................................................20 Descripcin...........................................................................................................................................20 EDICIN DEL BUFFER DE SQL-PLUS ..........................................................................................21 LABORATORIO 1-1...........................................................................................................................24 EJECUCIN DE OPERACIONES SOBRE TIPOS DE DATOS Y FUNCIONES ...........................25 VISTAZO A LOS VALORES Y FUNCIONES NUMRICOS.........................................................25 REFERENCIA DE LOS VALORES Y FUNCIONES NUMRICOS...............................................25 VISTAZO A LOS VALORES Y FUNCIONES DE FECHA .............................................................30 REFERENCIA DE LOS VALORES Y FUNCIONES DE FECHA ...................................................30 REFERENCIA DE LOS VALORES Y FUNCIONES DE CARACTERES ......................................34 VISIN GENERAL DE ALGUNAS FUNCIONES ADICIONALES ...............................................37 REFERENCIA DE ALGUNAS FUNCIONES ADICIONALES .......................................................38 LABORATORIO 2-1...........................................................................................................................38 VISTAZO A LAS FUNCIONES DE GRUPO....................................................................................40 LABORATORIO 2-2...........................................................................................................................45 OBTENIENDO DATOS DE MULTIPLES TABLAS........................................................................46 CARACTERSTICAS DEL JOIN .......................................................................................................46 TIPOS DE JOIN...................................................................................................................................47 EQUIJOIN............................................................................................................................................47 OUTER JOIN.......................................................................................................................................48 SEF-JOINS ..........................................................................................................................................49 NON-EQUIJOINS ...............................................................................................................................50 OPERADORES DE CONJUNTO .......................................................................................................51 EL OPERADOR UNION ....................................................................................................................51 EL OPERADOR INTERSECCIN (INTERSECT) ...........................................................................52 EL OPERADOR MENOS (MINUS)...................................................................................................52 LABORATORIO 3-1...........................................................................................................................53 VISIN GENERAL DE LA CREACIN DE TABLAS....................................................................56 CREACIN DE TABLAS ..................................................................................................................57 RESTRICCIONES ...............................................................................................................................57 MODIFICACIN DE TABLAS .........................................................................................................59 Borrar la tabla original.........................................................................................................................61

Introduccin a Oracle SQL-Plus CREACIN DE VISTAS ....................................................................................................................63 VISTAZO AL ACCESO DE TABLAS Y VISTAS ............................................................................66 UN VISTAZO A LA CONCESIN DE ACCESO A TABLAS Y VISTAS .....................................67 VISIN GENERAL DE LOS SINNIMOS ......................................................................................68 CREACIN DE SINNIMOS............................................................................................................69 LABORATORIO 4-1...........................................................................................................................70 VISIN GENERAL SOBRE LOS NDICES .....................................................................................71 CREACIN DE NDICES ..................................................................................................................71 CREACIN DE GENERADORES DE SECUENCIA.......................................................................74 LABORATORIO 5-1...........................................................................................................................75 INSERCIN DE FILAS ......................................................................................................................76 ACTUALIZACIN DE FILAS...........................................................................................................77 ELIMINACIN DE FILAS.................................................................................................................79 UN VISTAZO AL PROCESAMIENTO DE TRANSACCIONES ....................................................80 PROCESAMIENTO DE TRANSACCIONES....................................................................................81 LABORATORIO 6-1...........................................................................................................................84

Introduccin a Oracle SQL-Plus

ACCESO Y VISUALIZACIN DE DATOS EL MODELO RELACIONAL


En un sistema de bases de datos relacional, la informacin se organiza en forma de tablas.

Tabla EMP EMPNO


7369 7499 7521 7566 7654 7698 7782 7788 7839 7844 7876 7900 7902 7934

ENAME
SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS JAMES FORD MILLER

JOB
RECEPCIONISTA VENDEDOR VENDEDOR GERENTE VENDEDOR GERENTE GERENTE ANALISTA PRESIDENTE VENDEDOR RECEPCIONISTA RECEPCIONISTA ANALISTA RECEPCIONISTA

MGR HIREDATE SAL


7902 7698 7698 7839 7698 7839 7839 7566 7698 7788 7698 7566 7782 17/12/1995 20/02/1996 22/02/1996 02/04/1996 28/07/1996 31/05/1996 09/06/1996 09/12/1997 17/11/1996 08/11/1996 12/01/1998 03/12/1996 03/12/1996 23/01/1998 800 1600 1250 2975 1250 2850 2450 3000 5000 1500 1100 950 3000 1300

COMM
300 500 1400

DEPTNO
20 30 30 20 30 30 10 20 10 30 20 30 20 10

Notas rpidas:
q q q

Las categoras de informacin se listan en la parte de arriba de cada tabla Los casos individuales se listan al lado izquierdo En esta forma, usted puede visualizar, entender y usar esta informacin inmediatamente

Cada columna contiene un tipo de informacin. Cada fila est compuesta de columnas que contienen un nico valor.

Ejemplo:

La columna SAL en la fila del empleado SMITH tiene el valor de 800 Acceso y Visualizacin de Datos 4

Introduccin a Oracle SQL-Plus FILAS Tabla EMP EMPNO


7369 7499 7521 7566 7654 7698 7782 7788 7839 7844 7876 7900 7902 7934

COLUMNAS

ENAME
SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS JAMES FORD MILLER

JOB
RECEPCIONISTA VENDEDOR VENDEDOR GERENTE VENDEDOR GERENTE GERENTE ANALISTA PRESIDENTE VENDEDOR RECEPCIONISTA RECEPCIONISTA ANALISTA RECEPCIONISTA

MGR HIREDATE SAL


7902 7698 7698 7839 7698 7839 7839 7566 7698 7788 7698 7566 7782 17/12/1995 20/02/1996 22/02/1996 02/04/1996 28/07/1996 31/05/1996 09/06/1996 09/12/1997 17/11/1996 08/11/1996 12/01/1998 03/12/1996 03/12/1996 23/01/1998 800 1600 1250 2975 1250 2850 2450 3000 5000 1500 1100 950 3000 1300

COMM
300 500 1400

DEPTNO
20 30 30 20 30 30 10 20 10 30 20 30 20 10

La informacin en una tabla puede relacionarse con la informacin que se encuentra en otra. Tabla DEPT DEPTNO
10 20 30 40

DNAME
FINANZAS INVESTIGACIN VENTAS OPERACIONES

LOC
NEW YORK DALLAS CHICAGO BOSTON

Tabla EMP EMPNO


7369 7499 7521 7566 7654 7698 7782 7788 7839 7844 7876 7900 7902 7934

ENAME
SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS JAMES FORD MILLER

JOB
RECEPCIONISTA VENDEDOR VENDEDOR GERENTE VENDEDOR GERENTE GERENTE ANALISTA PRESIDENTE VENDEDOR RECEPCIONISTA RECEPCIONISTA ANALISTA RECEPCIONISTA

MGR HIREDATE SAL


7902 7698 7698 7839 7698 7839 7839 7566 7698 7788 7698 7566 7782 17/12/1995 20/02/1996 22/02/1996 02/04/1996 28/07/1996 31/05/1996 09/06/1996 09/12/1997 17/11/1996 08/11/1996 12/01/1998 03/12/1996 03/12/1996 23/01/1998 800 1600 1250 2975 1250 2850 2450 3000 5000 1500 1100 950 3000 1300

COMM
300 500 1400

DEPTNO
20 30 30 20 30 30 10 20 10 30 20 30 20 10

Acceso y Visualizacin de Datos

Introduccin a Oracle SQL-Plus

VISIN GENERAL DE SQL


SQL-Plus es una herramienta diseada para usar con ORACLE, la cual extiende las capacidades del estndar ANSI-SQL

SQL CONTRA SQL*PLUS


SQL Es un lenguaje que consiste en comandos para guardar, recuperar, mantener y regular el acceso a una base de datos Es una aplicacin que reconoce y ejecuta comandos SQL y comandos especializados de SQL*Plus que pueden personalizar reportes, proveer facilidades de ayuda y edicin, as como mantener variables del sistema.

SQL*Plus

Con SQL se puede manipular y recuperar datos, as como crear y modificar la estructura de los datos. Funciones de los comandos SQL
q q q q

Consultas Manipulacin de datos Definicin de datos Control de los datos

Comandos SQL ALTER AUDIT COMMENT COMMIT CREATE DELETE DROP GRANT INSERT LOCK NO AUDIT RENAME REVOKE ROLLBACK SELECT UPDATE VALIDATE

Escriba comandos SQL*Plus para manipular comandos SQL Use los comandos de SQL*Plus para:
q q

Entrar, editar, guardar, recuperar y correr comandos SQL Formatear, guardar, imprimir y realizar clculos sobre los resultados de una consulta en forma de reportes

q q q

Listar la definicin de las columnas de cualquier tabla Acceder y copiar datos entre bases de datos SQL Enviar y aceptar mensajes de un usuario final 6

Acceso y Visualizacin de Datos

Introduccin a Oracle SQL-Plus

Comandos de SQL-Plus @ (ejecutar) DESCRIBE RUN BREAK GET SPOOL COLUMN LIST TTITLE COPY REMARK APPEND EXIT SHOW CLEAR INPUT TIMING UNDEFINE QUIT ACCEPT EDIT SET CHANGE HOST START CONNECT / (ejecutar ltimo) DISCONNECT SAVE BTITLE HELP SQLPLUS COMPUTE NEWPAGE

VISIN GENERAL DEL INICIO DE UNA SESIN SQL


El primer paso para abrir una sesin SQL es acceder a SQL-Plus a) Interfaz Grafica

b) Desde la lnea de Comando

SQL> connect [username[/password[@database]]] username = nombre de usuario password = clave de acceso @database = alias de la base de datos

c) Cierre de sesin: SQL> exit <ENTER>

Acceso y Visualizacin de Datos

Introduccin a Oracle SQL-Plus

ACCESO A LA AYUDA
Acceso al sistema de ayuda en lnea, siempre y cuando el administrador de la base de datos la ha cargado y habilitado.

Ejemplos: Listado de todos los comandos SQL-Plus

SQL> HELP TOPICS <ENTER>

VISTAZO DE LA SENTENCIA SELECT


Tabla DEPT DEPTNO
10 20 30 40

DNAME
FINANZAS INVESTIGACIN VENTAS OPERACIONES

LOC
NEW YORK DALLAS CHICAGO BOSTON

Tabla EMP EMPNO


7369 7499 7521 7566 7654 7698 7782 7788 7839 7844 7876 7900 7902 7934

ENAME
SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS JAMES FORD MILLER

JOB
RECEPCIONISTA VENDEDOR VENDEDOR GERENTE VENDEDOR GERENTE GERENTE ANALISTA PRESIDENTE VENDEDOR RECEPCIONISTA RECEPCIONISTA ANALISTA RECEPCIONISTA

MGR HIREDATE SAL


7902 7698 7698 7839 7698 7839 7839 7566 7698 7788 7698 7566 7782 17/12/1995 20/02/1996 22/02/1996 02/04/1996 28/07/1996 31/05/1996 09/06/1996 09/12/1997 17/11/1996 08/11/1996 12/01/1998 03/12/1996 03/12/1996 23/01/1998 800 1600 1250 2975 1250 2850 2450 3000 5000 1500 1100 950 3000 1300

COMM
300 500 1400

DEPTNO
20 30 30 20 30 30 10 20 10 30 20 30 20 10

Acceso y Visualizacin de Datos

Introduccin a Oracle SQL-Plus Seleccionar informacin de una base de datos, es decir, hacer consultas, es una de las operaciones ms comunes que se realizan sobre una base de datos.

Items de un RDBMS que pueden incluirse en una sentencia SELECT


q q q

Columnas Expresiones Constantes

Requerimientos mnimos para ejecutar una sentencia SELECT


q q

El comando SELECT (indica que se va a consultar) La palabra FROM (indica donde se va a realizar la consulta)

SELECCIN DE COLUMNAS
Existen dos maneras distintas de visualizar todas las columnas de una tabla:
q

Digitando todos los nombres de columna separados por comas y la tabla donde esas columnas estn definidas, o

Digitar un asterisco y el nombre de la tabla donde estn definidas las columnas

Sintaxis:
SELECT nombre_columna [, nombre_columna ...] FROM nombre_tabla SELECT * FROM nombre_tabla Ejemplo: Visualizar todas las columnas de informacin acerca de cada departamento. (LAB1) SQL> SELECT * FROM dept; DEPTNO DNAME --------------- --------------10 FINANZAS 20 INVESTIGACION 30 VENTAS 40 OPERACIONES Acceso y Visualizacin de Datos 4 rows selected. LOC -----------------NEW YORK DALLAS CHICAGO BOSTON

Introduccin a Oracle SQL-Plus Se puede utilizar el comando DESCRIBE para visualizar los nombres de columnas de una tabla.

Ejemplo:

Visualizar la estructura de la tabla DEPT: LAB2 SQL> DESCRIBE dept; Name NULL? --------------- --------------DEPTNO NOT NULL DNAME LOC Type -----------------NUMBER(2) CHAR(14) CHAR(13)

Para visualizar una columna especfica, entre el nombre de la columna en la clusula SELECT y la tabla en la que est definida en la clusula FROM. Ejemplo de columna nica: Visualizar los nombres de todos los departamentos: LAB3 SQL> SELECT dname FROM dept; DNAME -----------------------------FINANZAS INVESTIGACIN VENTAS OPERACIONES 4 rows selected. Ejemplo de mltiples columnas: Visualizar el nombre y nmero de todos los departamentos. LAB4 SQL> SELECT dname, deptno FROM dept; DNAME -----------------------------FINANZAS INVESTIGACIN VENTAS OPERACIONES DEPTNO --------------------10 20 30 40 10

Acceso y Visualizacin de Datos 4 rows selected.

Introduccin a Oracle SQL-Plus Con SQL se pueden quitar las filas duplicadas antes que los datos sean devueltos por la sentencia SELECT con la clusula DISTINCT.

Sintaxis - SELECT usando la clusula DISTINCT


SELECT DISTINCT nombre_columna [, nombre_columna ...] FROM nombre_tabla Ejemplo: Visualizar cada cargo de la tabla EMP de forma nica. LAB5 SQL> SELECT DISTINCT job FROM emp; JOB -----------------------------ANALISTA RECEPCIONISTA GERENTE PRESIDENTE VENDEDOR 5 rows selected. Con SQL se pueden definir alias para los nombres de columnas en una sentencia SELECT. Ejemplo: Visualizar cada cargo de la tabla EMP de forma nica y con el nombre de JOB LIST. LAB6 SQL> SELECT DISTINCT job JOB LIST FROM EMP; JOB LIST -----------------------------ANALISTA RECEPCIONISTA GERENTE PRESIDENTE VENDEDOR 5 rows selected.

Acceso y Visualizacin de Datos

11

Introduccin a Oracle SQL-Plus

Nota rpida:
q

Solo se puede hacer referencia a los alias de columna en la clusula SELECT de una consulta.

SELECCIN DE FILAS
Para seleccionar filas especficas de una tabla, use la clusula WHERE para especificar una condicin.

SINTAXIS DE LA SENTENCIA SELECT

SELECT ... FROM ... WHERE ...

Componentes de la condicin de bsqueda de la clusula WHERE


q q q

Nombre de columna o expresin o constante. Operador de comparacin Expresin o nombre de columna o constante

Notas rpidas:
q q

Las constantes de cadena y de fecha deben encerrarse entre comillas simples. Las constantes de carcter son sensibles a maysculas y minsculas y las constantes de fecha deben estar en el formato DD-MM-YY

Acceso y Visualizacin de Datos

12

Introduccin a Oracle SQL-Plus

Operadores de comparacin

= != <> ^= > >= < <= BETWEEN... AND

Igual a Diferente de Mayor que Mayor o igual que Menor que Menor o igual que Entre dos valores

IN (lista) IS NULL

Igual que algn miembro de la lista Es un valor nulo

LIKE

Concuerda con un patrn de caracteres

Seleccin de filas basados en criterios de igualdad o desigualdad usando los operadores =, <>, >=, <=, >, <. Ejemplo: Seleccionar el nmero, nombre y salario de los empleados en el departamento 30. LAB7 SQL> SELECT empno, ename, sal FROM emp WHERE deptno = 30; EMPNO -----------7499 7521 7654 7698 7844 7900 ENAME ------------ALLEN WARD MARTIN BLAKE TURNER JAMES SAL ------------1600 1250 1250 2850 1500 950

6 rows selected. Acceso y Visualizacin de Datos 13

Introduccin a Oracle SQL-Plus

Mostrar el nombre, cargo y salario de todos los empleados, excepto los gerentes. LAB8 SQL> SELECT ename, job, sal FROM emp WHERE job <> MANAGER; ENAME -----------SMITH ALLEN WARD MARTIN SCOTT KING TURNER ADAMS JAMES FORD MILLER JOB SAL ----------------- ------------CLERK 800 SALESMAN 1600 SALESMAN 1250 SALESMAN 1250 ANALYST 3000 PRESIDENT 5000 SALESMAN 1500 CLERK 1100 CLERK 950 ANALYST 3000 CLERK 1300

11 rows selected.

Seleccin basada en un rango de valores usando el operador BETWEEN ... AND. Ejemplo:

Seleccionar el nmero, cargo y nmero de departamento de todos los empleados contratados entre Enero 1 de 1982 y Enero 1 de 1983. LAB9 SQL> SELECT ename, job, deptno, hiredate FROM emp WHERE hiredate BETWEEN '01/01/1982' AND '01/01/1983';

ENAME ---------- MILLER

JOB -------- CLERK

DEPTNO HIREDATE --------- ---------10 23/01/1982

1 row selected.

Seleccin de filas basndose en la coincidencia con valores dentro de una lista, usando el operador IN.

Acceso y Visualizacin de Datos

14

Introduccin a Oracle SQL-Plus Ejemplo:

Seleccionar el nombre, cargo y nmero de departamento de todos los empleados que son recepcionistas y analistas: LAB10 SQL> SELECT ename, job, deptno FROM emp WHERE job IN (CLERK, ANALYST);

ENAME -----------SMITH SCOTT ADAMS JAMES FORD MILLER

JOB DEPTNO ----------------- ------------CLERK 20 ANALYST 20 CLERK 20 CLERK 30 ANALYST 20 CLERK 10

6 rows selected. Seleccin de filas basndose en la coincidencia con un patrn de caracteres usando comodines con el operador LIKE:

Comodines:
q q

%: Coincidencia con cualquier cantidad de caracteres. _ : Coincidencia con un caracter.

Ejemplos:

Seleccionar el nombre, cargo, nmero de departamento y fecha de contratacin para los empleados cuyo apellido empiece con la letra mayscula M. LAB11 SQL> SELECT ename, job, deptno, hiredate FROM emp WHERE ename LIKE M%;

ENAME -----------MARTIN MILLER

JOB DEPTNO HIREDATE ----------------- ------------- --------------SALESMAN 30 28-SEP-81 CLERK 10 23-JAN-82 15

Acceso y Visualizacin de Datos 2 rows selected.

Introduccin a Oracle SQL-Plus Seleccionar el nombre, cargo, nmero de departamento y fecha de contratacin para los empleados cuyo apellido empiece con la letra mayscula J seguido de dos caracteres y que termine con ES. LAB12 SQL> SELECT ename, job, deptno, hiredate FROM emp WHERE ename LIKE J__ES;

ENAME -----------JONES JAMES

JOB DEPTNO HIREDATE ----------------- ------------- --------------MANAGER 20 02-APR-81 CLERK 30 03-DEC-81

2 rows selected. Use el operador NOT para hacer una condicin negativa junto con los operadores:
q q q q

NOT BETWEEN ... AND ... NOT IN (lista) IS NOT NULL NOT LIKE

Conecte operadores lgicos con expresiones lgicas complejas.

Expresiones lgicas
q q

AND OR

Cuando una condicin contiene ms de una expresin, el RDBMS evala cada expresin. Luego los resultados de cada condicin se unen teniendo en cuenta la precedencia de los operadores de conexin.

Igual precedencia: =, <>, <, <=, >, >=, IN, LIKE, IS NULL, BETWEEN AND Luego los operadores lgicos se evalan en el siguiente orden:
q q q

NOT AND OR 16

Acceso y Visualizacin de Datos

Introduccin a Oracle SQL-Plus Ejemplo:

Seleccionar el nombre, cargo y salario de los gerentes que ganen ms de $1500, al igual que el de todos los vendedores: LAB13 SQL> SELECT ename, job, sal FROM emp WHERE sal >= 1500 AND job = MANAGER OR job = SALESMAN; ENAME -----------ALLEN WARD JONES MARTIN BLAKE CLARK TURNER JOB SAL ----------------- ------------SALESMAN 1600 SALESMAN 1250 MANAGER 2975 SALESMAN 1250 MANAGER 2850 MANAGER 2450 SALESMAN 1500

7 rows selected. Seleccionar el nombre, cargo y salario de los gerentes y vendedores que ganen $1500 o ms: LAB14 SQL> SELECT ename, job, sal FROM emp WHERE sal >= 1500 AND (job = MANAGER OR job = SALESMAN);

ENAME -----------ALLEN JONES BLAKE CLARK TURNER

JOB SAL ----------------- ------------SALESMAN 1600 MANAGER 2975 MANAGER 2850 MANAGER 2450 SALESMAN 1500

5 rows selected.

Acceso y Visualizacin de Datos

17

Introduccin a Oracle SQL-Plus

SALIDAS ORDENADAS DE UNA CONSULTA SINTAXIS DE LA SENTENCIA SELECT

SELECT ... FROM ... WHERE ... ORDER BY

ORDER BY puede ordenar:


q q q q

En orden ascendente. En modo descendente. Por mltiples columnas Por la posicin de la columna.

Ejemplos

Ordenamiento ascendente: Mostrar el salario, cargo y nombre de los empleados del departamento 10 en orden ascendente, por salario: LAB15 SQL> SELECT sal, job, ename FROM emp WHERE deptno = 10 ORDER BY sal; SAL -----------1300 2450 5000 JOB ----------------CLERK MANAGER PRESIDENT ENAME ------------MILLER CLARK KING

3 rows selected. Acceso y Visualizacin de Datos 18

Introduccin a Oracle SQL-Plus

Ordenamiento descendente: Mostrar el salario, cargo y nombre de los empleados del departamento 10 en orden descendente por salario: LAB16 SQL> SELECT sal, job, ename FROM emp WHERE deptno = 10 ORDER BY sal DESC; SAL -----------5000 2450 1300 JOB ----------------PRESIDENT MANAGER CLERK ENAME ------------KING CLARK MILLER

3 rows selected. Ordenamiento por mltiples columnas: Mostrar el nombre, cargo y salario de los empleados en el departamento 30. Ordene los resultados por cargo. Si hay ms de un empleado con el mismo cargo, ordnelos por salario en orden descendente y finalmente por apellido. LAB17 SQL> SELECT ename, job, sal FROM emp WHERE deptno = 30 ORDER BY job, sal DESC, ename; SAL -----------JAMES BLAKE ALLEN TURNER MARTIN WARD JOB ENAME ----------------- ------------CLERK 950 MANAGER 2850 SALESMAN 1600 SALESMAN 1500 SALESMAN 1250 SALESMAN 1250

6 rows selected.

Acceso y Visualizacin de Datos

19

Introduccin a Oracle SQL-Plus

Ordenamiento por posicin de columna: Muestre el nombre, salario y cargo de los empleados del departamento 10 en orden ascendente por salario: LAB18 SQL> SELECT ename, sal, job FROM emp WHERE deptno = 10 ORDER BY 2; ENAME SAL JOB ------------ ------------ ----------------MILLER 1300 CLERK CLARK 2450 MANAGER KING 5000 PRESIDENT 3 rows selected.

VER EL DICCIONARIO DE DATOS


El diccionario de datos es un conjunto de tablas y vistas que contiene informacin descriptiva acerca de las tablas, privilegios de acceso de los usuarios, y dems caractersticas de la base de datos.

Tablas de usuario que se consultan frecuentemente en el diccionario de datos Nombre de tabla user_catalog Descripcin Tablas, vistas, sinnimos, secuencias y otros objetos de propiedad del usuario user_constraints user_indexes user_sequences user_synonyms user_tables user_users user_views all_tables Informacin acerca de las restricciones en las tablas del usuario Descripcin de los ndices del usuario Descripcin de las secuencias del usuario Descripcin de los sinnimos del usuario Descripcin de las tablas del usuario Informacin acerca del usuario actual Informacin acerca de las vistas del usuario Descripcin de todas las tablas accesibles por el usuario

Acceso y Visualizacin de Datos

20

Introduccin a Oracle SQL-Plus Ejemplos

USER_TABLES: Mostrar una columna del diccionario de datos user_tables: LAB19 SQL> SELECT table_name FROM user_tables;

TABLE_NAME -------------------DEPT EMP SALGRADE 3 rows selected.

EDICIN DEL BUFFER DE SQL-PLUS


La edicin del buffer de SQL-Plus se realiza con comandos de SQL-Plus: Comando A[PPEND] C[HANGE] Descripcin Adiciona texto especfico a la lnea actual en el buffer Cambia la primera ocurrencia de un texto especfico en la lnea actual del buffer por una cadena especificada. Ejemplo: C / ENP / EMP CL[EAR] BUFFER o CLE[AR] BUFFER DEL I[NPUT] Borra el contenido de la lnea actual del buffer Adiciona una o ms lneas de texto despus de la lnea actual del buffer. Presione <ENTER> en una lnea en blanco para salir del modo INPUT L[IST] L[IST] n R[UN] / n n <cadena de texto> Lista todas las lneas del buffer Lista la lnea nmero n del buffer Muestra y ejecuta el contenido del buffer Ejecuta el contenido del buffer Fija el puntero del buffer en la lnea n Cambia el contenido de la lnea n por la cadena de texto especificada Borra el contenido del buffer

Acceso y Visualizacin de Datos

21

Introduccin a Oracle SQL-Plus

Nota rpida
q

Un asterisco (*) aparecer al lado del nmero de lnea actual del buffer

Ejemplos:

Reescribir la lnea 2 cuando ocurre un error: LAB20 SQL> SELECT ename, job, sal FRO emp WHERE deptno = 30; ERROR at line 2: ORA-00923: FROM keyword not found where expected

SQL> 2 FROM emp SQL> / ENAME ------------ALLEN WARD MARTIN BLAKE TURNER JAMES JOB SAL ---------------- ------------SALESMAN 1600 SALESMAN 1250 SALESMAN 1250 MANAGER 2850 SALESMAN 1500 CLERK 950

6 rows selected.

Fijar el puntero del buffer en la lnea 1. Cambiar SAL por DEPTNO: SQL> 1 1* SELECT ename, job, sal SQL> C / sal / deptno 1* SELECT ename, job, deptno SQL> /

Acceso y Visualizacin de Datos

22

Introduccin a Oracle SQL-Plus

ENAME ------------ALLEN WARD MARTIN BLAKE TURNER JAMES

JOB DEPTNO ---------------- ------------SALESMAN 30 SALESMAN 30 SALESMAN 30 MANAGER 30 SALESMAN 30 CLERK 30

6 rows selected. Agregar la columna HIREDATE en la lnea actual usando el comando APPEND: SQL> 1 1* SELECT ename, job, deptno SQL> A , hiredate 1* SELECT ename, job, deptno, hiredate SQL> / ENAME ------------ALLEN WARD MARTIN BLAKE TURNER JAMES JOB DEPTNO HIREDATE ---------------- ------------- --------------SALESMAN 30 20-FEB-81 SALESMAN 30 22-FEB-81 SALESMAN 30 28-SEP-81 MANAGER 30 31-MAY-81 SALESMAN 30 08-SEP-81 CLERK 30 03-DEC-81

6 rows selected.

Borrar la lnea 3: SQL> 3 3* WHERE deptno = 30 SQL> del SQL> /

Acceso y Visualizacin de Datos

23

Introduccin a Oracle SQL-Plus ENAME ------------SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS JAMES FORD MILLER JOB DEPTNO HIREDATE ---------------- ------------- --------------CLERK 20 17-DEC-80 SALESMAN 30 20-FEB-81 SALESMAN 30 22-FEB-81 MANAGER 20 02-APR-81 SALESMAN 30 28-SEP-81 MANAGER 30 31-MAY-81 MANAGER 10 09-JUN-81 ANALYST 20 09-DEC-82 PRESIDENT 10 17-NOV-81 SALESMAN 30 08-SEP-81 CLERK 20 12-JAN-83 CLERK 30 03-DEC-81 ANALYST 20 03-DEC-81 CLERK 10 23-JAN-82

14 rows selected.

LABORATORIO 1-1
Use la tabla EMP para completar los siguientes ejercicios:

1. Muestre cada nombre de empleado y su fecha de contratacin. 2. Muestre la informacin del ejercicio 1, con la fecha de contratacin apareciendo de primero. 3. Muestre los empleados que ganan ms de $2.000. Rotule la columna como Employee. 4. Muestre los empleados que no son recepcionistas ni vendedores. Ordene la lista por el nombre de empleado. 5. Muestre los empleados cuyo nombre contiene la letra S. 6. Muestre los nombres de empleados y su salario de aquellos que tengan un salario menor que su comisin. Rotule el nombre del empleado como Name y la columna salario como Salary. 7. Muestre los empleados contratados en 1981. 8. Muestre los nombres y cargos de los empleados en los departamentos 10 y 20.

Acceso y Visualizacin de Datos

24

Introduccin a Oracle SQL-Plus

EJECUCIN DE OPERACIONES SOBRE TIPOS DE DATOS Y FUNCIONES VISTAZO A LOS VALORES Y FUNCIONES NUMRICOS
Realice clculos varios sobre nmeros usando los siguientes operadores aritmticos:

+ * / ()

Suma Resta Multiplicacin Divisin Parntesis anular precedencia

Los operadores aritmticos pueden ser usados en la mayora de sentencias SQL.

REFERENCIA DE LOS VALORES Y FUNCIONES NUMRICOS


Muestre el resultado de los clculos como si fueran columnas con expresiones aritmticas en sentencias SELECT.

Ejemplo: expresiones en sentencias SELECT. Muestre el nombre, salario, comisin y la compensacin total para todos los vendedores cuya comisin es mayor que el 25% de su salario. LAB21 SQL> SELECT ename, sal, comm, sal + comm 2 3 4 FROM emp WHERE job = SALESMAN AND comm > 0.25 * sal ORDER BY 4;

ENAME SAL COMM SAL+COMM -------------- -------------- --------------- --------------WARD 1250 500 1750 MARTIN 1250 1400 2650 2 rows selected. Acceso y Visualizacin de Datos 25

Introduccin a Oracle SQL-Plus Una fila sin valor en una columna, se dice que contiene un valor NULO. SQL> DESCRIBE emp; Name --------------------EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO Null? Type ---------------- ---------------------NOT NULL NUMBER (4) CHAR (10) CHAR (9) NUMBER (4) DATE NUMBER (7, 2) NUMBER (7, 2) NOT NULL NUMBER (2)

Cuando una expresin o funcin individual hace referencia a una columna que contiene un valor nulo, el resultado es tambin nulo.

Ejemplo: Muestre el nombre, cargo, salario, comisin y compensacin total de los empleados del departamento 30. LAB22 SQL> SELECT ename, job, sal, comm, sal + comm 2 3 FROM emp WHERE deptno = 30; JOB SAL COMM SAL+COMM -------------------- -------------- -------------- -------------------SALESMAN 1600 300 1900 SALESMAN 1250 500 1750 SALESMAN 2975 SALESMAN 1250 1400 2650 MANAGER 2850 SALESMAN 3150 SALESMAN 1500 0 1500 CLERK 950

ENAME -------------ALLEN WARD JONES MARTIN BLAKE SCOTT TURNER JAMES

8 rows selected.

Acceso y Visualizacin de Datos

26

Introduccin a Oracle SQL-Plus

Convierta un valor nulo en uno no-nulo con el propsito de evaluar una expresin con la funcin NVL Cuando NVL evala la primera expresin, si esta es no-nula, retorna dicha expresin; en caso contrario, retorna la segunda.

Sintaxis:
NVL (expr1, expr2)

Ejemplo: Muestre el nombre de empleado, cargo, salario, comisin y compensacin total de los empleados del departamento 30. LAB23 SQL> SELECT ename, job, sal, comm, NVL(sal, 0) + NVL(comm, 0) 2 3 FROM emp WHERE deptno = 30; JOB SAL COMM NVL(SAL, 0)+NVL(COMM, 0) -------------------- -------------- -------------- ------------------------------------------SALESMAN 1600 300 1900 SALESMAN 1250 500 1750 SALESMAN 2975 2975 SALESMAN 1250 1400 2650 MANAGER 2850 2850 SALESMAN 3150 3150 SALESMAN 1500 0 1500 CLERK 950 950

ENAME -------------ALLEN WARD JONES MARTIN BLAKE SCOTT TURNER JAMES

8 rows selected. El RDMBS evala cada expresin aritmtica. Los resultados de las expresiones se combinan luego en el orden determinado por la precedencia de los operadores.

Acceso y Visualizacin de Datos

27

Introduccin a Oracle SQL-Plus

Orden de evaluacin
* / Multiplicacin Divisin

Luego + Suma Resta

Para anular la precedencia de los operadores, coloque parte de la expresin entre parntesis. ORACLE evala estas expresiones primero. Ejemplo: Muestre el nombre de empleado, salario, comisin y compensacin total para todos los vendedores ordenado por compensacin total. LAB24 SQL> SELECT ename, sal, comm, 12 * (sal + comm) total 2 3 4 FROM emp WHERE job = SALESMAN ORDER BY 12 * (sal + comm); SAL COMM -------------- -------------1500 0 1250 500 1600 300 1250 1400 2975 3150 TOTAL -----------18000 21000 22800 31800

ENAME -------------TURNER WARD ALLEN MARTIN JONES SCOTT

6 rows selected.

Acceso y Visualizacin de Datos

28

Introduccin a Oracle SQL-Plus Muestre el nombre de empleado, salario, comisin y salario anual, ms un mes de comisin para todos los vendedores ordenado por compensacin total. LAB25 SQL> SELECT ename, sal, comm, 12 * sal + comm total 2 3 4 FROM emp WHERE job = SALESMAN ORDER BY 4; SAL COMM -------------- -------------1250 500 1250 1400 1500 0 2975 300 3150 1600 TOTAL -----------15500 16400 18000 19500

ENAME -------------WARD MARTIN TURNER JONES SCOTT ALLEN

6 rows selected. Las funciones numricas aceptan una entrada numrica y retornan valores numricos

Ejemplo: funcin ROUND Liste el nombre, salario mensual, salario diario (basado en un mes laboral de 22 das) y el salario diario redondeado al prximo entero para los empleados ALLEN y JONES. LAB26 SQL> SELECT ename, sal, sal / 22, ROUND (sal / 22, 0) 2 3 FROM emp WHERE ename IN (ALLEN, JONES);

ENAME -------------ALLEN JONES

SAL SAL / 22 ROUND(SAL / 22, 0) -------------- --------------- ---------------------------1600 72.7272727 73 2975 135.227273 135

2 rows selected.

Acceso y Visualizacin de Datos

29

Introduccin a Oracle SQL-Plus

FUNCIN

EJEMPLO

RESULTADO

MOD

MOD (7, 5)

El residuo de dividir 7 entre 5

SQRT

SQRT (25)

La raz cuadrada de 25 El salario, redondeado a dos dgitos despus del punto decimal. El salario, truncado a dos dgitos despus del punto decimal. El salario, elevado a la tercera potencia.

ROUND

ROUND (SAL, 2)

TRUNC

TRUNC (SAL, 2)

POWER

POWER (SAL, 3)

VISTAZO A LOS VALORES Y FUNCIONES DE FECHA REFERENCIA DE LOS VALORES Y FUNCIONES DE FECHA
Use operaciones aritmticas simples en sentencias SQL para efectuar clculos sobre fechas en las bases de datos.

Fecha + nmero Fecha nmero Fecha Fecha

Suma un nmero de das a una fecha, produciendo otra fecha. Resta un nmero de das a una fecha, produciendo otra fecha. Resta una fecha de otra, produciendo el nmero de das entre las dos.

Ejemplo: Mostrar el nombre, fecha de contratacin y fecha de vencimiento del perodo de prueba (90 das) de los empleados en el departamento 10: LAB27

Acceso y Visualizacin de Datos

30

Introduccin a Oracle SQL-Plus

SQL> SELECT ename, hiredate, hiredate + 90 $REVIEW$ 2 3 FROM emp WHERE deptno = 10; HIREDATE --------------09/06/1981 17/11/1981 23/01/1982 $REVIEW$ --------------07/09/1981 15/02/1982 23/04/1982

ENAME -------------CLARK KING MILLER

3 rows selected.

FUNCIN

EJEMPLO ADD_MONTHS (HIREDATE, 6)

RESULTADO Devuelve la fecha 6 meses despus de HIREDATE Devuelve la fecha 6 meses antes de HIREDATE Devuelve el ltimo da del mes que contiene HIREDATE

ADD_MONTHS

ADD_MONTHS (HIREDATE, -6)

LAST_DAY

LAST_DAY (HIREDATE)

NEXT_DAY

NEXT_DAY (HIREDATE, FRIDAY)

Devuelve la fecha del siguiente viernes despus de HIREDATE

SYSDATE

SYSDATE

Devuelve la fecha y hora actual

MONTHS_BETWEEN

MONTHS_BETWEEN (SYSDATE, HIREDATE)

Devuelve la cantidad de meses transcurridos entre HIREDATE y la fecha actual. Devuelve la fecha ms tarda de una lista de fechas

GREATEST(FECHA1, FECHA2...)

GREATEST(HIREDATE, SYSDATE)

Acceso y Visualizacin de Datos

31

Introduccin a Oracle SQL-Plus

LEAST(FECHA1, FECHA2...)

LEAST(HIREDATE, SYSDATE)

Devuelve la fecha ms temprana de una lista de fechas

Ejemplo: ADD_MONTHS Mostrar el nombre, fecha de contratacin y 6 meses despus de la fecha de contratacin de los empleados del departamento 10. LAB28 SQL> SELECT ename, hiredate, ADD_MONTHS (hiredate, 6) $REVIEW$ 2 3 FROM emp WHERE deptno = 10; HIREDATE --------------09/06/1981 17/11/1981 23/01/1982 $REVIEW$ --------------09/12/1981 17/05/1982 23/07/1982

ENAME -------------CLARK KING MILLER

3 rows selected.

Ejemplo: SYSDATE Mostrar el nombre y las semanas de trabajo de los empleados del departamento 20. LAB29 SQL> SELECT ename, ROUND((SYSDATE - hiredate) / 7,0) WEEKS 2 3 FROM emp WHERE deptno = 10; WEEKS --------------1098 1075 1066

ENAME -------------CLARK KING MILLER

3 rows selected.

Acceso y Visualizacin de Datos

32

Introduccin a Oracle SQL-Plus FORMATEO DE FECHAS ELEMENTO DD DY DAY DDSPTH MM MON MONTH YY YYYY HH:MI:SS fm DESCRIPCIN Da del mes (Ej. 1-31) Da de la semana (Ej. FRI) Nombre del da, en mayscula, con blancos adicionales hasta completar 9 caracteres (Ej. MONDAY) Nombre del da, en mayscula, deletreado (Ej. TWELFTH) Mes (Ej. 01 12) Nombre del mes, en maysculas, abreviado a 3 letras (Ej. JAN) Nombre del mes, en maysculas, con blancos adicionales hasta completar 9 caracteres (Ej. JANUARY) Ao con dos dgitos (Ej. 91) Ao con cuatro dgitos (Ej. 1991) Horas : Minutos : Segundos (Ej. 09:00:00) Modo de relleno: lo que siga a este prefijo reemplaza los blancos adicionales, generando un resultado de tamao variable

Formatee la visualizacin de valores de fecha con la funcin de conversin TO_CHAR

Ejemplo: Muestre las fechas de contratacin de todos los empleados del departamento 20 con el formato DD of Month YYYY: LAB30 SQL> SELECT TO_CHAR (hiredate, fmDD of MONTH YYYY) Date of Hire 2 3 FROM emp WHERE deptno = 20;

Date of Hire -----------------------------17 of DECEMBER 1980 12 of JANUARY 1983 3 of DECEMBER 1981 Acceso yselected. 3 rows Visualizacin de Datos 33

Introduccin a Oracle SQL-Plus

REFERENCIA DE LOS VALORES Y FUNCIONES DE CARACTERES


Combine columnas con caracteres y constantes de carcter para producir una salida ms significativa que una simple columna estndar devuelta por SQL-Plus.

Ejemplo: concatenacin Muestre la combinacin de departamento ms su localizacin bajo un solo ttulo DEPARTAMENTOS: LAB31 SQL> SELECT dname || || loc DEPARTAMENTOS 2 FROM dept;

DEPARTAMENTOS ---------------------------------------ACCOUNTING NEW YORK RESEARCH DALLAS SALES CHICAGO OPERATIONS BOSTON FINANCE LOS ANGELES RESEARCH BOSTON PERSONNEL TAHITI EDUCATION - MAUI 8 rows selected.

Acceso y Visualizacin de Datos

34

Introduccin a Oracle SQL-Plus

FUNCIN INITCAP

EJEMPLO INITCAP (ENAME)

RESULTADO Devuelve el nombre con su primera letra en mayscula, y las dems en minscula (Ej. Smith) Devuelve todos los caracteres de la cadena en mayscula.(Ej. SMITH) Devuelve todos los caracteres de la cadena en minscula (Ej. smith) Empezando en la posicin 1, devuelve 5 caracteres (Ej. MANAG) Devuelve el nmero de caracteres de una cadena (Ej. 5) Concatena dos cadenas muestra un nmero de caracteres a la izquierda del valor de la columna *****5000 Borra un carcter de una cadena

UPPER

UPPER (ENAME)

LOWER

LOWER (ENAME)

SUBSTR

SUBSTR (JOB, 1, 5)

LENGTH

LENGTH (ENAME) CONCAT(ENAME,JOB)

CONCAT

LPAD

LPAD(sal,5,'*')

TRIM

TRIM('S' FROM 'SSMITH')

Ej. MITH
Devuelve la posicin de un carcter dentro de una cadena Ej: 3

INSTR

INSTR('String', 'r')

Acceso y Visualizacin de Datos

35

Introduccin a Oracle SQL-Plus

Ejemplo: INITCAP UPPER Muestre el nombre y el cargo de todos los empleados llamados Ward en mayscula inicial bajo el ttulo NAME: LAB32 SQL> SELECT INITCAP (ename) NAME, job 3 4 FROM emp WHERE UPPER (ename) = WARD;

NAME JOB ---------- ---------------Ward SALESMAN 1 row selected. Ejemplo: SUBSTR Mostrar las primeras 5 letras del nombre de departamento y su localizacin completa. LAB33 SQL> SELECT SUBSTR (dname, 1, 5) dept, loc 2 FROM dept; LOC --------------------NEW YORK DALLAS CHICAGO BOSTON LOS ANGELES BOSTON TAHITI MAUI

DEPT -----------ACCOU RESEA SALES OPERA FINAN RESEA PERSO EDUCA

8 rows selected.

Formatee la visualizacin de valores numricos con la funcin de conversin TO_CHAR

Acceso y Visualizacin de Datos

36

Introduccin a Oracle SQL-Plus

Ejemplo: Muestre la comisin de cada empleado del departamento 30 usando signos de peso, comas en las posiciones adecuadas y dos dgitos decimales. LAB34 SQL> SELECT ename EMPLOYEE, TO_CHAR (comm, $9,990.99) COMMISION 2 FROM EMP;

EMPLOYEE COMMISION ----------------- --------------------ALLEN $300.00 WARD $500.00 JONES MARTIN $1,400.00 BLAKE SCOTT TURNER $0.00 JAMES 8 rows selected.

VISIN GENERAL DE ALGUNAS FUNCIONES ADICIONALES


FUNCIN GREATEST EJEMPLO GREATEST (SAL, COMM) RESULTADO Devuelve el mayor valor entre SAL y COMM Devuelve el menor valor entre SAL y COMM

LEAST

LEAST (SAL, COMM)

Acceso y Visualizacin de Datos

37

Introduccin a Oracle SQL-Plus

REFERENCIA DE ALGUNAS FUNCIONES ADICIONALES


Ejemplo: GREATEST Muestre el nombre, el salario mensual y la comisin de todos los vendedores, incluyendo una columna que muestre el mayor valor ya sea de salario o comisin. LAB35 SQL> SELECT ename, sal, NVL (comm, 0), GREATEST (sal, comm) 2 3 FROM emp WHERE job = SALESMAN;

ENAME SAL NVL (comm, 0) GREATEST (sal, comm) ----------------- ----------------- -------------------- ------------------------------ALLEN 1600 300 1600 WARD 1250 500 1250 JONES 2975 0 2975 MARTIN 1250 1400 1400 SCOTT 3150 0 3150 TURNER 1500 0 1500 6 rows selected.

LABORATORIO 2-1
Utilice para estos ejercicios la estructura de la tabla EMP del usuario SCOTT. Etiquete con un nombre las columnas de clculos

1. Para cada empleado, calcule el nmero de meses entre hoy y la fecha en que el empleado fu contratado. Ordene su resultado por el nmero de meses que ha estado empleado. Redondee el nmero de meses al nmero entero ms prximo. 2. Muestre el nombre de empleado, la compensacin total y la fecha de contratacin de todos los empleados cuyo salario sea mayor que dos veces su comisin. Formatee la fecha de contratacin para que luzca como: 3rd December, 1982. 3. Muestre el nombre de empleado en minsculas y el salario redondeado en cientos para todos los empleados.

Acceso y Visualizacin de Datos

38

Introduccin a Oracle SQL-Plus 4. Muestre el numero de empleado, el nombre, el salario, el 15% del salario y el salario

incrementado en un 15% de todos los empleados 5. Seleccionar numero, nombre, cargo y fecha de ingreso y tiempo en la empresa en aos de todos los empleados de la tabla EMP 6. Seleccionar todos los empleados cuyo tiempo de servicio este entre 5 a 11 aos. 7. Seleccionar todos los empleados cuyo nombre contengan la cadena LER , NES o FOR 8. Seleccionar la columna, salario, comisin y calcular la columna total devengado de todos los empleados 9. Seleccionar la columna salario y calcular la columna retencin en la fuente cuyo porcentaje es el 4% del salario, y calcular el total a pagar para cada empleado. Seleccionar todos los empleados cuyo salario incrementado en un 10% sea mayor que 5.000. 10. Muestre el nombre y la fecha de ingreso del empleado en el formato "Lunes, 3 de Junio 2001" 11. Para cada empleado muestre el nombre y calcule el numero de meses entre hoy y la fecha en que ingreso en el empleado, etiquete la columna con la frase "MESES TRABAJADOS". Ordene el resultado por el nmero de meses. 12. Escribe la consulta que produce lo siguiente para cada empleado: ENAME GANA SAL PERO QUIERE Sal*3, ALLEN GANA 1600 PERO QUIERE 4800 formatee la columna resultante con la frase salarios Soados. 13. Escriba una consulta que muestre el nombre del empleado con la primera letra en mayscula y las dems en minscula, y la longitud del nombre del empleado. 14. Muestre el nombre, la fecha de ingreso y el da de la semana en la cual ingresaron los empleados a la empresa, etiquete la columna con la palabra DIA. 15. Crear una consulta que muestre el nombre del empleado y el valor de la comisin. Si la comisin del empleado es nula coloque en los registros visualizados la frase 'NO COMISION'

Acceso y Visualizacin de Datos

39

Introduccin a Oracle SQL-Plus

VISTAZO A LAS FUNCIONES DE GRUPO


Para devolver resultados basados en grupos de filas en lugar de un resultado por fila, utilice las funciones de grupo.

FUNCIONES AVG

EJEMPLO AVG (sal) COUNT (comm)

RESULTADO Devuelve el promedio aritmtico de SAL. Devuelve el nmero de valores no nulos de la columna COMM.

COUNT COUNT (*) Devuelve el nmero de filas no nulas en un grupo. Devuelve el valor mximo de SAL Devuelve el valor mnimo de SAL Devuelve la suma de los valores de COMM

MAX

MAX (sal0029

MIN

MIN (sal)

SUM

SUM (comm)

Ejemplo: AVG, MAX, SUM

Muestre el promedio, el valor mximo y la suma de los salarios anuales de todos los vendedores. LAB36 SQL> SELECT AVG (sal), MAX (sal), SUM (sal) 2 3 FROM emp WHERE job = SALESMAN;

AVG (SAL) MAX (SAL) SUM (SAL) ----------------- ----------------- -------------------1954.16667 3150 11725 1 row selected. Acceso y Visualizacin de Datos 40

Introduccin a Oracle SQL-Plus Ejemplo: COUNT

Muestre el nmero de filas en la tabla EMP, y el nmero de empleados con comisin no nula. LAB37 SQL> SELECT COUNT (*) EMPLOYEES, COUNT (comm) COMMISIONABLE 2 FROM emp;

EMPLOYEES COMMISIONABLE ------------------- -------------------------14 4 1 row selected.

REVISANDO SALIDAS DE GRUPO.

SINTAXIS DE LA SENTENCIA SELECT

SELECT ... FROM ... WHERE ... GROUP BY HAVING ORDER BY

Acceso y Visualizacin de Datos

41

Introduccin a Oracle SQL-Plus Muestre una tabla en subgrupos de filas con la clusula GROUP BY.

Ejemplo: GROUP BY una columna

Muestre cada departamento y su nmero de empleados, agrupados por departamento. LAB38 SQL> SELECT deptno, COUNT (*) 3 4 FROM emp GROUP BY deptno;

DEPTNO COUNT (*) ------------------- -------------------------10 3 20 3 30 8 3 rows selected.

Si se selecciona una columna normal y una funcin de grupo al mismo tiempo, se recibir un mensaje de error.

Ejemplo:

Mostrar el empleado que se contrat de primero. LAB39 SQL> SELECT ename, MIN (hiredate) 2 FROM emp;

ORA-00937: Not a single-group group function.

Acceso y Visualizacin de Datos

42

Introduccin a Oracle SQL-Plus Ejemplo: GROUP BY ms de una columna

Muestre la cantidad de empleados para cada categora de cargos en cada departamento. LAB40 SQL> SELECT deptno, job, COUNT (*) 2 3 FROM emp GROUP BY deptno, job; JOB ------------------CLERK MANAGER PRESIDENT ANALYST CLERK CLERK MANAGER SALESMAN COUNT (*) --------------1 1 1 1 2 1 1 6

DEPTNO ------------10 10 10 20 20 30 30 30

8 rows selected.

Coloque una condicin a la funcin de grupo mediante la clusula HAVING.

Ejemplo:

Muestre el salario anual promedio para todos los tipos de cargo con ms de dos empleados. LAB41 SQL> SELECT job, 12 * AVG (sal) 2 3 4 FROM emp GROUP BY job HAVING COUNT (*) > 2; 12 * AVG (SAL) ---------------------12450 23450

JOB ------------------CLERK SALESMAN 2 rows selected.

Acceso y Visualizacin de Datos

43

Introduccin a Oracle SQL-Plus La clusula HAVING puede ser usada en la misma consulta con una clusula WHERE.

Ejemplo:

Muestre los departamentos y la nmina de aquellos departamentos cuya nmina exceda de $8.000, excluyendo todo el personal Aseador. Ordene la lista por el monto de la nmina. LAB42 SQL> SELECT deptno, SUM (sal) 2 3 4 5 6 FROM emp WHERE job != CLERK GROUP BY deptno HAVING SUM (sal) > 8000 ORDER BY SUM (sal);

DEPTNO SUM (SAL) ------------------- ---------------------30 14575 1 row selected.

Acceso y Visualizacin de Datos

44

Introduccin a Oracle SQL-Plus

LABORATORIO 2-2 Retorno de filas basadas en grupos de filas


Use las tablas EMP para completar los siguientes ejercicios:

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.

Cuente todos los registros que no tienen el campo Job nulo. Seleccionar el salario mnimo y mximo de la tabla Emp Seleccionar la fecha de ingreso mnima y mxima de la tabla empleados. Seleccionar el numero de empleados por cada Departamento Seleccionar de cada departamento la suma de los salarios, y el No. De Empleados Contar el numero de empleados del mismo cargo por departamento Contar el numero de 'Analistas y Gerentes de Cada Departamento Seleccione el cdigo del empleado, nombre y cargo de la tabla EMP donde el salario se encuentre entre 1000 y 2000 y sean del Departamento No. 10, ordenado por nombre del empleado. Seleccione de la tabla EMP todos los empleados diferentes de 'PRESIDENT' que ganen mas de 1.500 cuyo y ordenando alfabticamente por nombre del empleado y descendente por sueldo Muestre solo los nombres de los empleados de cargos 'MANAGER' que ganan mas de 2.600 ordenar alfabticamente (tabla EMP). Seleccione informacin acerca de los 'MANAGER' y los 'PRESIDENT' de la tabla EMP. Ejecuta esta consulta ordenando por fecha de ingreso (el mas antiguo) y el No. Departamento. Computar el promedio de los salarios, el valor mximo y mnimo agrupados por departamentos donde el cargo sea vendedor. Sumar las comisiones de los empleados por departamento y seleccionar el departamento con la sumatoria mayor que cero ordenando descendentemente.

Acceso y Visualizacin de Datos

45

Introduccin a Oracle SQL-Plus

OBTENIENDO DATOS DE MULTIPLES TABLAS.


Es la unin de dos tablas a travs de los campos que la relacionan, llave primaria llave fornea respectivamente

EMP
EMPNO ENAME ---------... DEPTNO

DEPT
DEPTNO DNAME LOC ------ ----------------10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON

7839 7698 7934

KING ... BLAKE... MILLER

-----10 30 ... 10

EMPNO DEPTNO ----- ------- -------7839 10 NEW YORK 7698 30 CHICAGO 7782 10 NEW YORK 7566 20 DALLAS 7654 30 CHICAGO 7499 30 CHICAGO

LOC

JOIN: use un JOIN en una consulta de datos de ms de una tabla SELECT table1.column, table2.column FROMtable1, table2 WHERE table1.column1 = table2.column2;

CARACTERSTICAS DEL JOIN


Las tablas a ser unidad (JOINED) se especifican en la clusula FROM En la clusula WHERE se especifica como unir las tablas. Las columnas que tienen nombres iguales en las tablas especificadas en la clusula FROM deben ser identificadas utilizando NOMBRE_TABLA.NOMBRE_COLUMNA Si las columnas no tienen homnimos en las tablas, no es necesario especificar el nombre de la tabla en las clusulas WHERE y SELECT. Se pueden unir JOIN cuantas tablas se requieran El criterio de coincidencia entre las tablas es denominado el predicado del JOIN o criterio del 46

Acceso y Visualizacin de Datos

Introduccin a Oracle SQL-Plus JOIN Las columnas especificadas en la condicin JOIN deben estar anexadas. Cuando n tablas son unidas, es necesario tener al menos n-1 condiciones de JOIN entre parejas de tablas para evitar el producto cartesiano (una unin de cuatro tablas requiere especificar criterio de JOIN para tres parejas de tablas)

TIPOS DE JOIN
Equijoin Non-equijoin Outer join Self join

EQUIJOIN EMP
EMPNO ENAME ------ ------- ------7839 KING 7698 BLAKE 7782 CLARK 7566 JONES 7654 MARTIN 7499 ALLEN 7844 TURNER 7900 JAMES 7521 WARD 7902 FORD 7369 SMITH ... 14 rows selected. DEPTNO 10 30 10 20 30 30 30 30 30 20 20

DEPT
DEPTNO DNAME LOC ------- ---------- -------10 ACCOUNTING NEW YORK 30 SALES CHICAGO 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 20 RESEARCH DALLAS 20 RESEARCH DALLAS ...

Foreign key

Primary key

Acceso y Visualizacin de Datos

47

Introduccin a Oracle SQL-Plus

Ejemplo: Seleccionar nmero del empleado, nombre del departamento y localizacin. LAB 43 SQL> select ename, emp.deptno, loc 2 From emp, dept 3 Where emp.deptno = dept.deptno;

OUTER JOIN
Operador OUTERJOIN es el signo ms entre parntesis (+), este obliga a que un registro que contenga valores nulos en uno de los criterios del JOIN coincida con cada valor de la segunda tabla sobre la cual ordinariamente no estara esa coincidencia. Sintaxis SELECT table1.column, table2.column FROMtable1, table2 WHERE table1.column1(+) = table2.column2;

Ejemplo: Lista la localizacin de todos los departamentos as como los empleados que trabajan en estos departamentos, incluya los departamentos en los cuales no trabaja empleado alguno. LAB44 SQL> SELECT loc, ename 2 FROM emp, dept 3 WHERE emp.deptno(+) = dept.deptno;

OUTER JOINS Y LA CLAUSULA WHERE Ejemplo: Liste los departamentos que actualmente no tienen empleados asignados. LAB45 SQL> SELECT empno, dept.deptno, loc 2 FROM emp, dept 3 WHERE dept.deptno= emp.deptno(+) and empno is null;

Acceso y Visualizacin de Datos

48

Introduccin a Oracle SQL-Plus

Ejemplo: Liste el nombre y la localizacin del departamento de todos los CLERK, incluya una lista de todos los departamentos que actualmente no tengan ningn CLERK asignado. LAB46 SQL> SELECT ename, dept.deptno, loc 2 FROM emp, dept 3 WHERE dept.deptno= emp.deptno(+) and (job='CLERK' OR empno is null);

Caractersticas del OUTER JOIN Si un registro de una de las tablas de un JOIN no satisface la condicin del JOIN, normalmente ese registro no aparece en el resultado. El OUTER JOIN, permite que un registro con estas caractersticas aparezcan en el resultado. el OUTER JOIN a travs SQL proporciona registros temporales para seleccionar los datos, los datos de la tablas. Se coloca un (+) despus de la combinacin de tabla/columna (en la clusula WHERE) sobre la que se necesita los registros falsos para realizar el OUTER JOIN (WHERE EMP.DEPTNO(+)=DEPT.DEPTNO). Si se requiere mltiples columnas para dar la condicin JOIN, todas o ninguna de ellas puede llevar el (+). Solo una de las tablas en un JOIN, pueden escogerse para realizar el OUTER JOIN, es decir no se puede colocar (+) en ambas tablas. Una tabla puede realizar un OUTER JOIN con tan solo otra tabla. Los registros extras seleccionados en un OUTER JOIN pueden realizarse buscando aquellos que tengan valores nulos (NULL) en las columnas del JOIN.

SEF-JOINS
Un SEF-JOINS es utilizado para buscar coincidencia entre registros sobre columnas diferentes de la misma tabla. Sintaxis SELECT alias1.column, alias2.column FROMtable1 alias1, table2 alias 2 WHERE alias1.column1 = alias2.column2;

Acceso y Visualizacin de Datos

49

Introduccin a Oracle SQL-Plus

Ejemplo: Liste el nmero, nombre y cargo de cada empleado, as como el numero nombre y cargo del jefe correspondiente. LAB47 SELECT w.empno, w.ename, w.job,w.mgr, m.empno,m.ename,m.job FROMemp w, emp m WHERE w.mgr = m.empno;

Caractersticas del SELF Una palabra puede ser unida JOINED a si mismo como si fueran dos tablas separadas. El self-join es til para unir un registro de una tala a otra de la misma tabla. Como cualquier otro tipo de JOIN, este se realiza con columnas que contenga el mismo tipo de informacin. A la tabla se le deben dar alias para indicar que columnas son de la tabla. En el ejemplo previo, la tabla EMP fue unida a si misma utilizando las columnas EMPNO y MGR cumpliendo todas las reglas anteriores.

NON-EQUIJOINS
La mayora de los JOINS se basan en la igualdad de valores en las tablas referenciadas. Por esto se determinan los EQUIJOINS. Los NON-EQUIJOINS por consiguiente se basan en los siguientes operadores. != < <= > >= between

Ejemplo: Ordene el grado del salario (salgrade), el nombre, salario y cargo de cada empleado. Ordene el resultado por grado de salario y trabajo. LAB48 SQL> SELECT GRADE, ENAME, SAL, JOB 2 FROM EMP, SALGRADE 3 WHERE SAL BETWEEN LOSAL AND HISAL 4 ORDER BY GRADE, SAL;

Acceso y Visualizacin de Datos

50

Introduccin a Oracle SQL-Plus

OPERADORES DE CONJUNTO
Los operadores de conjunto combinan dos o ms tablas para obtener resultado. UNION INTERSECCIN MENOS EL OPERADOR UNION El operador UNION retorna todos los registros distintos seleccionados travs de mltiples queries. Sintaxis SELECT FROMtabla WHERE UNION SELECT FROMtabla WHERE columna condiciones ciertas columna condiciones ciertas Los registros del primer query mas registros del segundo query se eliminan duplicados Los registros que las dos tablas tienen en comn Registros nicos de la primera tabla

Ejemplo: Quien gana ms de $2000 en todos los departamentos.

SQL> SELECT ENAME,SAL 2 FROM ACCOUNTING 3 WHERE SAL >2000 4 UNION 5 SELECT ENAME,SAL 6 FROM RESEARCH 7 WHERE SAL >2000 8 UNION 9 SELECT ENAME,SAL 10 FROM SALES 11 WHERE SAL >2000

Acceso y Visualizacin de Datos

51

Introduccin a Oracle SQL-Plus

EL OPERADOR INTERSECCIN (INTERSECT)


El operador INTERSECT retorna valores comunes de mltiples tablas SELECT FROMtabla WHERE INTERSECT SELECT FROMtabla WHERE columna condiciones ciertas columna condiciones ciertas

Ejemplo SQL> SELECT JOB 2 FROM ACCOUNTING 3 UNION 4 SELECT JOB 5 FROM RESEARCH 6 UNION 7 SELECT JOB 8 FROM SALES;

EL OPERADOR MENOS (MINUS)


El operador MINUS. Retorna todos los registros seleccionados por el primer query que no fueron tambin seleccionados por el segundo query SELECT columna FROM tabla WHERE condiciones ciertas MINUS SELECT columna FROMtabla WHERE condiciones ciertas

Ejemplo: Liste la informacin de los empleados que tienen cargos que estn en el departamento de ACCOUNTING pero que no estn en el departamento de ventas (SALES). Acceso y Visualizacin de Datos 52

Introduccin a Oracle SQL-Plus

SQL> SELECT * FROM ACCOUNTING 2 WHERE JOB (SELECT JOB FROM ACCOUNTING 3 MINUS SELECT JOB FROM SALES)

Nota: Los operadores de conjunto son tiles para conformar subqueries que referencia a mltiples tablas.

LABORATORIO 3-1
1) Escriba una consulta que muestre el nombre del empleado y el numero y nombre del departamento para todos los empleados. ENAME KING BLAKE CLARK JONES MARTIN DEPTNO 10 30 10 20 30 DNAME ACCOUNTING SALES ACCOUNTING RESEARCH SALES

2) Crear un listado de todos los cargos cuya localizacin departamento es Chigaco JOB CLERK MANARGER SALESMAN LOC CHICAGO CHICAGO CHICAGO

3. Escribir una consulta que muestre el nombre del empleado, el nombre del departamento y la localizacin de todos los empleados que ganan una comisin ENAME ALLEN WARD MARTIN DNAME SALES SALES SALES LOC CHICAGO CHICAGO CHICAGO

4. Mostar el nombre del empleado y el nombre del departamento a los que pertenecen esos empleados. Salvar la sentencia en un archivo llamado p4q4.sql ENAME ALLEN WARD MARTIN DNAME SALES SALES SALES

Acceso y Visualizacin de Datos

53

Introduccin a Oracle SQL-Plus

5. Escribir una consulta que muestre el nombre, el cargo, el numero del departamento y el nombre de todos los empleados que trabajan en DALLAS. ENAME SMITH ADAMS FORD JOB CLERK CLERK ANALYST DEPTNO 20 20 20 DNAME RESEARCH RESEARCH RESEARCH

6. Mostrar el nombre y el numero del empleado al igual que el nombre y el numero de su respectivo jefe. Salvar la sentencia SQL en el archivo p4q6.sql ENAME SCOTT FORD ALLEN JAMES EMPNO 7788 7902 7499 7900 EMGR JONES JONES BLAKE BLAKE MGR 7566 7566 7698 7698

7. Modificar el punto anterior incluyendo los empleados que no tienen jefe

ENAME SCOTT FORD ALLEN JAMES KING

EMPNO 7788 7902 7499 7900 7839

EMGR JONES JONES BLAKE BLAKE

MGR 7566 7566 7698 7698

8. Crear un query que muestre el nombre del empleado, el numero del departamento y todos los empleados que trabajan en el mismo departamento como un empleado determinado DEPTNO EMPLOYEE COLLEAGUE 10 CLARK KING 10 CLARK MILLER 10 KING CLARK 10 MILLER CLARK 10 MILLER KING ..... 56 ROWS SELECT 9. Mirar la estructura de la tabla SALGRADE. Cree una consulta que muestre el nombre, cargo, nombre del departamento, salario y grado de todos los empleados. ENAME MILLER CLARK KING JOB CLERK MANAGER PRESIDENT DNAME ACCOUNTING ACCOUNTING ACCOUNTING SAL 1300 2450 5000 GRADE 2 4 5 54

Acceso y Visualizacin de Datos

Introduccin a Oracle SQL-Plus SMITH CLERK RESEARCH 800 1

10. Cree una consulta que muestre el nombre del empleado y la fecha de ingreso de los empleados que ingresaron despus que BLAKE ENAME KING CLARK MARTIN TURNER HIREDATE 17-NOV-81 09-JUN-81 28-SEP-81 08-SEP-81

11. Mostrar los nombres de los empleados, la fecha de ingreso, el nombre de su jefe y la fecha de ingreso de su jefe. Etiquete los nombres de las columnas respectivamente.

Acceso y Visualizacin de Datos

55

Introduccin a Oracle SQL-Plus

VISIN GENERAL DE LA CREACIN DE TABLAS


El nombre de una tabla debe seguir las reglas estndar para los nombres de cualquier objeto de una base de datos ORACLE.

Requerimientos de la sentencia CREATE TABLE


q q q

El nombre de la tabla. El nombre de la columna. El tipo de datos de la columna.

Reglas para los nombres


q q

Debe tener entre 1 y 30 caracteres y el primer carcter debe ser alfabtico. Debe contener solo los caracteres: o A-Z, a-z, 0-9, _ (guin bajo) o $ y #. Son legales, pero su uso se est descontinuando.

q q

No debe ser ninguna palabra reservada de ORACLE. No Debe tener el mismo nombre que otro objeto dentro del mismo nombre de usuario de ORACLE.

Nota rpida:
q

Los nombres de tablas son los mismos si se escriben en maysculas o minsculas; ejemplo: EMP = Emp. Los nombres de columnas deben adherirse a las tres primeras reglas antes descritas.

Creacin de Tablas y Vistas

56

Introduccin a Oracle SQL-Plus

CREACIN DE TABLAS
Tipo de datos CHAR(tamao) VARCHAR2(Tamao) VARCHAR(Tamao) LONG NUMBER(L,D) INTEGER DATE RAW LONG RAW CLOB BLOB BFILE Descripcin Almacena datos de tipo carcter de longitud fija. Con un tamao mximo de 2000 bytes Almacena datos de tipo carcter de longitud variable, con un tamao mximo de 4.000 Actualmente es igual al Char Almacena datos de tipo carcter de longitud variable hasta 2 gigabytes Almacena datos numricos siendo L la longitud y D el numero de dgitos decimales Numrico sin decimal. Por defecto 38. Almacena informacin relacionada con el tiempo incluyendo fechas, horas, minutos y segundos. (Fechas hasta el 31 de diciembre de 4712) Dato en binario puro (imgenes y sonido) con un ancho mximo de 2000 bytes. Dato en binario puro (imgenes y sonido) mas grande que el RAW Almacena objetos de caracteres grandes de un nico byte Almacena objetos binarios de gran tamao, siendo el tamao mximo 4GB (gigabytes). Almacena punteros de archivo a LOB administrados por sistemas de archivos externos a la base de datos

La Versin 8 de ORACLE ofrece un conjunto mejorado de tipos de datos para manejar objetos de gran tamao, as como un mecanismo ms potente para almacenar datos nmeros. Los objetos de gran tamao se agrupan y referencian como LOBs (Large Objects).

RESTRICCIONES
Restricciones PRIMARY KEY CHECK FOREIGN KEY (nombre_columna) REFERENCES (nombre_columna) [NOT] NULL UNIQUE Uso Identifica de manera nica una fila de la tabla. Especifica una condicin que debe ser verdadera. Establece e impone una relacin entre esta columna y una PRIMARY KEY en la tabla referenciada. Especifica que dicha columna no puede contener valores nulos. Especifica una columna o columnas que deben tener valores nicos a lo largo de todas las filas. Las restricciones de integridad permiten al diseador de la aplicacin restringir el rango de valores aceptables que se pueden almacenar en una tabla. Creacin de Tablas y Vistas 57

Introduccin a Oracle SQL-Plus

Sintaxis abreviada
CREATE TABLE [user.] nombre_tabla ( { nombre_columna tipo | restriccin } [ , { nombre_columna tipo | restriccin } ] ... )

Ejemplo: LAB49 SQL> CREATE TABLE emp2 2 (empno NUMBER(4), 3 CONSTRAINT empno_constr PRIMARY KEY(empno), 4 ename CHAR(10) CHECK (ename = upper(ename)), 5 job CHAR(9), 6 mgr NUMBER(4) REFERENCES emp(empno), 7 hiredate DATE, 8 sal NUMBER(7,2), 9 comm NUMBER(7,2), 10 deptno NUMBER(2) NOT NULL REFERENCES dept(deptno)); Table created. Podemos crear tablas usando la clusula AS en la sentencia CREATE TABLE para usar los atributos de columnas y los datos de una tabla ya existente. CREATE TABLE [user.] nombre_tabla [ ( nombre_columna1, nombre_columna2, ) ] AS consulta

Ejemplo: LAB50 SQL> 2 3 4 CREATE TABLE hdates AS SELECT empno, ename, hiredate FROM emp WHERE empno = 10;

Table created.

Creacin de Tablas y Vistas

58

Introduccin a Oracle SQL-Plus Ejemplo: LAB51 SQL> 5 6 |||||||||||||| 7 CREATE TABLE empty_like_emp AS SELECT * FROM emp WHERE 1 = 2; vcb

Table created. MODIFICACIN DE TABLAS

Use la sentencia ALTER TABLE para modificar la estructura de una tabla. Se pueden hacer dos operaciones:
q q

Adicionar columnas o restricciones Modificar la definicin de las columnas (restricciones, NOT NULL y dems)

Sintaxis Adicionar
ALTER TABLE nombre_tabla ADD ( { nombre_columna tipo | restriccin } [, { nombre_columna tipo | restriccin } ] ... )

Ejemplo: LAB52 SQL> ALTER TABLE hdates 2 ADD (manager NUMBER(4) ); Table altered.

Sintaxis Modificar
ALTER TABLE nombre_tabla MODIFY ( { nombre_columna tipo | restriccin } [, { nombre_columna tipo | restriccin } ] ... )

Creacin de Tablas y Vistas

59

Introduccin a Oracle SQL-Plus

Ejemplo: Incrementar el tamao de la columna ename de 10 a 18. LAB53 SQL> ALTER TABLE hdates 2 MODIFY (ename CHAR(18) ); Table altered. Sintaxis para Borrar la Columna de una Tabla Use la clusula Drop Column cuando desea borrar una columna de una tabla ALTER TABLE nombre_tabla DROP COLUMN ( nombre_columna, nombre_columna ... )

Ejemplo: Borrar la columna ename de la tabla HDATES. LAB54


SQL> ALTER TABLE HDATES 2 DROP COLUMN ename ; Table altered.

alter table empty_like_emp add constraint FK_MAU foreign key (deptno) references dept(deptno);

Sintaxis Eliminacin de una tabla: DROP TABLE


DROP TABLE nombre_tabla

Ejemplo: Eliminar la tabla EMPTY_LIKE_EMP. LAB55 SQL> DROP TABLE empty_like_emp; Table dropped.

Siga los siguientes pasos para eliminar una columna de una tabla:

Creacin de Tablas y Vistas

60

Introduccin a Oracle SQL-Plus

Crear un duplicado de la tabla original, sin la columna o columnas que queremos eliminar: SQL> CREATE TABLE tabla_temp 2 AS SELECT columna1, columna2, columna4, columna5 3 FROM tabla_original; Table created.

Borrar la tabla original SQL> DROP TABLE tabla_original; Table dropped.

Renombrar la nueva tabla con el nombre de la tabla original (este paso es opcional) SQL> RENAME tabla_temp TO tabla_original; Table renamed.

Creacin de Tablas y Vistas

61

Introduccin a Oracle SQL-Plus

VISIN GENERAL DE LAS VISTAS

E MP T able EMPNO ENAME


7839 KING 7839 7782 CLARK 7698 BLAKE 7934 MILLER 7782 CLARK 7566 JONES EMPV75660 U1 7788 SCOTT 7654 MARTIN View 7876 ADAMS 7499 ALLEN

JOB JOB

MGR HIREDATE

SAL COMM DEPTNO SAL COMM DEPTNO

----- ----------------- ----- --------- ------ ----- ------------- --------- -------- ----- ------PRESIDENT PRESIDENT MANAGER MANAGER MANAGER CLERK MANAGER MANAGER SALESMAN ANALYST 17-NOV-81 7839 09-JUN-81 01-MAY-81 7782 23-JAN-82 7839 09-JUN-81 7839 02-APR-81 02-APR-81 7566 09-DEC-82 7698 28-SEP-81 12-JAN-83 20-FEB-81 17-DEC-80 08-SEP-81 03-DEC-81 01-MAY-81 22-FEB-81 28-SEP-81 03-DEC-81 5000 5000 2850 1500 2450 1300 2975 2975 1250 1400 3000 1600 1100 1500 800 3000 950 1250 2850 3000 1250 1600 800 3000 1500 1100 950 500 1400 300 0 300 0 300 10 10 30 10 10 10 20 20 30 20 30 20 30 20 30 20 30 30 20 30 20 30 20 30 20 30

EMPNO -----7839 7782 7934

SALESMAN CLERK 7788 7698 ENAME JOB 7369 SMITH 7844 TURNER SALESMAN CLERK 7902 7698 -------- ----------7902 JAMES 7900 CLERK ANALYST 7698 KING FORD PRESIDENT 7566 7698 WARD 7521 SALESMAN MANAGER 7698 CLARK BLAKE MANAGER 7839 7654 MARTINCLERK 7902 FORD ANALYST SALESMAN 7698 7566 MILLER 7499 ALLEN 7369 SMITH 7844 TURNER 7788 SCOTT 7900 JAMES 7876 ADAMS CLERK SALESMAN ANALYST SALESMAN CLERK CLERK

7698 20-FEB-81 7902 17-DEC-80 7698 08-SEP-81 7566 09-DEC-82 7698 03-DEC-81 7788 12-JAN-83

Se puede representar lgicamente una o ms tablas como una vista. Una vista no contiene datos. Todos los datos se derivan de las tablas subyacentes.

Ventajas de las vistas


q q q

Seguridad Conveniencia Perspectiva

Creacin de Tablas y Vistas

62

Introduccin a Oracle SQL-Plus

CREACIN DE VISTAS
La creacin de vistas es similar a la creacin de tablas usando la clusula AS.

Sintaxis
CREATE [OR REPLACE] VIEW nombre_vista [ (alias1, alias2, ... ) ] AS consulta [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY]; La consulta contiene un sentencia Select sin la clusula order by La clusula WHIT CHECK OPTION se utiliza para al ingresar registros en una tabla se valide la clusula where. La clusula WITH READ ONLY se utiliza cuando se requiere crear una vista de solo lectura, es decir no es permitido insertar, borrar o actualizar datos sobre ella. Ejemplo: Crear una vista que contenga el nmero, el nombre y el cargo de todos los empleados del departamento 10: LAB56 SQL> CREATE VIEW empvu10 2 3 4 AS SELECT empno, ename, job FROM emp WHERE deptno = 10;

View created.

Creacin de Tablas y Vistas

63

Introduccin a Oracle SQL-Plus

SQL> SELECT * FROM empvu10; EMPNO ------------7782 7839 7934 ENAME ------------CLARK KING MILLER JOB ---------------MANAGER PRESIDENT CLERK

Sintaxis Eliminacin de vistas: DROP VIEW 3 rows selected.


DROP VIEW nombre_vista Ejemplo: SQL> DROP VIEW empvu10;

View dropped. Ejemplo: alias de columnas en las vistas. LAB57 SQL> 2 3 4 CREATE VIEW empvu11 (id_number, employee, title) AS SELECT empno, ename, job FROM emp WHERE deptno = 10;

View created. SQL> SELECT * FROM empvu11; ID_NUMBER ----------------7782 7839 7934 3 rows selected. EMPLOYEE ---------------CLARK KING MILLER TITLE ---------------MANAGER PRESIDENT CLERK

Creacin de Tablas y Vistas

64

Introduccin a Oracle SQL-Plus

Ejemplo: alias alternativos en las vistas. LAB58 SQL> 2 3 4 CREATE VIEW salvu10 AS SELECT empno, ename, sal * 12 annual_salary FROM emp WHERE deptno = 10;

View created. SQL> SELECT * FROM salvu10; Asegure que las inserciones y actualizaciones realizadas sobre una vista, no afectarn los datos que la vista no sea capaz de acceder, mediante la utilizacin de la clusula WITH CHECK OPTION. EMP_NO ENAME ANNUAL_SALARY 29400 60000 15600

Sintaxis -------------- ------------- -------------------------7782 CLARK 7839 KING 7934 MILLER 3 rows selected.

Ejemplo: VIEW nombre_vista [ (alias 1, alias2, ) ] CREATE AS consulta [ WITH CHECK OPTION [ CONSTRAINT restriccin ] ] Ejemplo: Cree una vista solo con los datos de los empleados del departamento No. 20. LAB59 SQL> 2 3 4 CREATE VIEW empvu20 AS SELECT * FROM emp WHERE deptno = 20 WITH CHECK OPTION;

View created. Ejemplo: Actualizando el departamento a 30 para el cdigo 7369. LAB60

Creacin de Tablas y Vistas

65

Introduccin a Oracle SQL-Plus

SQL> UPDATE empvu20 2 SET deptno = 30 3 WHERE empno = 7369; UPDATE empvu20 * ERROR at line 1: ORA-01402: view WITH CHECK OPTION where-clause violation.

VISTAZO AL ACCESO DE TABLAS Y VISTAS


El privilegio de DBA (DataBase Administrator Administrador de la base de datos) permite al desarrollador saltarse muchos privilegios estndar que normalmente se requieren para usar objetos de la base de datos.

Privilegios del sistema


DBA todos los privilegios
q q q q q q q q

SELECT CREATE DROP GRANT / REVOKE Ejecutar imports y exports sobre la base de datos completa Modificar la estructura de la base de datos RESOURCE CONNECT

Creacin de Tablas y Vistas

66

Introduccin a Oracle SQL-Plus

UN VISTAZO A LA CONCESIN DE ACCESO A TABLAS Y VISTAS


Los propietarios de las tablas controlan el acceso a los objetos de su propiedad.

Privilegios de acceso a tablas


q q

Crear la tabla por s mismo Obtener los privilegios del propietario

Como DBA o propietario de tablas, use el comando GRANT y sus opciones para otorgar distintos niveles de acceso a los objetos de la base de datos.

Sintaxis
GRANT privilegio1, privilegio2, ... [ o ALL ] ON nombre_tabla / nombre_vista TO usuario1, usuario2, ... [ o PUBLIC ] [ WITH GRANT OPTION ]

Ejemplos:

Otorgar todos los privilegios sobre la tabla EMP a todos los usuarios: SQL> GRANT ALL 2 ON emp 3 TO PUBLIC; Grant succeeded. Otorgar privilegios de consulta (SELECT) al usuario Jones sobre la tabla DEPT: SQL> GRANT SELECT 4 ON dept 5 TO jones; Grant succeeded.

Creacin de Tablas y Vistas

67

Introduccin a Oracle SQL-Plus Otorgar privilegios de consulta (SELECT) al usuario Jones sobre la tabla DEPT, con la habilidad de otorgar los mismos privilegios a otros: SQL> 2 3 4 GRANT SELECT ON dept TO jones WITH GRANT OPTION;

Grant succeeded. Cambiar el password de acceso del usuario scott a leopard: SQL> GRANT CONNECT 2 TO scott 3 IDENTIFIED BY leopard; Grant succeeded.

VISIN GENERAL DE LOS SINNIMOS


Los sinnimos se pueden crear por razones de seguridad y conveniencia.

Niveles de los sinnimos


q q

Pblico Privado

Ventajas de los sinnimos


q q

Referencia a tablas y vistas sin especificar el propietario o la base de datos. Flexibilidad al personalizar una convencin de nombres ms significativa.

Creacin de Tablas y Vistas

68

Introduccin a Oracle SQL-Plus

CREACIN DE SINNIMOS Sintaxis Sinnimo privado


CREATE SYNONYM nombre_sinonimo FOR nombre_tabla / nombre_vista

Ejemplo:

Crear el sinnimo dates para la tabla HDATES del usuario Scott. LAB61 SQL> CREATE SYNONYM dates 2 FOR scott.hdates; Synonym created. SQL> SELECT * FROM dates; EMPNO ------------7369 7499 7521 7566 7654 7698 7782 7788 7839 7844 7876 7900 7902 7934 ENAME ------------SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS JAMES FORD MILLER HIREDATE --------------17-DEC-80 20-FEB-81 22-FEB-81 02-APR-81 28-SEP-81 31-MAY-81 09-JUN-81 09-DEC-82 17-NOV-81 08-SEP-81 12-JAN-83 03-DEC-81 03-DEC-81 23-JAN-82

14 rows selected.

Creacin de Tablas y Vistas

69

Introduccin a Oracle SQL-Plus

LABORATORIO 4-1

1. Crear un duplicado de la tabla EMP. Llmela EMPTEST. 2. Adicione una nueva columna llamada SEX a la tabla EMPTEST de tipo carcter y de tamao uno (1). 3. Los usuarios cambiaron de parecer. En lugar de almacenar en SEX los valores F o M, quieren almacenar los valores FEMALE o MALE. Incremente el tamao de la columna SEX. 4. Cree una vista llamada EMP_NO_MONEY, con todas las columnas de la tabla EMP, excepto las columnas SAL y COMM. 5. Seleccione todas las columnas de la tabla del diccionario de datos USER_VIEWS. 6. Usando su vista EMP_NO_MONEY, haga una consulta que muestre todos los nombres y fechas de contratacin de los empleados. 7. Intente crear una consulta que muestre el nombre y el salario de los empleados de la vista EMP_NO_MONEY. Cul fue el resultado obtenido? __________________________________________________ 8. Cree una vista llamada EMP_DEPTNO_TEN, que incluya solo el nombre, el nmero de departamento y el nmero de empleado de la tabla EMP. Los empleados que se pueden ver a travs de esta vista son los pertenecientes al departamento nmero 10. Use los siguientes nombres de columna para su vista: NAME, DNO, ENO. 9. Cree una consulta usando su vista EMP_DEPTNO_TEN. 10. Elimine su vista EMP_DEPTNO_TEN.

Creacin de Tablas y Vistas

70

Introduccin a Oracle SQL-Plus

VISIN GENERAL SOBRE LOS NDICES


Los ndices son estructuras opcionales, asociadas con tablas, que se usan para agilizar la ejecucin de consultas y/o garantizar unicidad.

El RDBMS de ORACLE accede a los datos en las tablas de dos maneras:


q q

TABLE SCAN completo (acceso secuencial) Por INDICES (acceso indexado o selectivo)

Hay una regla general para los ndices: Cree un ndice cuando se prevea la extraccin frecuente de menos del 10 15% de las filas en una tabla grande y se hace referencia frecuente a las columnas en la clusula WHERE.

Caractersticas de las columnas para indexado


q q q q

Las columnas se usan frecuentemente en clusulas WHERE Cada valor es nico (el mejor caso) Amplio rango de valores Muchos valores nulos, o relativamente pocos valores

Una tabla puede tener cualquier cantidad de ndices. Los ndices aceleran la ejecucin de consultas, pero disminuyen las prestaciones en cuanto a velocidad de mantenimiento de las tablas.

Nota rpida:
q

ORACLE actualiza los ndices automticamente. No tienen impacto en la sintaxis de SQL.

CREACIN DE NDICES Sintaxis ndice simple


CREATE INDEX nombre_indice ON TABLE nombre_tabla (nombre_columna [ , nombre_columna ] ... )

Creacin de ndices y Generadores de Secuencias

71

Introduccin a Oracle SQL-Plus Ejemplo: Crear un ndice simple sobre la columna ENAME en la tabla EMP: LAB62 SQL> CREATE INDEX i_emp_ename 2 ON emp (ename);

Index created.

En esta consulta se usa el ndice: LAB63 SQL> SELECT * 2 3 FROM emp WHERE ename = SMITH;

En esta consulta NO se usa el ndice: LAB64 SQL> SELECT * FROM emp;

En la tabla USER_INDEXES del diccionario de datos se encuentran todos los ndices pertenecientes al usuario actual: LAB65 SQL> SELECT index_name 2 3 FROM user_indexes WHERE table_name = EMP;

INDEX_NAME -------------------I_EMP_ENAME 1 rows selected.

Sintaxis Eliminacin de ndices


DROP INDEX nombre_indice

Creacin de ndices y Generadores de Secuencias

72

Introduccin a Oracle SQL-Plus Ejemplo: LAB66 SQL> DROP INDEX i_emp_ename; Index dropped. Cree ndices nicos sobre una tabla para asegurar que nunca dos filas tendrn valores iguales en la columna o columnas indexadas.

Sintaxis
CREATE UNIQUE INDEX nombre_indice ON nombre_tabla ( nombre_columna [ , nombre_columna ] ... ) Ejemplo:

Crear un ndice en la columna EMPNO de la tabla EMP para incrementar el desempeo, en consultas, as como garantizar valores nicos para los nmeros de empleados: LAB67 SQL> CREATE UNIQUE INDEX i_emp_empno 2 ON emp ( empno );

Index created.

Los ndices concatenados crean una entrada en el ndice con datos provenientes de cada una de las columnas indicadas en la sentencia de creacin del ndice. Se pueden incluir hasta un mximo de 16 columnas por ndice.

Ejemplo:

Crear un ndice en la tabla EMP para las columnas EMPNO y ENAME: LAB68 SQL> CREATE UNIQUE INDEX i_empno_ename 2 ON emp ( empno, ename );

Index created. Creacin de ndices y Generadores de Secuencias 73

Introduccin a Oracle SQL-Plus

CREACIN DE GENERADORES DE SECUENCIA


Cree secuenciadores con el fin de generar enteros nicos y consecutivos para mltiples usos. Los secuenciadores se pueden utilizar para generar llaves primarias de forma automtica.

Sintaxis abreviada
CREATE SEQUENCE nombre_secuencia [ INCREMENT BY {1 | n } ] [ START WITH n ] [ { MAXVALUE n | NOMAXVALUE } ] [ { MINVALUE n | NOMINVALUE ]

Ejemplos:

Cree un secuenciador simple para la columna EMPNO empezando desde el valor 8000: LAB69 SQL> CREATE SEQUENCE s_emp_empno START WITH 8000; Sequence created.

Cree un secuenciador simple para la columna DEPTNO empezando desde el valor 100: LAB70 SQL> CREATE SEQUENCE s_dept_deptno START WITH 100; Sequence created.

Creacin de ndices y Generadores de Secuencias

74

Introduccin a Oracle SQL-Plus Ejemplo Mostrar una secuencia

Mostrar el siguiente valor disponible de la secuencia S_EMP_EMPNO: LAB71 SQL> SELECT s_emp_empno.nextval 2 FROM dual; NEXTVAL -------------8000 1 rows selected.

Eliminar un secuenciador de la base de datos con DROP SEQUENCE

Sintaxis
DROP SEQUENCE nombre_secuencia;

Ejemplo: LAB72 SQL> DROP SEQUENCE s_emp_empno; Sequence dropped.

LABORATORIO 5-1
1. Crear un ndice sobre la tabla EMP llamado I_EMP_EMPNO que no permita nmeros de empleado duplicados. Usted probar este ndice en el laboratorio de la prxima seccin. 2. Cree un secuenciador llamado S_DEPT_DEPTNO que empiece en 60 y se incremente en 10. Este secuenciador lo usar en el laboratorio de la prxima seccin. 3. Muestre su secuencia seleccionando todas las columnas de la tabla USER_SEQUENCES del diccionario de datos. 4. Use la tabla DUAL para mostrar el prximo valor de secuencia disponible para el secuenciador S_DEPT_DEPTNO. 5. Repita el ejercicio 4.

Creacin de ndices y Generadores de Secuencias

75

Introduccin a Oracle SQL-Plus

ACTUALIZACION DE DATOS EN TABLAS INSERCIN DE FILAS


Inserte filas en una tabla con la instruccin INSERT.

Sintaxis
INSERT INTO nombre_tabla [ (columna1, columna2, ) ] VALUES (value1, value2, ...)

Ejemplo:

Mostrar la estructura de la tabla DEPT: SQL> DESCRIBE dept; Name NULL? --------------- --------------DEPTNO NOT NULL DNAME LOC Type -----------------NUMBER(2) CHAR(14) CHAR(13)

Inserte el departamento de Finanzas con cdigo 50 con sede en Los Angeles en la tabla DEPT: LAB73 SQL> INSERT INTO dept 2 VALUES (50, FINANCE, LOS ANGELES);

1 row created.

Inserte valores en todas las columnas de una tabla: LAB74 SQL> INSERT INTO emp 2 VALUES (1234, EMMETT, SALESMAN, 7698, SYSDATE, 2000, NULL, 30);

1 row created.

Formato de Reportes

76

Introduccin a Oracle SQL-Plus Inserte valores en solo algunas columnas de una tabla: LAB75 SQL> INSERT INTO emp ( empno, ename, hiredate, sal, deptno ) 2 VALUES ( S_EMP_EMPNO.NEXTVAL, LERNER, 01/01/1992, 2000, 30 );

1 row created.

Inserte valores en las columnas utilizando parmetros: LAB76 SQL> INSERT INTO dept 2 VALUES ( &DEPTNO, &DNAME, &LOC );

Enter value for DEPTNO: 60 Enter value for DNAME: RESEARCH Enter value for LOC: BOSTON 1 row created.

ACTUALIZACIN DE FILAS
Cambie los datos en una tabla especfica con la sentencia UPDATE.

Sintaxis
UPDATE nombre_tabla SET columna1 = valor, columna2 = valor [ WHERE condicin ] Ejemplo: Mostrar la estructura de la tabla EMP SQL> DESCRIBE emp; Name --------------EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO NULL? Type --------------- -----------------NOT NULL NUMBER(4) CHAR(10) CHAR(9) NUMBER(4) DATE NUMBER(7, 2) NUMBER(7, 2) NOT NULL NUMBER(2) 77

Formato de reportes

Introduccin a Oracle SQL-Plus Cambiar al empleado 7566 al cargo de vendedor en el departamento 30: LAB77 SQL> UPDATE emp 2 3 SET job = SALESMAN, deptno = 30 WHERE empno = 7566;

1 row updated. Actualizar varias columnas en una sola fila: LAB78 SQL> UPDATE emp 2 3 SET job = SALESMAN, sal = sal * 1.05, deptno = 30 WHERE empno = 7788;

1 row updated. Actualizacin de mltiples filas: Cambiar el cargo SALESMAN por SALES. LAB79 SQL> UPDATE emp 2 3 SET job = SALES WHERE job = SALESMAN;

7 rows updated. SQL> SELECT ename, job, deptno 2 3 FROM emp WHERE job = SALES; JOB ------------SALES SALES SALES SALES SALES SALES SALES DEPTNO --------------30 30 30 30 30 30 30

ENAME ------------ALLEN WARD JONES MARTIN SCOTT TURNER EMMETT

7 rows selected. Formato de reportes 78

Introduccin a Oracle SQL-Plus

Devolver el cargo a su valor original SALESMAN LAB80 SQL> UPDATE emp 4 5 SET job = SALESMAN WHERE job = SALES;

7 rows updated.

ELIMINACIN DE FILAS
Elimine filas de una tabla especfica usando la sentencia DELETE.

Sintaxis
DELETE FROM nombre_tabla [ WHERE condicin ] Ejemplo:

Borrar el empleado nmero 1234 (EMMETT) de la tabla EMP para reflejar su retiro. LAB81 SQL> DELETE FROM emp 2 WHERE empno = 1234;

1 row deleted.

Pregunta:
Qu hubiera pasado si se omite la clusula WHERE en el ejemplo anterior?

Formato de reportes

79

Introduccin a Oracle SQL-Plus

UN VISTAZO AL PROCESAMIENTO DE TRANSACCIONES


Una transaccin se define como todos los cambios realizados a una base de datos entre COMMIT sucesivos.

Transaccin INSERT INSERT


COMMIT

UPDATE

INSERT INSERT

DELETE DELETE

SAVEPOINT A

SAVEPOINT B

ROLLBACK T O B ROLLBACK T O A

ROLLBACK

Formato de reportes

80

Introduccin a Oracle SQL-Plus

PROCESAMIENTO DE TRANSACCIONES
La sentencia COMMIT hace permanentes todos los cambios realizados en la transaccin actual.

Tipos de COMMIT
o Explcito o Implcito

Ejemplo:

Hacer COMMIT en una sentencia SQL. LAB82

SQL> DELETE FROM emp 2 WHERE ename = LERNER;

1 row deleted. SQL> COMMIT;

Commit complete. Logre que las modificaciones realizadas sean deshechas utilizando la sentencia ROLLBACK

Ejemplo:

Transfiera a JONES al grupo de vendedores: LAB83 SQL> UPDATE emp 2 3 SET job = SALESMAN, deptno = 30 WHERE ename = JONES;

1 row updated.

Formato de reportes

81

Introduccin a Oracle SQL-Plus Todos los empleados de la compaa que se llaman JONES fueron transferidos al grupo de vendedores. Revierta la operacin y vuelva a realizar el traslado, utilizando el nmero de empleado. SQL> ROLLBACK; Rollback complete. SQL> UPDATE emp 2 3 SET job = SALESMAN, deptno = 30 WHERE empno = 7566;

1 row updated. Marque un punto en una transaccin hasta el cual podra hacer un ROLLBACK sin necesidad de cancelar toda la transaccin, utilizando la sentencia SAVEPOINT.

Ejemplo:

Inserte un nuevo departamento en la tabla DEPT y cree un punto de salva (SAVEPOINT) para la transaccin: LAB84 SQL> INSERT INTO dept 2 VALUES (70, PERSONNEL, TAHITI);

1 row created. SQL> SAVEPOINT A; Savepoint created.

Use la sentencia ROLLBACK TO SAVEPOINT para cancelar solo una porcin de la transaccin (hasta un punto de salva determinado):

Formato de reportes

82

Introduccin a Oracle SQL-Plus Ejemplo:

Inserte un nuevo departamento en la tabla DEPT y cree un punto de salva (SAVEPOINT) para la transaccin: LAB85 SQL> INSERT INTO dept 2 VALUES (80, EDUCATION, MAUI);

1 row created. SQL> SAVEPOINT B; Savepoint created. Cambie la ubicacin del departamento 80 hacia Kauai: LAB86 SQL> UPDATE dept 2 3 SET loc = KAUAI WHERE deptno = 80;

1 row updated. Cancele todas las operaciones hasta el punto de salva B. SQL> ROLLBACK TO B; Savepoint created.

Formato de reportes

83

Introduccin a Oracle SQL-Plus

LABORATORIO 6-1 Insercin, actualizacin, eliminacin de datos y confirmacin de transacciones.


1. Insrtese usted mismo como un empleado en la tabla EMP. 2. Confirme la insercin. 3. Inserte otra fila en la tabla EMP pidiendo el nombre del empleado, el nmero del departamento, el nmero de empleado y la fecha de contratacin. 4. Cree un punto de salva llamado SP1. 5. Adicione un nuevo departamento en la tabla DEPT con nmero 99, localizado en Maui y con nombre EDUCATION. 6. Cancele las operaciones hasta el punto de salva SP1. Escriba una consulta para mostrar todos los datos de la tabla DEPT para verificar el estado de los nuevos datos ingresados. 7. Confirme los cambios. 8. Actualice sus propios datos, dndose usted mismo un aumento de $1.000 por mes. 9. Brrese usted mismo de la tabla EMP. 10. Confirme los cambios. 11. Haga de nuevo la vista llamada EMP_DEPTNO_TEN, use WITH CHECK OPTION, la cual incluye el nombre del empleado, nmero de departamento y nmero de empleado de la tabla EMP. Los nicos empleados que estarn visibles a travs de esta vista son los que se encuentran en el departamento 10. 12. Actualice el departamento del empleado KING de 10 a 20 usando la vista

EMP_DEPTNO_TEN. Qu paso? ________________________________________________ 13. Intente ingresar un empleado con un nmero de empleado duplicado en la tabla EMP para probar el ndice creado en la seccin anterior. 14. Inserte dos nuevos departamentos usando la secuencia S_DEPT_DEPTNO, la cual se cre en la seccin anterior. 15. Escriba una consulta para mostrar los nuevos departamentos insertados.

Formato de reportes

84

You might also like