Introducción a Oracle SQL-Plus. Introducción a Oracle SQL-Plus
|
|
|
- Natalia Quintana Pérez
- hace 8 años
- Vistas:
Transcripción
1 Introducción a Oracle SQL-Plus Introducción a Oracle SQL-Plus
2 INDICE DE CONTENIDO ACCESO Y VISUALIZACIÓN DE DATOS...4 EL MODELO RELACIONAL...4 VISIÓN GENERAL DE SQL...6 SQL CONTRA SQL*PLUS...6 Comandos SQL...6 Use los comandos de SQL*Plus para:...6 VISIÓN GENERAL DEL INICIO DE UNA SESIÓN SQL...7 ACCESO A LA AYUDA...8 VISTAZO DE LA SENTENCIA SELECT...8 SELECCIÓN DE COLUMNAS...9 SELECCIÓN DE FILAS...12 VER EL DICCIONARIO DE DATOS...20 Nombre de tabla...20 Descripción...20 EDICIÓN DEL BUFFER DE SQL-PLUS...21 LABORATORIO EJECUCIÓN DE OPERACIONES SOBRE TIPOS DE DATOS Y FUNCIONES...25 VISTAZO A LOS VALORES Y FUNCIONES NUMÉRICOS...25 REFERENCIA DE LOS VALORES Y FUNCIONES NUMÉRICOS...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 VISIÓN GENERAL DE ALGUNAS FUNCIONES ADICIONALES...37 REFERENCIA DE ALGUNAS FUNCIONES ADICIONALES...38 LABORATORIO VISTAZO A LAS FUNCIONES DE GRUPO...40 LABORATORIO OBTENIENDO DATOS DE MULTIPLES TABLAS...46 CARACTERÍSTICAS 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 INTERSECCIÓN (INTERSECT)...52 EL OPERADOR MENOS (MINUS)...52 LABORATORIO VISIÓN GENERAL DE LA CREACIÓN DE TABLAS...56 CREACIÓN DE TABLAS...57 RESTRICCIONES...57 MODIFICACIÓN DE TABLAS...59 Borrar la tabla original...61
3 CREACIÓN DE VISTAS...63 VISTAZO AL ACCESO DE TABLAS Y VISTAS...66 UN VISTAZO A LA CONCESIÓN DE ACCESO A TABLAS Y VISTAS...67 VISIÓN GENERAL DE LOS SINÓNIMOS...68 CREACIÓN DE SINÓNIMOS...69 LABORATORIO VISIÓN GENERAL SOBRE LOS ÍNDICES...71 CREACIÓN DE ÍNDICES...71 CREACIÓN DE GENERADORES DE SECUENCIA...74 LABORATORIO INSERCIÓN DE FILAS...76 ACTUALIZACIÓN DE FILAS...77 ELIMINACIÓN DE FILAS...79 UN VISTAZO AL PROCESAMIENTO DE TRANSACCIONES...80 PROCESAMIENTO DE TRANSACCIONES...81 LABORATORIO
4 ACCESO Y VISUALIZACIÓN DE DATOS EL MODELO RELACIONAL En un sistema de bases de datos relacional, la información se organiza en forma de tablas. Tabla EMP EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369 SMITH RECEPCIONISTA /12/ ALLEN VENDEDOR /02/ WARD VENDEDOR /02/ JONES GERENTE /04/ MARTIN VENDEDOR /07/ BLAKE GERENTE /05/ CLARK GERENTE /06/ SCOTT ANALISTA /12/ KING PRESIDENTE 17/11/ TURNER VENDEDOR /11/ ADAMS RECEPCIONISTA /01/ JAMES RECEPCIONISTA /12/ FORD ANALISTA /12/ MILLER RECEPCIONISTA /01/ Notas rápidas: Las categorías de información 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 información inmediatamente Cada columna contiene un tipo de información. 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 Visualización de Datos 4
5 FILAS COLUMNAS Tabla EMP EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369 SMITH RECEPCIONISTA /12/ ALLEN VENDEDOR /02/ WARD VENDEDOR /02/ JONES GERENTE /04/ MARTIN VENDEDOR /07/ BLAKE GERENTE /05/ CLARK GERENTE /06/ SCOTT ANALISTA /12/ KING PRESIDENTE 17/11/ TURNER VENDEDOR /11/ ADAMS RECEPCIONISTA /01/ JAMES RECEPCIONISTA /12/ FORD ANALISTA /12/ MILLER RECEPCIONISTA /01/ La información en una tabla puede relacionarse con la información que se encuentra en otra. Tabla DEPT DEPTNO DNAME LOC 10 FINANZAS NEW YORK 20 INVESTIGACIÓN DALLAS 30 VENTAS CHICAGO 40 OPERACIONES BOSTON Tabla EMP EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369 SMITH RECEPCIONISTA /12/ ALLEN VENDEDOR /02/ WARD VENDEDOR /02/ JONES GERENTE /04/ MARTIN VENDEDOR /07/ BLAKE GERENTE /05/ CLARK GERENTE /06/ SCOTT ANALISTA /12/ KING PRESIDENTE 17/11/ TURNER VENDEDOR /11/ ADAMS RECEPCIONISTA /01/ JAMES RECEPCIONISTA /12/ FORD ANALISTA /12/ MILLER RECEPCIONISTA /01/ Acceso y Visualización de Datos 5
6 VISIÓN GENERAL DE SQL SQL-Plus es una herramienta diseñada para usar con ORACLE, la cual extiende las capacidades del estándar ANSI-SQL SQL CONTRA SQL*PLUS SQL SQL*Plus Es un lenguaje que consiste en comandos para guardar, recuperar, mantener y regular el acceso a una base de datos Es una aplicación que reconoce y ejecuta comandos SQL y comandos especializados de SQL*Plus que pueden personalizar reportes, proveer facilidades de ayuda y edición, así como mantener variables del sistema. Con SQL se puede manipular y recuperar datos, así como crear y modificar la estructura de los datos. Funciones de los comandos SQL Consultas Manipulación de datos Definición de datos Control de los datos Comandos SQL ALTER DROP REVOKE AUDIT GRANT ROLLBACK COMMENT INSERT SELECT COMMIT LOCK UPDATE CREATE NO AUDIT VALIDATE DELETE RENAME Escriba comandos SQL*Plus para manipular comandos SQL Use los comandos de SQL*Plus para: Entrar, editar, guardar, recuperar y correr comandos SQL Formatear, guardar, imprimir y realizar cálculos sobre los resultados de una consulta en forma de reportes Listar la definición de las columnas de cualquier tabla Acceder y copiar datos entre bases de datos SQL Enviar y aceptar mensajes de un usuario final Acceso y Visualización de Datos 6
7 Comandos de (ejecutar) COPY QUIT / (ejecutar último) DESCRIBE REMARK ACCEPT DISCONNECT RUN APPEND EDIT SAVE BREAK EXIT SET BTITLE GET SHOW CHANGE HELP SPOOL CLEAR HOST SQLPLUS COLUMN INPUT START COMPUTE LIST TIMING CONNECT NEWPAGE TTITLE UNDEFINE VISIÓN GENERAL DEL INICIO DE UNA SESIÓN SQL El primer paso para abrir una sesión SQL es acceder a SQL-Plus a) Interfaz Grafica b) Desde la línea de Comando SQL> connect [username[/password[@database]]] username = nombre de usuario password = clave de = alias de la base de datos c) Cierre de sesión: SQL> exit <ENTER> Acceso y Visualización de Datos 7
8 ACCESO A LA AYUDA Acceso al sistema de ayuda en línea, 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 DNAME LOC 10 FINANZAS NEW YORK 20 INVESTIGACIÓN DALLAS 30 VENTAS CHICAGO 40 OPERACIONES BOSTON Tabla EMP EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369 SMITH RECEPCIONISTA /12/ ALLEN VENDEDOR /02/ WARD VENDEDOR /02/ JONES GERENTE /04/ MARTIN VENDEDOR /07/ BLAKE GERENTE /05/ CLARK GERENTE /06/ SCOTT ANALISTA /12/ KING PRESIDENTE 17/11/ TURNER VENDEDOR /11/ ADAMS RECEPCIONISTA /01/ JAMES RECEPCIONISTA /12/ FORD ANALISTA /12/ MILLER RECEPCIONISTA /01/ Acceso y Visualización de Datos 8
9 Seleccionar información de una base de datos, es decir, hacer consultas, es una de las operaciones más comunes que se realizan sobre una base de datos. Items de un RDBMS que pueden incluirse en una sentencia SELECT Columnas Expresiones Constantes Requerimientos mínimos para ejecutar una sentencia SELECT El comando SELECT (indica que se va a consultar) La palabra FROM (indica donde se va a realizar la consulta) SELECCIÓN DE COLUMNAS Existen dos maneras distintas de visualizar todas las columnas de una tabla: Sintaxis: Digitando todos los nombres de columna separados por comas y la tabla donde esas columnas están definidas, o Digitar un asterisco y el nombre de la tabla donde están definidas las columnas SELECT nombre_columna [, nombre_columna...] FROM nombre_tabla SELECT * FROM nombre_tabla Ejemplo: Visualizar todas las columnas de información acerca de cada departamento. (LAB1) SQL> SELECT * FROM dept; DEPTNO DNAME LOC FINANZAS NEW YORK 20 INVESTIGACION DALLAS 30 VENTAS CHICAGO 40 OPERACIONES Acceso y Visualización de Datos BOSTON 9 4 rows selected.
10 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? Type DEPTNO NOT NULL NUMBER(2) DNAME CHAR(14) LOC CHAR(13) Para visualizar una columna específica, entre el nombre de la columna en la cláusula SELECT y la tabla en la que está definida en la cláusula FROM. Ejemplo de columna única: Visualizar los nombres de todos los departamentos: LAB3 SQL> SELECT dname FROM dept; DNAME FINANZAS INVESTIGACIÓN VENTAS OPERACIONES 4 rows selected. Ejemplo de múltiples columnas: Visualizar el nombre y número de todos los departamentos. LAB4 SQL> SELECT dname, deptno FROM dept; DNAME DEPTNO FINANZAS 10 INVESTIGACIÓN 20 VENTAS 30 OPERACIONES 40 Acceso y Visualización de Datos 10 4 rows selected.
11 Con SQL se pueden quitar las filas duplicadas antes que los datos sean devueltos por la sentencia SELECT con la cláusula DISTINCT. Sintaxis - SELECT usando la cláusula 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 Visualización de Datos 11
12 Nota rápida: Solo se puede hacer referencia a los alias de columna en la cláusula SELECT de una consulta. SELECCIÓN DE FILAS Para seleccionar filas específicas de una tabla, use la cláusula WHERE para especificar una condición. SINTAXIS DE LA SENTENCIA SELECT SELECT... FROM... WHERE... Componentes de la condición de búsqueda de la cláusula WHERE Nombre de columna o expresión o constante. Operador de comparación Expresión o nombre de columna o constante Notas rápidas: Las constantes de cadena y de fecha deben encerrarse entre comillas simples. Las constantes de carácter son sensibles a mayúsculas y minúsculas y las constantes de fecha deben estar en el formato DD-MM-YY Acceso y Visualización de Datos 12
13 Operadores de comparación = Igual a!= <> ^= Diferente de > Mayor que >= Mayor o igual que < Menor que <= Menor o igual que BETWEEN... AND Entre dos valores IN (lista) IS NULL Igual que algún miembro de la lista Es un valor nulo LIKE Concuerda con un patrón de caracteres Selección de filas basados en criterios de igualdad o desigualdad usando los operadores =, <>, >=, <=, >, <. Ejemplo: Seleccionar el número, nombre y salario de los empleados en el departamento 30. LAB7 SQL> SELECT empno, ename, sal FROM emp WHERE deptno = 30; EMPNO ENAME SAL ALLEN WARD MARTIN BLAKE TURNER JAMES rows selected. Acceso y Visualización de Datos 13
14 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 JOB SAL SMITH CLERK 800 ALLEN SALESMAN 1600 WARD SALESMAN 1250 MARTIN SALESMAN 1250 SCOTT ANALYST 3000 KING PRESIDENT 5000 TURNER SALESMAN 1500 ADAMS CLERK 1100 JAMES CLERK 950 FORD ANALYST 3000 MILLER CLERK rows selected. Selección basada en un rango de valores usando el operador BETWEEN... AND. Ejemplo: Seleccionar el número, cargo y número de departamento de todos los empleados contratados entre Enero 1 de 1982 y Enero 1 de LAB9 SQL> SELECT ename, job, deptno, hiredate FROM emp WHERE hiredate BETWEEN '01/01/1982' AND '01/01/1983'; ENAME JOB DEPTNO HIREDATE MILLER CLERK 10 23/01/ row selected. Selección de filas basándose en la coincidencia con valores dentro de una lista, usando el operador IN. Acceso y Visualización de Datos 14
15 Ejemplo: Seleccionar el nombre, cargo y número 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 JOB DEPTNO SMITH CLERK 20 SCOTT ANALYST 20 ADAMS CLERK 20 JAMES CLERK 30 FORD ANALYST 20 MILLER CLERK 10 6 rows selected. Selección de filas basándose en la coincidencia con un patrón de caracteres usando comodines con el operador LIKE: Comodines: %: Coincidencia con cualquier cantidad de caracteres. _ : Coincidencia con un caracter. Ejemplos: Seleccionar el nombre, cargo, número de departamento y fecha de contratación para los empleados cuyo apellido empiece con la letra mayúscula M. LAB11 SQL> SELECT ename, job, deptno, hiredate FROM emp WHERE ename LIKE M% ; ENAME JOB DEPTNO HIREDATE MARTIN SALESMAN SEP-81 MILLER CLERK JAN-82 Acceso y Visualización de Datos 15 2 rows selected.
16 Seleccionar el nombre, cargo, número de departamento y fecha de contratación para los empleados cuyo apellido empiece con la letra mayúscula 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 JOB DEPTNO HIREDATE JONES MANAGER APR-81 JAMES CLERK DEC-81 2 rows selected. Use el operador NOT para hacer una condición negativa junto con los operadores: NOT BETWEEN... AND... NOT IN (lista) IS NOT NULL NOT LIKE Conecte operadores lógicos con expresiones lógicas complejas. Expresiones lógicas AND OR Cuando una condición contiene más de una expresión, el RDBMS evalúa cada expresión. Luego los resultados de cada condición se unen teniendo en cuenta la precedencia de los operadores de conexión. Igual precedencia: =, <>, <, <=, >, >=, IN, LIKE, IS NULL, BETWEEN AND Luego los operadores lógicos se evalúan en el siguiente orden: NOT AND OR Acceso y Visualización de Datos 16
17 Ejemplo: Seleccionar el nombre, cargo y salario de los gerentes que ganen más 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 JOB SAL ALLEN SALESMAN 1600 WARD SALESMAN 1250 JONES MANAGER 2975 MARTIN SALESMAN 1250 BLAKE MANAGER 2850 CLARK MANAGER 2450 TURNER SALESMAN rows selected. Seleccionar el nombre, cargo y salario de los gerentes y vendedores que ganen $1500 o más: LAB14 SQL> SELECT ename, job, sal FROM emp WHERE sal >= 1500 AND (job = MANAGER OR job = SALESMAN ); ENAME JOB SAL ALLEN SALESMAN 1600 JONES MANAGER 2975 BLAKE MANAGER 2850 CLARK MANAGER 2450 TURNER SALESMAN rows selected. Acceso y Visualización de Datos 17
18 SALIDAS ORDENADAS DE UNA CONSULTA SINTAXIS DE LA SENTENCIA SELECT SELECT... FROM... WHERE... ORDER BY ORDER BY puede ordenar: En orden ascendente. En modo descendente. Por múltiples columnas Por la posición 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 JOB ENAME CLERK MILLER 2450 MANAGER CLARK 5000 PRESIDENT KING 3 rows selected. Acceso y Visualización de Datos 18
19 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 JOB ENAME PRESIDENT KING 2450 MANAGER CLARK 1300 CLERK MILLER 3 rows selected. Ordenamiento por múltiples columnas: Mostrar el nombre, cargo y salario de los empleados en el departamento 30. Ordene los resultados por cargo. Si hay más de un empleado con el mismo cargo, ordénelos 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 JOB ENAME JAMES CLERK 950 BLAKE MANAGER 2850 ALLEN SALESMAN 1600 TURNER SALESMAN 1500 MARTIN SALESMAN 1250 WARD SALESMAN rows selected. Acceso y Visualización de Datos 19
20 Ordenamiento por posición 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 información descriptiva acerca de las tablas, privilegios de acceso de los usuarios, y demás características de la base de datos. Tablas de usuario que se consultan frecuentemente en el diccionario de datos Nombre de tabla Descripción user_catalog Tablas, vistas, sinónimos, secuencias y otros objetos de propiedad del usuario user_constraints Información acerca de las restricciones en las tablas del usuario user_indexes Descripción de los índices del usuario user_sequences Descripción de las secuencias del usuario user_synonyms Descripción de los sinónimos del usuario user_tables Descripción de las tablas del usuario user_users Información acerca del usuario actual user_views Información acerca de las vistas del usuario all_tables Descripción de todas las tablas accesibles por el usuario Acceso y Visualización de Datos 20
21 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. EDICIÓN DEL BUFFER DE SQL-PLUS La edición del buffer de SQL-Plus se realiza con comandos de SQL-Plus: Comando Descripción A[PPEND] Adiciona texto específico a la línea actual en el buffer C[HANGE] Cambia la primera ocurrencia de un texto específico en la línea actual del buffer por una cadena especificada. Ejemplo: C / ENP / EMP CL[EAR] BUFFER Borra el contenido del buffer o CLE[AR] BUFFER DEL Borra el contenido de la línea actual del buffer I[NPUT] Adiciona una o más líneas de texto después de la línea actual del buffer. Presione <ENTER> en una línea en blanco para salir del modo INPUT L[IST] Lista todas las líneas del buffer L[IST] n Lista la línea número n del buffer R[UN] Muestra y ejecuta el contenido del buffer / Ejecuta el contenido del buffer n Fija el puntero del buffer en la línea n n <cadena de texto> Cambia el contenido de la línea n por la cadena de texto especificada Acceso y Visualización de Datos 21
22 Nota rápida Un asterisco (*) aparecerá al lado del número de línea actual del buffer Ejemplos: Reescribir la línea 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 JOB SAL ALLEN SALESMAN 1600 WARD SALESMAN 1250 MARTIN SALESMAN 1250 BLAKE MANAGER 2850 TURNER SALESMAN 1500 JAMES CLERK rows selected. Fijar el puntero del buffer en la línea 1. Cambiar SAL por DEPTNO: SQL> 1 1* SELECT ename, job, sal SQL> C / sal / deptno 1* SELECT ename, job, deptno SQL> / Acceso y Visualización de Datos 22
23 ENAME JOB DEPTNO ALLEN SALESMAN 30 WARD SALESMAN 30 MARTIN SALESMAN 30 BLAKE MANAGER 30 TURNER SALESMAN 30 JAMES CLERK 30 6 rows selected. Agregar la columna HIREDATE en la línea actual usando el comando APPEND: SQL> 1 1* SELECT ename, job, deptno SQL> A, hiredate 1* SELECT ename, job, deptno, hiredate SQL> / ENAME JOB DEPTNO HIREDATE ALLEN SALESMAN FEB-81 WARD SALESMAN FEB-81 MARTIN SALESMAN SEP-81 BLAKE MANAGER MAY-81 TURNER SALESMAN SEP-81 JAMES CLERK DEC-81 6 rows selected. Borrar la línea 3: SQL> 3 3* WHERE deptno = 30 SQL> del SQL> / Acceso y Visualización de Datos 23
24 ENAME JOB DEPTNO HIREDATE SMITH CLERK DEC-80 ALLEN SALESMAN FEB-81 WARD SALESMAN FEB-81 JONES MANAGER APR-81 MARTIN SALESMAN SEP-81 BLAKE MANAGER MAY-81 CLARK MANAGER JUN-81 SCOTT ANALYST DEC-82 KING PRESIDENT NOV-81 TURNER SALESMAN SEP-81 ADAMS CLERK JAN-83 JAMES CLERK DEC-81 FORD ANALYST DEC-81 MILLER CLERK JAN rows selected. LABORATORIO 1-1 Use la tabla EMP para completar los siguientes ejercicios: 1. Muestre cada nombre de empleado y su fecha de contratación. 2. Muestre la información del ejercicio 1, con la fecha de contratación apareciendo de primero. 3. Muestre los empleados que ganan más de $ 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 comisión. Rotule el nombre del empleado como Name y la columna salario como Salary. 7. Muestre los empleados contratados en Muestre los nombres y cargos de los empleados en los departamentos 10 y 20. Acceso y Visualización de Datos 24
25 EJECUCIÓN DE OPERACIONES SOBRE TIPOS DE DATOS Y FUNCIONES VISTAZO A LOS VALORES Y FUNCIONES NUMÉRICOS Realice cálculos varios sobre números usando los siguientes operadores aritméticos: + Suma - Resta * Multiplicación / División ( ) Paréntesis anular precedencia Los operadores aritméticos pueden ser usados en la mayoría de sentencias SQL. REFERENCIA DE LOS VALORES Y FUNCIONES NUMÉRICOS Muestre el resultado de los cálculos como si fueran columnas con expresiones aritméticas en sentencias SELECT. Ejemplo: expresiones en sentencias SELECT. Muestre el nombre, salario, comisión y la compensación total para todos los vendedores cuya comisión es mayor que el 25% de su salario. LAB21 SQL> SELECT ename, sal, comm, sal + comm 2 FROM emp 3 WHERE job = SALESMAN AND comm > 0.25 * sal 4 ORDER BY 4; ENAME SAL COMM SAL+COMM WARD MARTIN rows selected. Acceso y Visualización de Datos 25
26 Una fila sin valor en una columna, se dice que contiene un valor NULO. SQL> DESCRIBE emp; Name Null? Type EMPNO NOT NULL NUMBER (4) ENAME CHAR (10) JOB CHAR (9) MGR NUMBER (4) HIREDATE DATE SAL NUMBER (7, 2) COMM NUMBER (7, 2) DEPTNO NOT NULL NUMBER (2) Cuando una expresión o función individual hace referencia a una columna que contiene un valor nulo, el resultado es también nulo. Ejemplo: Muestre el nombre, cargo, salario, comisión y compensación total de los empleados del departamento 30. LAB22 SQL> SELECT ename, job, sal, comm, sal + comm 2 FROM emp 3 WHERE deptno = 30; ENAME JOB SAL COMM SAL+COMM ALLEN SALESMAN WARD SALESMAN JONES SALESMAN 2975 MARTIN SALESMAN BLAKE MANAGER 2850 SCOTT SALESMAN 3150 TURNER SALESMAN JAMES CLERK rows selected. Acceso y Visualización de Datos 26
27 Convierta un valor nulo en uno no-nulo con el propósito de evaluar una expresión con la función NVL Cuando NVL evalúa la primera expresión, si esta es no-nula, retorna dicha expresión; en caso contrario, retorna la segunda. Sintaxis: NVL (expr1, expr2) Ejemplo: Muestre el nombre de empleado, cargo, salario, comisión y compensación total de los empleados del departamento 30. LAB23 SQL> SELECT ename, job, sal, comm, NVL(sal, 0) + NVL(comm, 0) 2 FROM emp 3 WHERE deptno = 30; ENAME JOB SAL COMM NVL(SAL, 0)+NVL(COMM, 0) ALLEN SALESMAN WARD SALESMAN JONES SALESMAN MARTIN SALESMAN BLAKE MANAGER SCOTT SALESMAN TURNER SALESMAN JAMES CLERK rows selected. El RDMBS evalúa cada expresión aritmética. Los resultados de las expresiones se combinan luego en el orden determinado por la precedencia de los operadores. Acceso y Visualización de Datos 27
28 Orden de evaluación * Multiplicación / División Luego + Suma - Resta Para anular la precedencia de los operadores, coloque parte de la expresión entre paréntesis. ORACLE evalúa estas expresiones primero. Ejemplo: Muestre el nombre de empleado, salario, comisión y compensación total para todos los vendedores ordenado por compensación total. LAB24 SQL> SELECT ename, sal, comm, 12 * (sal + comm) total 2 FROM emp 3 WHERE job = SALESMAN 4 ORDER BY 12 * (sal + comm); ENAME SAL COMM TOTAL TURNER WARD ALLEN MARTIN JONES 2975 SCOTT rows selected. Acceso y Visualización de Datos 28
29 Muestre el nombre de empleado, salario, comisión y salario anual, más un mes de comisión para todos los vendedores ordenado por compensación total. LAB25 SQL> SELECT ename, sal, comm, 12 * sal + comm total 2 FROM emp 3 WHERE job = SALESMAN 4 ORDER BY 4; ENAME SAL COMM TOTAL WARD MARTIN TURNER JONES SCOTT 3150 ALLEN rows selected. Las funciones numéricas aceptan una entrada numérica y retornan valores numéricos Ejemplo: función ROUND Liste el nombre, salario mensual, salario diario (basado en un mes laboral de 22 días) y el salario diario redondeado al próximo entero para los empleados ALLEN y JONES. LAB26 SQL> SELECT ename, sal, sal / 22, ROUND (sal / 22, 0) 2 FROM emp 3 WHERE ename IN ( ALLEN, JONES ); ENAME SAL SAL / 22 ROUND(SAL / 22, 0) ALLEN JONES rows selected. Acceso y Visualización de Datos 29
30 FUNCIÓN EJEMPLO RESULTADO MOD MOD (7, 5) El residuo de dividir 7 entre 5 SQRT SQRT (25) La raíz cuadrada de 25 ROUND ROUND (SAL, 2) TRUNC TRUNC (SAL, 2) POWER POWER (SAL, 3) El salario, redondeado a dos dígitos después del punto decimal. El salario, truncado a dos dígitos después del punto decimal. El salario, elevado a la tercera potencia. VISTAZO A LOS VALORES Y FUNCIONES DE FECHA REFERENCIA DE LOS VALORES Y FUNCIONES DE FECHA Use operaciones aritméticas simples en sentencias SQL para efectuar cálculos sobre fechas en las bases de datos. Fecha + número Fecha número Fecha Fecha Suma un número de días a una fecha, produciendo otra fecha. Resta un número de días a una fecha, produciendo otra fecha. Resta una fecha de otra, produciendo el número de días entre las dos. Ejemplo: Mostrar el nombre, fecha de contratación y fecha de vencimiento del período de prueba (90 días) de los empleados en el departamento 10: LAB27 Acceso y Visualización de Datos 30
31 SQL> SELECT ename, hiredate, hiredate + 90 $REVIEW$ 2 FROM emp 3 WHERE deptno = 10; ENAME HIREDATE $REVIEW$ CLARK 09/06/ /09/1981 KING 17/11/ /02/1982 MILLER 23/01/ /04/ rows selected. FUNCIÓN EJEMPLO RESULTADO ADD_MONTHS ADD_MONTHS (HIREDATE, 6) ADD_MONTHS (HIREDATE, -6) Devuelve la fecha 6 meses después de HIREDATE Devuelve la fecha 6 meses antes de HIREDATE LAST_DAY LAST_DAY (HIREDATE) Devuelve el último día del mes que contiene HIREDATE NEXT_DAY NEXT_DAY (HIREDATE, FRIDAY ) Devuelve la fecha del siguiente viernes después 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. GREATEST(FECHA1, FECHA2...) GREATEST(HIREDATE, SYSDATE) Devuelve la fecha más tardía de una lista de fechas Acceso y Visualización de Datos 31
32 LEAST(FECHA1, FECHA2...) LEAST(HIREDATE, SYSDATE) Devuelve la fecha más temprana de una lista de fechas Ejemplo: ADD_MONTHS Mostrar el nombre, fecha de contratación y 6 meses después de la fecha de contratación de los empleados del departamento 10. LAB28 SQL> SELECT ename, hiredate, ADD_MONTHS (hiredate, 6) $REVIEW$ 2 FROM emp 3 WHERE deptno = 10; ENAME HIREDATE $REVIEW$ CLARK 09/06/ /12/1981 KING 17/11/ /05/1982 MILLER 23/01/ /07/ 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 FROM emp 3 WHERE deptno = 10; ENAME WEEKS CLARK 1098 KING 1075 MILLER rows selected. Acceso y Visualización de Datos 32
33 FORMATEO DE FECHAS ELEMENTO DESCRIPCIÓN DD Día del mes (Ej. 1-31) DY DAY DDSPTH Día de la semana (Ej. FRI) Nombre del día, en mayúscula, con blancos adicionales hasta completar 9 caracteres (Ej. MONDAY) Nombre del día, en mayúscula, deletreado (Ej. TWELFTH) MM Mes (Ej ) MON MONTH Nombre del mes, en mayúsculas, abreviado a 3 letras (Ej. JAN) Nombre del mes, en mayúsculas, con blancos adicionales hasta completar 9 caracteres (Ej. JANUARY) YY Año con dos dígitos (Ej. 91) YYYY Año con cuatro dígitos (Ej. 1991) HH:MI:SS Horas : Minutos : Segundos (Ej. 09:00:00) fm Modo de relleno: lo que siga a este prefijo reemplaza los blancos adicionales, generando un resultado de tamaño variable Formatee la visualización de valores de fecha con la función de conversión TO_CHAR Ejemplo: Muestre las fechas de contratación 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 FROM emp 3 WHERE deptno = 20; Date of Hire of DECEMBER of JANUARY of DECEMBER 1981 Acceso 3 rows y selected. Visualización de Datos 33
34 REFERENCIA DE LOS VALORES Y FUNCIONES DE CARACTERES Combine columnas con caracteres y constantes de carácter para producir una salida más significativa que una simple columna estándar devuelta por SQL-Plus. Ejemplo: concatenación Muestre la combinación de departamento más su localización bajo un solo título 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 Visualización de Datos 34
35 FUNCIÓN EJEMPLO RESULTADO INITCAP UPPER LOWER INITCAP (ENAME) UPPER (ENAME) LOWER (ENAME) SUBSTR SUBSTR (JOB, 1, 5) LENGTH CONCAT LENGTH (ENAME) CONCAT(ENAME,JOB) Devuelve el nombre con su primera letra en mayúscula, y las demás en minúscula (Ej. Smith) Devuelve todos los caracteres de la cadena en mayúscula.(ej. SMITH) Devuelve todos los caracteres de la cadena en minúscula (Ej. smith) Empezando en la posición 1, devuelve 5 caracteres (Ej. MANAG) Devuelve el número de caracteres de una cadena (Ej. 5) Concatena dos cadenas LPAD TRIM INSTR LPAD(sal,5,'*') TRIM('S' FROM 'SSMITH') INSTR('String', 'r') muestra un número de caracteres a la izquierda del valor de la columna *****5000 Borra un carácter de una cadena Ej. MITH Devuelve la posición de un carácter dentro de una cadena Ej: 3 Acceso y Visualización de Datos 35
36 Ejemplo: INITCAP UPPER Muestre el nombre y el cargo de todos los empleados llamados Ward en mayúscula inicial bajo el título NAME: LAB32 SQL> SELECT INITCAP (ename) NAME, job 3 FROM emp 4 WHERE UPPER (ename) = WARD ; NAME JOB Ward SALESMAN 1 row selected. Ejemplo: SUBSTR Mostrar las primeras 5 letras del nombre de departamento y su localización completa. LAB33 SQL> SELECT SUBSTR (dname, 1, 5) dept, loc 2 FROM dept; DEPT LOC ACCOU NEW YORK RESEA DALLAS SALES CHICAGO OPERA BOSTON FINAN LOS ANGELES RESEA BOSTON PERSO TAHITI EDUCA MAUI 8 rows selected. Formatee la visualización de valores numéricos con la función de conversión TO_CHAR Acceso y Visualización de Datos 36
37 Ejemplo: Muestre la comisión de cada empleado del departamento 30 usando signos de peso, comas en las posiciones adecuadas y dos dígitos decimales. LAB34 SQL> SELECT ename EMPLOYEE, TO_CHAR (comm, $9, ) COMMISION 2 FROM EMP; EMPLOYEE COMMISION ALLEN $ WARD $ JONES MARTIN $1, BLAKE SCOTT TURNER $0.00 JAMES 8 rows selected. VISIÓN GENERAL DE ALGUNAS FUNCIONES ADICIONALES FUNCIÓN EJEMPLO RESULTADO GREATEST GREATEST (SAL, COMM) Devuelve el mayor valor entre SAL y COMM LEAST LEAST (SAL, COMM) Devuelve el menor valor entre SAL y COMM Acceso y Visualización de Datos 37
38 REFERENCIA DE ALGUNAS FUNCIONES ADICIONALES Ejemplo: GREATEST Muestre el nombre, el salario mensual y la comisión de todos los vendedores, incluyendo una columna que muestre el mayor valor ya sea de salario o comisión. LAB35 SQL> SELECT ename, sal, NVL (comm, 0), GREATEST (sal, comm) 2 FROM emp 3 WHERE job = SALESMAN ; ENAME SAL NVL (comm, 0) GREATEST (sal, comm) ALLEN WARD JONES MARTIN SCOTT TURNER 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 cálculos 1. Para cada empleado, calcule el número de meses entre hoy y la fecha en que el empleado fué contratado. Ordene su resultado por el número de meses que ha estado empleado. Redondee el número de meses al número entero más próximo. 2. Muestre el nombre de empleado, la compensación total y la fecha de contratación de todos los empleados cuyo salario sea mayor que dos veces su comisión. Formatee la fecha de contratación para que luzca como: 3rd December, Muestre el nombre de empleado en minúsculas y el salario redondeado en cientos para todos los empleados. Acceso y Visualización de Datos 38
39 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 años de todos los empleados de la tabla EMP 6. Seleccionar todos los empleados cuyo tiempo de servicio este entre 5 a 11 años. 7. Seleccionar todos los empleados cuyo nombre contengan la cadena LER, NES o FOR 8. Seleccionar la columna, salario, comisión y calcular la columna total devengado de todos los empleados 9. Seleccionar la columna salario y calcular la columna retención 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 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 número 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 Soñados. 13. Escriba una consulta que muestre el nombre del empleado con la primera letra en mayúscula y las demás en minúscula, y la longitud del nombre del empleado. 14. Muestre el nombre, la fecha de ingreso y el día 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 comisión. Si la comisión del empleado es nula coloque en los registros visualizados la frase 'NO COMISION' Acceso y Visualización de Datos 39
40 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 EJEMPLO RESULTADO AVG COUNT MAX MIN SUM AVG (sal) COUNT (comm) COUNT (*) MAX (sal0029 MIN (sal) SUM (comm) Devuelve el promedio aritmético de SAL. Devuelve el número de valores no nulos de la columna COMM. Devuelve el número de filas no nulas en un grupo. Devuelve el valor máximo de SAL Devuelve el valor mínimo de SAL Devuelve la suma de los valores de COMM Ejemplo: AVG, MAX, SUM Muestre el promedio, el valor máximo y la suma de los salarios anuales de todos los vendedores. LAB36 SQL> SELECT AVG (sal), MAX (sal), SUM (sal) 2 FROM emp 3 WHERE job = SALESMAN ; AVG (SAL) MAX (SAL) SUM (SAL) row selected. Acceso y Visualización de Datos 40
41 Ejemplo: COUNT Muestre el número de filas en la tabla EMP, y el número de empleados con comisión no nula. LAB37 SQL> SELECT COUNT (*) EMPLOYEES, COUNT (comm) COMMISIONABLE 2 FROM emp; EMPLOYEES COMMISIONABLE row selected. REVISANDO SALIDAS DE GRUPO. SINTAXIS DE LA SENTENCIA SELECT SELECT... FROM... WHERE... GROUP BY HAVING ORDER BY Acceso y Visualización de Datos 41
42 Muestre una tabla en subgrupos de filas con la cláusula GROUP BY. Ejemplo: GROUP BY una columna Muestre cada departamento y su número de empleados, agrupados por departamento. LAB38 SQL> SELECT deptno, COUNT (*) 3 FROM emp 4 GROUP BY deptno; DEPTNO COUNT (*) rows selected. Si se selecciona una columna normal y una función 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 Visualización de Datos 42
43 Ejemplo: GROUP BY más de una columna Muestre la cantidad de empleados para cada categoría de cargos en cada departamento. LAB40 SQL> SELECT deptno, job, COUNT (*) 2 FROM emp 3 GROUP BY deptno, job; DEPTNO JOB COUNT (*) CLERK 1 10 MANAGER 1 10 PRESIDENT 1 20 ANALYST 1 20 CLERK 2 30 CLERK 1 30 MANAGER 1 30 SALESMAN 6 8 rows selected. Coloque una condición a la función de grupo mediante la cláusula HAVING. Ejemplo: Muestre el salario anual promedio para todos los tipos de cargo con más de dos empleados. LAB41 SQL> SELECT job, 12 * AVG (sal) 2 FROM emp 3 GROUP BY job 4 HAVING COUNT (*) > 2; JOB 12 * AVG (SAL) CLERK SALESMAN rows selected. Acceso y Visualización de Datos 43
44 La cláusula HAVING puede ser usada en la misma consulta con una cláusula WHERE. Ejemplo: Muestre los departamentos y la nómina de aquellos departamentos cuya nómina exceda de $8.000, excluyendo todo el personal Aseador. Ordene la lista por el monto de la nómina. LAB42 SQL> SELECT deptno, SUM (sal) 2 FROM emp 3 WHERE job!= CLERK 4 GROUP BY deptno 5 HAVING SUM (sal) > ORDER BY SUM (sal); DEPTNO SUM (SAL) row selected. Acceso y Visualización de Datos 44
45 LABORATORIO 2-2 Retorno de filas basadas en grupos de filas Use las tablas EMP para completar los siguientes ejercicios: 1. Cuente todos los registros que no tienen el campo Job nulo. 2. Seleccionar el salario mínimo y máximo de la tabla Emp 3. Seleccionar la fecha de ingreso mínima y máxima de la tabla empleados. 4. Seleccionar el numero de empleados por cada Departamento 5. Seleccionar de cada departamento la suma de los salarios, y el No. De Empleados 6. Contar el numero de empleados del mismo cargo por departamento 7. Contar el numero de 'Analistas y Gerentes de Cada Departamento 8. Seleccione el código 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. 9. Seleccione de la tabla EMP todos los empleados diferentes de 'PRESIDENT' que ganen mas de cuyo y ordenando alfabéticamente por nombre del empleado y descendente por sueldo 10. Muestre solo los nombres de los empleados de cargos 'MANAGER' que ganan mas de ordenar alfabéticamente (tabla EMP). 11. Seleccione información 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. 12. Computar el promedio de los salarios, el valor máximo y mínimo agrupados por departamentos donde el cargo sea vendedor. 13. Sumar las comisiones de los empleados por departamento y seleccionar el departamento con la sumatoria mayor que cero ordenando descendentemente. Acceso y Visualización de Datos 45
46 OBTENIENDO DATOS DE MULTIPLES TABLAS. Es la unión de dos tablas a través de los campos que la relacionan, llave primaria llave foránea respectivamente EMP EMPNO ENAME DEPTNO KING BLAKE MILLER DEPT DEPTNO DNAME LOC ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON EMPNO DEPTNO LOC NEW YORK CHICAGO NEW YORK DALLAS CHICAGO CHICAGO JOIN: use un JOIN en una consulta de datos de más de una tabla SELECT table1.column, table2.column FROMtable1, table2 WHERE table1.column1 = table2.column2; CARACTERÍSTICAS DEL JOIN Las tablas a ser unidad (JOINED) se especifican en la cláusula FROM En la cláusula WHERE se especifica como unir las tablas. Las columnas que tienen nombres iguales en las tablas especificadas en la cláusula FROM deben ser identificadas utilizando NOMBRE_TABLA.NOMBRE_COLUMNA Si las columnas no tienen homónimos en las tablas, no es necesario especificar el nombre de la tabla en las cláusulas 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 Acceso y Visualización de Datos 46
47 JOIN Las columnas especificadas en la condición 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 unión 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 DEPT EMPNO ENAME DEPTNO KING BLAKE CLARK JONES MARTIN ALLEN TURNER JAMES WARD FORD SMITH rows selected. DEPTNO DNAME LOC 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 Visualización de Datos 47
48 Ejemplo: Seleccionar número del empleado, nombre del departamento y localización. 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 más entre paréntesis (+), 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 estaría esa coincidencia. Sintaxis SELECT table1.column, table2.column FROMtable1, table2 WHERE table1.column1(+) = table2.column2; Ejemplo: Lista la localización 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 Visualización de Datos 48
49 Ejemplo: Liste el nombre y la localización del departamento de todos los CLERK, incluya una lista de todos los departamentos que actualmente no tengan ningún 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); Características del OUTER JOIN Si un registro de una de las tablas de un JOIN no satisface la condición del JOIN, normalmente ese registro no aparece en el resultado. El OUTER JOIN, permite que un registro con estas características aparezcan en el resultado. el OUTER JOIN a través SQL proporciona registros temporales para seleccionar los datos, los datos de la tablas. Se coloca un (+) después de la combinación de tabla/columna (en la cláusula WHERE) sobre la que se necesita los registros falsos para realizar el OUTER JOIN (WHERE EMP.DEPTNO(+)=DEPT.DEPTNO). Si se requiere múltiples columnas para dar la condición 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 Visualización de Datos 49
50 Ejemplo: Liste el número, 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; Características 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 información. 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 mayoría 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 Visualización de Datos 50
51 OPERADORES DE CONJUNTO Los operadores de conjunto combinan dos o más tablas para obtener resultado. UNION INTERSECCIÓN MENOS Los registros del primer query mas registros del segundo query se eliminan duplicados Los registros que las dos tablas tienen en común Registros únicos de la primera tabla EL OPERADOR UNION El operador UNION retorna todos los registros distintos seleccionados través de múltiples queries. Sintaxis SELECT FROMtabla WHERE UNION SELECT FROMtabla WHERE columna condiciones ciertas columna condiciones ciertas Ejemplo: Quien gana más de $2000 en todos los departamentos. SQL> SELECT ENAME,SAL 2 FROM ACCOUNTING 3 WHERE SAL > UNION 5 SELECT ENAME,SAL 6 FROM RESEARCH 7 WHERE SAL > UNION 9 SELECT ENAME,SAL 10 FROM SALES 11 WHERE SAL >2000 Acceso y Visualización de Datos 51
52 EL OPERADOR INTERSECCIÓN (INTERSECT) El operador INTERSECT retorna valores comunes de múltiples 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 también seleccionados por el segundo query SELECT columna FROM tabla WHERE condiciones ciertas MINUS SELECT columna FROMtabla WHERE condiciones ciertas Ejemplo: Liste la información de los empleados que tienen cargos que están en el departamento de ACCOUNTING pero que no estén en el departamento de ventas (SALES). Acceso y Visualización de Datos 52
53 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 múltiples 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 DEPTNO DNAME KING 10 ACCOUNTING BLAKE 30 SALES CLARK 10 ACCOUNTING JONES 20 RESEARCH MARTIN 30 SALES 2) Crear un listado de todos los cargos cuya localización 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 localización de todos los empleados que ganan una comisión ENAME DNAME LOC ALLEN SALES CHICAGO WARD SALES CHICAGO MARTIN SALES 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 Visualización de Datos 53
54 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 JOB DEPTNO DNAME SMITH CLERK 20 RESEARCH ADAMS CLERK 20 RESEARCH FORD ANALYST 20 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 EMPNO EMGR MGR SCOTT 7788 JONES 7566 FORD 7902 JONES 7566 ALLEN 7499 BLAKE 7698 JAMES 7900 BLAKE Modificar el punto anterior incluyendo los empleados que no tienen jefe ENAME EMPNO EMGR MGR SCOTT 7788 JONES 7566 FORD 7902 JONES 7566 ALLEN 7499 BLAKE 7698 JAMES 7900 BLAKE 7698 KING 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 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 JOB DNAME SAL GRADE MILLER CLERK ACCOUNTING CLARK MANAGER ACCOUNTING KING PRESIDENT ACCOUNTING Acceso y Visualización de Datos 54
55 SMITH CLERK RESEARCH Cree una consulta que muestre el nombre del empleado y la fecha de ingreso de los empleados que ingresaron después que BLAKE ENAME KING CLARK MARTIN TURNER HIREDATE 17-NOV JUN SEP SEP 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 Visualización de Datos 55
56 VISIÓN GENERAL DE LA CREACIÓN DE TABLAS El nombre de una tabla debe seguir las reglas estándar para los nombres de cualquier objeto de una base de datos ORACLE. Requerimientos de la sentencia CREATE TABLE El nombre de la tabla. El nombre de la columna. El tipo de datos de la columna. Reglas para los nombres Debe tener entre 1 y 30 caracteres y el primer carácter debe ser alfabético. Debe contener solo los caracteres: o A-Z, a-z, 0-9, _ (guión bajo) o $ y #. Son legales, pero su uso se está descontinuando. 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 rápida: Los nombres de tablas son los mismos si se escriben en mayúsculas o minúsculas; ejemplo: EMP = Emp. Los nombres de columnas deben adherirse a las tres primeras reglas antes descritas. Creación de Tablas y Vistas 56
57 CREACIÓN DE TABLAS Tipo de datos Descripción CHAR(tamaño) Almacena datos de tipo carácter de longitud fija. Con un tamaño máximo de 2000 bytes VARCHAR2(Tamaño) Almacena datos de tipo carácter de longitud variable, con un tamaño máximo de VARCHAR(Tamaño) Actualmente es igual al Char LONG Almacena datos de tipo carácter de longitud variable hasta 2 gigabytes NUMBER(L,D) Almacena datos numéricos siendo L la longitud y D el numero de dígitos decimales INTEGER Numérico sin decimal. Por defecto 38. DATE Almacena información relacionada con el tiempo incluyendo fechas, horas, minutos y segundos. (Fechas hasta el 31 de diciembre de 4712) RAW Dato en binario puro (imágenes y sonido) con un ancho máximo de 2000 bytes. LONG RAW Dato en binario puro (imágenes y sonido) mas grande que el RAW CLOB Almacena objetos de caracteres grandes de un único byte BLOB Almacena objetos binarios de gran tamaño, siendo el tamaño máximo 4GB (gigabytes). BFILE Almacena punteros de archivo a LOB administrados por sistemas de archivos externos a la base de datos La Versión 8 de ORACLE ofrece un conjunto mejorado de tipos de datos para manejar objetos de gran tamaño, así como un mecanismo más potente para almacenar datos números. Los objetos de gran tamaño 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 condición que debe ser verdadera. Establece e impone una relación 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 diseñador de la aplicación restringir el rango de valores aceptables que se pueden almacenar en una tabla. Creación de Tablas y Vistas 57
58 Sintaxis abreviada CREATE TABLE [user.] nombre_tabla ( { nombre_columna tipo restricción } [, { nombre_columna tipo restricción } ]... ) 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 cláusula 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> CREATE TABLE hdates 2 AS SELECT empno, ename, hiredate 3 FROM emp 4 WHERE empno = 10; Table created. Creación de Tablas y Vistas 58
59 Ejemplo: LAB51 SQL> CREATE TABLE empty_like_emp 5 AS SELECT * 6 FROM emp 7 WHERE 1 = 2; Table created. vcb MODIFICACIÓN DE TABLAS Use la sentencia ALTER TABLE para modificar la estructura de una tabla. Se pueden hacer dos operaciones: Adicionar columnas o restricciones Modificar la definición de las columnas (restricciones, NOT NULL y demás) Sintaxis Adicionar ALTER TABLE nombre_tabla ADD ( { nombre_columna tipo restricción } [, { nombre_columna tipo restricción } ]... ) Ejemplo: LAB52 SQL> ALTER TABLE hdates 2 ADD (manager NUMBER(4) ); Table altered. Sintaxis Modificar ALTER TABLE nombre_tabla MODIFY ( { nombre_columna tipo restricción } [, { nombre_columna tipo restricción } ]... ) Creación de Tablas y Vistas 59
60 Ejemplo: Incrementar el tamaño de la columna ename de 10 a 18. LAB53 SQL> ALTER TABLE hdates 2 MODIFY (ename CHAR(18) ); Sintaxis Table altered. para Borrar la Columna de una Tabla Use la cláusula 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 Eliminación 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: Creación de Tablas y Vistas 60
61 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. Creación de Tablas y Vistas 61
62 VISIÓN GENERAL DE LAS VISTAS EMP Table EMPVU10 View EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO KING PRESIDENT 17-NOV CLARK BLAKE MANAGER JUN MAY MILLER CLARK MANAGER CLERK JAN JUN JONES MANAGER APR SCOTT MARTIN SALESMAN ANALYST DEC SEP EMPNO ENAME JOB KING PRESIDENT 7782 CLARK MANAGER 7934 MILLER CLERK ADAMS ALLEN SALESMAN CLERK JAN FEB SMITH TURNER SALESMAN CLERK DEC SEP FORD JAMES CLERK ANALYST DEC BLAKE WARD SALESMAN MANAGER MAY FEB MARTIN FORD ANALYST SALESMAN SEP DEC ALLEN SMITH CLERK SALESMAN FEB DEC TURNER SCOTT ANALYST SALESMAN SEP DEC JAMES ADAMS CLERK DEC JAN Se puede representar lógicamente una o más tablas como una vista. Una vista no contiene datos. Todos los datos se derivan de las tablas subyacentes. Ventajas de las vistas Seguridad Conveniencia Perspectiva Creación de Tablas y Vistas 62
63 CREACIÓN DE VISTAS La creación de vistas es similar a la creación de tablas usando la cláusula 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 cláusula order by La cláusula WHIT CHECK OPTION se utiliza para al ingresar registros en una tabla se valide la cláusula where. La cláusula 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 número, el nombre y el cargo de todos los empleados del departamento 10: LAB56 SQL> CREATE VIEW empvu10 2 AS SELECT empno, ename, job 3 FROM emp 4 WHERE deptno = 10; View created. Creación de Tablas y Vistas 63
64 SQL> SELECT * FROM empvu10; EMPNO ENAME JOB CLARK MANAGER 7839 KING PRESIDENT 7934 MILLER CLERK Sintaxis Eliminación 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> CREATE VIEW empvu11 (id_number, employee, title) 2 AS SELECT empno, ename, job 3 FROM emp 4 WHERE deptno = 10; View created. SQL> SELECT * FROM empvu11; ID_NUMBER EMPLOYEE TITLE CLARK MANAGER 7839 KING PRESIDENT 7934 MILLER CLERK 3 rows selected. Creación de Tablas y Vistas 64
65 Ejemplo: alias alternativos en las vistas. LAB58 SQL> CREATE VIEW salvu10 2 AS SELECT empno, ename, sal * 12 annual_salary 3 FROM emp 4 WHERE deptno = 10; View created. SQL> SELECT * FROM salvu10; Asegure que las inserciones y actualizaciones realizadas sobre una vista, no afectarán los datos que la vista no sea capaz de acceder, mediante la utilización de la cláusula WITH CHECK OPTION. EMP_NO ENAME ANNUAL_SALARY CLARK KING MILLER rows selected. Sintaxis Ejemplo: CREATE VIEW nombre_vista [ (alias 1, alias2, ) ] AS consulta [ WITH CHECK OPTION [ CONSTRAINT restricción ] ] Ejemplo: Cree una vista solo con los datos de los empleados del departamento No. 20. LAB59 SQL> CREATE VIEW empvu20 2 AS SELECT * FROM emp 3 WHERE deptno = 20 4 WITH CHECK OPTION; View created. Ejemplo: Actualizando el departamento a 30 para el código LAB60 Creación de Tablas y Vistas 65
66 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 estándar que normalmente se requieren para usar objetos de la base de datos. Privilegios del sistema DBA todos los privilegios 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 Creación de Tablas y Vistas 66
67 UN VISTAZO A LA CONCESIÓN 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 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. Creación de Tablas y Vistas 67
68 Otorgar privilegios de consulta (SELECT) al usuario Jones sobre la tabla DEPT, con la habilidad de otorgar los mismos privilegios a otros: SQL> GRANT SELECT 2 ON dept 3 TO jones 4 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. VISIÓN GENERAL DE LOS SINÓNIMOS Los sinónimos se pueden crear por razones de seguridad y conveniencia. Niveles de los sinónimos Público Privado Ventajas de los sinónimos Referencia a tablas y vistas sin especificar el propietario o la base de datos. Flexibilidad al personalizar una convención de nombres más significativa. Creación de Tablas y Vistas 68
69 CREACIÓN DE SINÓNIMOS Sintaxis Sinónimo privado CREATE SYNONYM nombre_sinonimo FOR nombre_tabla / nombre_vista Ejemplo: Crear el sinónimo dates para la tabla HDATES del usuario Scott. LAB61 SQL> CREATE SYNONYM dates 2 FOR scott.hdates; Synonym created. SQL> SELECT * FROM dates; EMPNO ENAME HIREDATE SMITH 17-DEC ALLEN 20-FEB WARD 22-FEB JONES 02-APR MARTIN 28-SEP BLAKE 31-MAY CLARK 09-JUN SCOTT 09-DEC KING 17-NOV TURNER 08-SEP ADAMS 12-JAN JAMES 03-DEC FORD 03-DEC MILLER 23-JAN rows selected. Creación de Tablas y Vistas 69
70 LABORATORIO Crear un duplicado de la tabla EMP. Llámela EMPTEST. 2. Adicione una nueva columna llamada SEX a la tabla EMPTEST de tipo carácter y de tamaño 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 tamaño 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 contratación de los empleados. 7. Intente crear una consulta que muestre el nombre y el salario de los empleados de la vista EMP_NO_MONEY. Cuál fue el resultado obtenido? 8. Cree una vista llamada EMP_DEPTNO_TEN, que incluya solo el nombre, el número de departamento y el número de empleado de la tabla EMP. Los empleados que se pueden ver a través de esta vista son los pertenecientes al departamento número 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. Creación de Tablas y Vistas 70
71 VISIÓN GENERAL SOBRE LOS ÍNDICES Los índices son estructuras opcionales, asociadas con tablas, que se usan para agilizar la ejecución de consultas y/o garantizar unicidad. El RDBMS de ORACLE accede a los datos en las tablas de dos maneras: 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 extracción frecuente de menos del 10 15% de las filas en una tabla grande y se hace referencia frecuente a las columnas en la cláusula WHERE. Características de las columnas para indexado Las columnas se usan frecuentemente en cláusulas 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 ejecución de consultas, pero disminuyen las prestaciones en cuanto a velocidad de mantenimiento de las tablas. Nota rápida: ORACLE actualiza los índices automáticamente. No tienen impacto en la sintaxis de SQL. CREACIÓN DE ÍNDICES Sintaxis Índice simple CREATE INDEX nombre_indice ON TABLE nombre_tabla (nombre_columna [, nombre_columna ]... ) Creación de Índices y Generadores de Secuencias 71
72 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 FROM emp 3 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 FROM user_indexes 3 WHERE table_name = EMP ; INDEX_NAME I_EMP_ENAME 1 rows selected. Sintaxis Eliminación de índices DROP INDEX nombre_indice Creación de Índices y Generadores de Secuencias 72
73 Ejemplo: LAB66 SQL> DROP INDEX i_emp_ename; Index dropped. Cree índices únicos sobre una tabla para asegurar que nunca dos filas tendrán 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 desempeño, en consultas, así como garantizar valores únicos para los números 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 creación del índice. Se pueden incluir hasta un máximo 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. Creación de Índices y Generadores de Secuencias 73
74 CREACIÓN DE GENERADORES DE SECUENCIA Cree secuenciadores con el fin de generar enteros únicos y consecutivos para múltiples usos. Los secuenciadores se pueden utilizar para generar llaves primarias de forma automática. 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. Creación de Índices y Generadores de Secuencias 74
75 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 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 Crear un índice sobre la tabla EMP llamado I_EMP_EMPNO que no permita números de empleado duplicados. Usted probará este índice en el laboratorio de la próxima sección. 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 próxima sección. 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 próximo valor de secuencia disponible para el secuenciador S_DEPT_DEPTNO. 5. Repita el ejercicio 4. Creación de Índices y Generadores de Secuencias 75
76 ACTUALIZACION DE DATOS EN TABLAS INSERCIÓN DE FILAS Inserte filas en una tabla con la instrucción INSERT. Sintaxis INSERT INTO nombre_tabla [ (columna1, columna2, ) ] VALUES (value1, value2,...) Ejemplo: Mostrar la estructura de la tabla DEPT: SQL> DESCRIBE dept; Name NULL? Type DEPTNO NOT NULL NUMBER(2) DNAME CHAR(14) LOC CHAR(13) Inserte el departamento de Finanzas con código 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
77 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 parámetros: 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. ACTUALIZACIÓN DE FILAS Cambie los datos en una tabla específica con la sentencia UPDATE. Sintaxis UPDATE nombre_tabla SET columna1 = valor, columna2 = valor [ WHERE condición ] Ejemplo: Mostrar la estructura de la tabla EMP SQL> DESCRIBE emp; Name NULL? Type EMPNO NOT NULL NUMBER(4) ENAME CHAR(10) JOB CHAR(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7, 2) COMM NUMBER(7, 2) DEPTNO NOT NULL NUMBER(2) Formato de reportes 77
78 Cambiar al empleado 7566 al cargo de vendedor en el departamento 30: LAB77 SQL> UPDATE emp 2 SET job = SALESMAN, deptno = 30 3 WHERE empno = 7566; 1 row updated. Actualizar varias columnas en una sola fila: LAB78 SQL> UPDATE emp 2 SET job = SALESMAN, sal = sal * 1.05, deptno = 30 3 WHERE empno = 7788; 1 row updated. Actualización de múltiples filas: Cambiar el cargo SALESMAN por SALES. LAB79 SQL> UPDATE emp 2 SET job = SALES 3 WHERE job = SALESMAN ; 7 rows updated. SQL> SELECT ename, job, deptno 2 FROM emp 3 WHERE job = SALES ; ENAME JOB DEPTNO ALLEN SALES 30 WARD SALES 30 JONES SALES 30 MARTIN SALES 30 SCOTT SALES 30 TURNER SALES 30 EMMETT SALES 30 7 rows selected. Formato de reportes 78
79 Devolver el cargo a su valor original SALESMAN LAB80 SQL> UPDATE emp 4 SET job = SALESMAN 5 WHERE job = SALES ; 7 rows updated. ELIMINACIÓN DE FILAS Elimine filas de una tabla específica usando la sentencia DELETE. Sintaxis DELETE FROM nombre_tabla [ WHERE condición ] Ejemplo: Borrar el empleado número 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 cláusula WHERE en el ejemplo anterior? Formato de reportes 79
80 UN VISTAZO AL PROCESAMIENTO DE TRANSACCIONES Una transacción se define como todos los cambios realizados a una base de datos entre COMMIT sucesivos. Transacción INSERT UPDATE INSERT DELETE COMMIT SAVEPOINT A SAVEPOINT B ROLLBACK TO B ROLLBACK TO A ROLLBACK Formato de reportes 80
81 PROCESAMIENTO DE TRANSACCIONES La sentencia COMMIT hace permanentes todos los cambios realizados en la transacción actual. Tipos de COMMIT o Explícito o Implícito 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 SET job = SALESMAN, deptno = 30 3 WHERE ename = JONES ; 1 row updated. Formato de reportes 81
82 Todos los empleados de la compañía que se llaman JONES fueron transferidos al grupo de vendedores. Revierta la operación y vuelva a realizar el traslado, utilizando el número de empleado. SQL> ROLLBACK; Rollback complete. SQL> UPDATE emp 2 SET job = SALESMAN, deptno = 30 3 WHERE empno = 7566; 1 row updated. Marque un punto en una transacción hasta el cual podría hacer un ROLLBACK sin necesidad de cancelar toda la transacción, utilizando la sentencia SAVEPOINT. Ejemplo: Inserte un nuevo departamento en la tabla DEPT y cree un punto de salva (SAVEPOINT) para la transacción: 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 porción de la transacción (hasta un punto de salva determinado): Formato de reportes 82
83 Ejemplo: Inserte un nuevo departamento en la tabla DEPT y cree un punto de salva (SAVEPOINT) para la transacción: LAB85 SQL> INSERT INTO dept 2 VALUES (80, EDUCATION, MAUI ); 1 row created. SQL> SAVEPOINT B; Savepoint created. Cambie la ubicación del departamento 80 hacia Kauai: LAB86 SQL> UPDATE dept 2 SET loc = KAUAI 3 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
84 LABORATORIO 6-1 Inserción, actualización, eliminación de datos y confirmación de transacciones. 1. Insértese usted mismo como un empleado en la tabla EMP. 2. Confirme la inserción. 3. Inserte otra fila en la tabla EMP pidiendo el nombre del empleado, el número del departamento, el número de empleado y la fecha de contratación. 4. Cree un punto de salva llamado SP1. 5. Adicione un nuevo departamento en la tabla DEPT con número 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, dándose usted mismo un aumento de $1.000 por mes. 9. Bórrese 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, número de departamento y número de empleado de la tabla EMP. Los únicos empleados que estarán visibles a través de esta vista son los que se encuentran en el departamento 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 número de empleado duplicado en la tabla EMP para probar el índice creado en la sección anterior. 14. Inserte dos nuevos departamentos usando la secuencia S_DEPT_DEPTNO, la cual se creó en la sección anterior. 15. Escriba una consulta para mostrar los nuevos departamentos insertados. Formato de reportes 84
Restricción y Clasificación de los Datos. Copyright Oracle Corporation, All rights reserved.
2 Restricción y Clasificación de los Datos Copyright Oracle Corporation, 1998. All rights reserved. Objetivos Al completar esta lección, debería a ser capaz de hacer lo siguiente: Limitar los registros
Escritura Básica de Sentencias SQL. Copyright Oracle Corporation, All rights reserved.
1 Escritura Básica de Sentencias SQL Copyright Oracle Corporation, 1998. All rights reserved. Objetivos Al completar esta lección, debería a ser capaz de hacer lo siguiente: Enumerar las posibilidades
Visualización de Datos a partir de Varias Tablas. Copyright Oracle Corporation, All rights reserved.
4 Visualización de Datos a partir de Varias Tablas Copyright Oracle Corporation, 1998. All rights reserved. Objetivos Al completar esta lección, debería ser capaz de hacer lo siguiente: Escribir sentencias
2. Distinguir entre los comandos SQL*Plus y las sentencias SQL. 3. Consultar la estructura de una tabla, por ejemplo emp.
BASES DE DATOS 2 4 o de Enxe~nería Informática (2009-2010) SQL de Oracle (1) v 1.0 -------------------------------------------------------------------------- Ejercicios: 1. Conéctate a SQL*Plus. 2. Distinguir
Informática Básica Práctica Tema 3 Ejercicios de SQL
Informática Básica Práctica Tema 3 Ejercicios de SQL Curso 2010-2011 1. Descripción del modelo de datos El modelo de datos que se usará para las consultas está reflejado en el siguiente modelo E-R. EMPNO
Unidad. Lenguaje SQL. (Structured Query Language)
Unidad Lenguaje SQL (Structured Query Language) 1 SQL Definición DDL Consulta y Actualización DML Create Alter Drop Select Insert Update Delete 2 SQL DDL CREATE TABLE nombre_tabla (nombre_columna tipo_dato/dominio
Funciones a Nivel de Fila. Copyright Oracle Corporation, All rights reserved.
3 Funciones a Nivel de Fila Copyright Oracle Corporation, 1998. All rights reserved. Objetivos Al completar esta lección, debería ser capaz de hacer lo siguiente: Explicar los diversos tipos de funciones
Bases de Datos Ejercicios de SQL
Bases de Datos Ejercicios de SQL 1. Descripción del modelo de datos El modelo de datos que se usará para las consultas está reflejado en el siguiente modelo E-R. EMPNO ENAME JOB DEPTNO DNAME DEPT (0,N)
Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos:
CONTENIDO. 1. INTRODUCCIÓN 2. TIPOS DE SENTENCIAS SQL 3. TIPOS DE DATOS 4. SQL PLUS 5. CONSULTAS DE DATOS 6. RESTRICCIÓN Y CLASIFICACIÓN DE LOS DATOS 7. FUNCIONES A NIVEL DE FILA 8. VISUALIZACIÓN DE DATOS
Bases de Datos I Práctica 1 Ejercicios de SQL
Bases de Datos I Práctica 1 Ejercicios de SQL Curso 2005-2006 1. Descripción del modelo de datos El modelo de datos que se usará para las consultas está reflejado en el siguiente modelo E-R. Transformado
Tutorial de SQL - El comando SELECT
Tutorial de SQL - El comando SELECT El objetivo de este documento es guiar su aprendizaje del comando SELECT de SQL. La idea es que, estando conectado a sql*plus, lea este material mientras ejercita simultáneamente
Creación de Vistas. Copyright Oracle Corporation, 1998. All rights reserved.
12 Creación de Vistas Copyright Oracle Corporation, 1998. All rights reserved. Objetivos Al completar esta lección, debería a ser capaz de hacer lo siguiente: Describir una Vista Crear una vista Recupera
Tema 4. Manipulación de datos con SQL
Tema 4 Manipulación de datos con SQL Índice Tema 4 1. Inserción de registros. Consultas de datos anexados. 2. Modificación de registros. Consultas de actualización. 3. Borrado de registros. Consultas de
LENGUAJE DE MANIPULACIÓN DE DATOS (DML) CONSULTA DE DATOS
PREVIO 5 LENGUAJE DE MANIPULACIÓN DE DATOS (DML) CONSULTA DE DATOS INTRODUCCIÓN SQL permite realizar consultas con condiciones de búsqueda, de tal forma que los resultados son precisamente aquellos que
Ejercicios SQL - Select TutorialesNET Versión 1.0 - Revisión 1 25 de julio de 2015
Ejercicios SQL - Select TutorialesNET Versión 1.0 - Revisión 1 25 de julio de 2015 Manoel Antón Folgueira Hernández [email protected] http://tutorialesnet.net Página 1 de 13 Índice 1. Introducción
Escribiendo sentencias básicas de SQL
Escribiendo sentencias básicas de SQL Escribiendo Querys básicos 2-12 M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-1 Objetivos Al terminar esta lección, deberá ser capaz de hacer lo siguiente
Ampliación de Bases de Datos Práctica 1: El lenguaje PL/SQL de Oracle Sesión 1: Introducción al PL/SQL
Ampliación de Bases de Datos Práctica 1: El lenguaje PL/SQL de Oracle Sesión 1: Introducción al PL/SQL Dado el siguiente esquema relacional y su definición en Oracle que se encuentra definida en vuestro
Constraints (Restricciones) Copyright Oracle Corporation, 1998. All rights reserved.
11 Constraints (Restricciones) Copyright Oracle Corporation, 1998. All rights reserved. Objetivos Al completar esta lección, debería a ser capaz de hacer lo siguiente: Describir constraints Crear y mantener
Creación y Gestión de Tablas. Copyright Oracle Corporation, 1998. All rights reserved.
10 Creación y Gestión de Tablas Copyright Oracle Corporation, 1998. All rights reserved. Objetivos Al completar esta lección, debería a ser capaz de hacer lo siguiente: Describir los principales objetos
MATERIAL INTRODUCTORIO ORACLE 11G
MATERIAL INTRODUCTORIO ORACLE 11G Esp. JONATHAN GUERRERO ASTAIZA Capacidades de una sentencia SELECT La sentencia SELECT recibe información a partir de una base de datos. Con la sentencia SELECT usted
Modulo I: Introducción Gestores de Bases De Datos
Modulo I: Introducción Gestores de Bases De Datos El SQL El SQL (Lenguaje de Consulta Estructurado Structure Query Language), es un lenguaje de consulta estructurado establecido claramente como el lenguaje
ÍNDICE INTRODUCCIÓN...17
ÍNDICE INTRODUCCIÓN...17 CAPÍTULO 1. ORACLE 11g Y EL GRID COMPUTING...19 1.1 CONCEPTO DE GRID COMPUTING...19 1.2 ORACLE GRID COMPUTING...20 1.2.1 Almacenamiento eficiente de la información...21 1.2.2 Utilización
ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1
ÍNDICE Introducción... XI Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1 Características y novedades de Access 2010... 1 Comienzo rápido del trabajo y seguimiento de la información...
Subconsultas Multi-Columna. Copyright Oracle Corporation, All rights reserved.
7 Subconsultas Multi-Columna Copyright Oracle Corporation, 1997. All rights reserved. Objetivos Al completar esta lección, debería a ser capaz de hacer lo siguiente: Escribir una subconsulta multi-columna
Diseño de bases de datos Práctica-1 Definición de datos
Departamento de Lenguajes y Sistemas Informáticos Avda Reina Mercedes s/n. 41012 Sevilla Tlf/Fax 954 557 139 E-mail [email protected] www.lsi.us.es E.T.S. Ingeniería Informática Diseño de bases de datos Práctica-1
Practicas de BB. DD. ORACLE
1 Practicas de BB. DD. ORACLE Oracle Es un sistema gestor de Bases de datos relacionales, y utiliza, para consultar los datos que mantiene, el lenguaje SQL. Este lenguaje es el que se analiza a continuación,
LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)
Qué es una base de datos? Una base de datos (cuya abreviatura es BD) es una entidad en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible. Diferentes programas y
Manipulación de Datos. Copyright Oracle Corporation, 1998. All rights reserved.
9 Manipulación de Datos Copyright Oracle Corporation, 1998. All rights reserved. Objetivos Al completar esta lección, debería a ser capaz de hacer lo siguiente: Describir cada sentencia DML Insertar filas
SQL Los fundamentos del lenguaje
Introducción 1. Un poco de historia 11 2. Las normas SQL 12 3. Descripción rápida del modelo relacional 14 3.1 Principales conceptos del modelo relacional 15 3.2 Principales reglas 16 4. Los operadores
Grupo Kybele, http://www.kybele.es/ Pág. 1
Bases de Datos APUNTES PARA EL MANEJO DE SQL*Plus Para cualquier consulta a la sintaxis de las órdenes SQL o SQL*PLUS puede consultarse cualquier libro de ORACLE, o los manuales gratuitos en pdf o en línea
Subconsultas. Copyright Oracle Corporation, 1997. All rights reserved.
6 Subconsultas Copyright Oracle Corporation, 1997. All rights reserved. Objetivos Al completar esta lección, debería a ser capaz de hacer lo siguiente: Describir los tipos de problemas que las subconsultas
Insertar Datos en Tablas
Insertar Datos en Tablas La instrucción básica para insertar valores a los atributos (columnas) de una tabla es la instrucción INSERT INTO Insertar una sola tupla Para insertar una tupla en la tabla, se
Funciones aritméticas.
FUNCIONES Para utilizar alguna de las funciones que a continuación vamos a describir, Oracle proporciona una tabla de trabajo que se denomina DUAL. La sintaxis de una función es: Funciones aritméticas.
Características del lenguaje SQL
Lenguaje SQL Características del lenguaje SQL Es el lenguaje estándar para realizar operaciones en bases de datos relacionales. Instrucciones: SELECT Consulta. Su implementación está basada en álgebra
Tema 5. Lenguaje de Definición de Datos
Tema 5 Lenguaje de Definición de Datos Índice Tema 5 1. Creación de tablas. Restricciones 2. Consultas de creación de tablas. 3. Modificación de la estructura de una tabla. 4. Borrado de tablas. 5. Creación
Tema 7. Elaboración de consultas básicas de selección. Lenguajes de bases de datos. SQL básico 15/12/2011
Lenguajes de bases de datos Tema 7 Elaboración de consultas básicas de selección En esta unidad se abordan cuestiones que, aunque están definidas por el estándar ANSI/ISO SQL, no están asumidas al 100%
CAPITULO II Base de datos. Tipos de base de datos. Comandos y consultas. Tipos de bases de datos Comandos y consultas O B J E T I V O S
BASE DE DATOS TIPOS DE BASES DE DATOS CONSULTAS Y SUB CONSULTAS EN SQL SERVER 2005 2 Tipos de bases de Comandos y consultas C O N T E N I D O 1. El Lenguaje de Gestión de Datos 2. Creación de una tabla
Oracle Database: Introducción a SQL
Oracle University Contact Us: 001-855-844-3881 Oracle Database: Introducción a SQL Duration: 5 Days What you will learn La comprensión de los conceptos básicos de las bases de datos relacionales garantiza
Introducción al lenguaje SQL
Introducción a SQL Introducción al lenguaje SQL Contenidos Introducción al lenguaje SQL Sentencia SELECT: lista SELECT, FROM, WHERE CREATE TABLE INSERT, DELETE y UPDATE Bibliografía Beaulieu, A.: Aprende
VISUALIZACIÓN DE DATOS A PARTIR DE VARIAS TABLAS
VISUALIZACIÓN DE DATOS A PARTIR DE VARIAS TABLAS Puede que al realizar una consulta necesitemos los datos producidos por otra consulta. Para realizar esto se pueden anidar varias sentencias select con
Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus
Iniciando con Oracle Índice de contenido Ingresando a Oracle...1 Cambiando Su Contraseña...1 Ingresando un Comando SQL en SQL*Plus...2 Saliendo de SQL*Plus...2 Consiguiendo Ayuda...2 Creación de una Tabla...3
ÍNDICE. Introducción... XVII. Capítulo 1. Oracle 10g y el Grid Computing... 1
ÍNDICE Introducción... XVII Capítulo 1. Oracle 10g y el Grid Computing... 1 Necesidad del Grid Computing... 1 Concepto de Grid Computing... 4 Oracle Grid Computing... 5 Almacenamiento eficiente de información...
3. El catálogo 26. Laboratorio de Bases de Datos
ÍNDICE Continuación SQL Índice 1. Continuación del SQL como DML (Lenguaje de Manipulación de Datos) 1 1.1. Inserción de datos................................. 1 1.2. Borrado de datos..................................
Sistema Gestor de Bases de Datos Relacionales (SGBDR), que maneja distintos tipos de datos:
Bases de Datos Introducción a ORACLE Sistema Gestor de Bases de Datos Relacionales (SGBDR), que maneja distintos tipos de datos: o Tradicionales como INTEGER, VARCHAR2, DATE,..., etc. o Nuevos y complejos:
MANUAL BÁSICO DEL LENGUAJE SQL
MANUAL BÁSICO DEL LENGUAJE SQL INTRODUCCIÓN A continuación se presentan lo que son comandos DLL y DML, las clausulas, lo operadores (lógicos y de comparación), funciones de agregado, consultas, tipos de
SQL SERVER SQL Server 2005 permite tres tipos de operaciones con conjuntos: UNION, disponible en todas las versiones de SQL Server.
SQL SERVER 2005 Operaciones con Conjuntos SQL Server 2005 permite tres tipos de operaciones con conjuntos: UNION, disponible en todas las versiones de SQL Server. EXCEPT, nuevo en SQL Server 2005. INTERSECT,
1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón
1. Lenguaje de Definición de Datos 2. Lenguaje de Manipulación de Datos M. C. Gustavo Alfonso Gutiérrez Carreón Los 'sistemas de gestión de bases de datos (en inglés database management system, abreviado
EL ENTORNO DE TRABAJO SQL ORACLE
PREVIO 2 EL ENTORNO DE TRABAJO SQL ORACLE Y LENGUAJE DE DEFINICIÓN DE DATOS DDL) INTRODUCCIÓN A ORACLE Oracle10g es de las últimas versiones de esté manejador de base de datos, incorpora la tecnología
INTRODUCCIÓN A SQL *PLUS. Diseño de Bases de Datos y Seguridad en la Información
INTRODUCCIÓN A SQL *PLUS Diseño de Bases de Datos y Seguridad en la Información Bibliografía Complementaria Gennick, J. Oracle SQL*Plus: The Definitive Guide (2ª edición), O Reilly, 2004. SQL*Plus User's
LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc).
LENGUAJE SQL Un manejador de base de datos debe de contener lenguajes que permitan definir el modelos de los datos, este mismo es que permite crear la estructura de la base de datos. Lenguaje de Definicion
Boletín de Problemas de la Asignatura II18 Bases de Datos. Ingeniería Informática Universitat Jaume I
Boletín de Problemas de la Asignatura II18 Bases de Datos Ingeniería Informática Universitat Jaume I Ingeniería Informática. Universitat Jaume I II18 - Bases de Datos. Práctica 1 Práctica 1 Objetivos de
ORACLE 10g. Descripción A QUIEN VA DIRIGIDO?
ORACLE 10g Descripción A QUIEN VA DIRIGIDO? Está dirigido a estudiantes y profesionista que desee conocer la tecnología Oracle, así como realizar extracción de datos, creación de objetos y administración
Desarrollo de Aplicaciones Informáticas
Desarrollo de Aplicaciones Informáticas CICLO FORMATIVO DE GRADO SUPERIOR FORMACIÓN PROFESIONAL A DISTANCIA Unidad 3 SQL y el modelo relacional - LMD MÓDULO Desarrollo de Aplicaciones en Entornos de Cuarta
Introducción a SQL sobre Oracle
Laboratorio de Bases de Datos Introducción a SQL sobre Oracle Luis A. González Ares Contenido Lenguaje SQL sobre Oracle. Descripción de las características y elementos fundamentales del lenguaje. Ejercicios
Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas)
Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas) Lo que aprenderá Esta clase es aplicable para los usuarios de Oracle8i, Oracle9i y Oracle Database 10g. En este
UNIDAD DE TRABAJO 2: BASES DE DATOS RELACIONALES
UNIDAD DE TRABAJO 2: BASES DE DATOS RELACIONALES TEMA 6: CONSULTAS (parte 3) 6.21. INTRODUCCIÓN En este tercer tema sobre consultas veremos: Revisaremos las subconsultas, comenzando con una introducción
GBD Diseño físico de DDBB
GBD Diseño físico de DDBB Mª Carmen Gabarrón Manual SQL de Oracle 10g http://download.oracle.com/docs/cd/b19306_01/server.102/b14200/index.htm SQL SQL es el lenguaje de consulta universal para bases de
Datos Agregados por medio de Funciones de Grupo. Copyright Oracle Corporation, 1998. All rights reserved.
5 Datos Agregados por medio de Funciones de Grupo Copyright Oracle Corporation, 1998. All rights reserved. Objetivos Al completar esta lección, debería ser capaz de hacer lo siguiente: Identificar las
SENTENCIAS Y CONSULTAS EN SQL SERVER
SENTENCIAS Y CONSULTAS EN SQL SERVER En esta sección nos preocuparemos por conocer, las consultas en SQL que describiremos aquí. Para eso haremos un pequeño de las palabras claves que se utilizan en SQL,
A.1. Definiciones de datos en SQL
A.1. Definiciones de datos en SQL Las Sentencias del lenguaje de definición de datos (DDL) que posee SQL operan en base a tablas. Las Principales sentencias DDL son las siguientes: CREATE TABLE DROP TABLE
8 ACCESS CURSO PRÁCTICO RA-MA
ÍNDICE INTRODUCCIÓN...15 CAPÍTULO 1. CARACTERÍSTICAS, NOVEDADES Y ENTORNO DE TRABAJO...17 1.1 NOVEDADES EN ACCESS 2010...17 1.1.1 Novedades generales y de interfaz...17 1.1.2 Novedades en herramientas
Ing. Santiago C. Pérez Laura Noussan Lettry Carlos Campos
UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL MENDOZA DEPARTAMENTO DE INGENIERÍA EN SISTEMAS DE INFORMACIÓN CÁTEDRA DE GESTIÓN DE DATOS 3º AÑO TRABAJO ESPECIAL Secuencia Didáctica de Comandos del
Capítulo 4. Realización de consultas
Capítulo 4 Realización de consultas ÍNDICE CAPÍTULO 4 Introducción sentencia SELECT Base de datos de ejemplo Consultas básicas Cláusula ORDER BY Cláusula DISTINCT Cláusula LIMIT Expresiones Funciones propias
PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional
PROGRAMAS DE ESTUDIO FORMATO 7 NOMBRE DE LA ASIGNATURA INTRODUCCIÓN A SQL CICLO, AREA O MODULO Área de Formación Profesional CLAVE DE LA ASIGNATURA IT222 OBJETIVOS GENERALES DE LA ASIGNATURA Al final del
ÍNDICE INTRODUCCIÓN...13
ÍNDICE INTRODUCCIÓN...13 CAPÍTULO 1. EL MODELO RELACIONAL. LENGUAJE SQL...17 1.1 INTRODUCCIÓN AL MODELO RELACIONAL...17 1.2 RELACIONES...19 1.2.1 Definición formal de relación...21 1.2.2 Propiedades y
LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO
LENGUAJE DE CONSULTA ESTRUCTURADO - SQL 1. TIPOS DE DATOS 2. COMANDOS DDL 2.1 Créate 2.2 Drop 2.3 Alter 3. COMANDOS DML 3.1 Select 3.2 Insert 3.3 Update 3.4 Delete 4. CLAUSULAS 4.1 From 4.2 Where 4.3 Having
Oracle 11g SQL. Curso práctico de formación. Antolín Muñoz Chaparro
Oracle 11g SQL Curso práctico de formación Antolín Muñoz Chaparro Oracle 11g SQL. Curso práctico de formación Antolín Muñoz Chaparro ISBN: 978-84-938312-4-0 EAN: 9788493831240 Copyright 2011 RC Libros
Si no podemos conectar con la base de datos, fijarnos en servicios (herramientas administrativas/servicios) que tenemos el oracleservicexe levantado.
ANEXO AL TEMA 6: CONCEPTOS BÁSICOS SOBRE SQL. INTRODUCCIÓN. ESQUEMA CON EL QUE TRABAJAREMOS. TRABAJANDO CON SQL Cuando instalamos el Oracle Express te instala por defecto una base de datos llamada XE.
8 SQL SERVER 2008 RA-MA
ÍNDICE Capítulo 1. Características, novedades y entorno de trabajo... 17 1.1 Novedades en SQL Server 2008... 17 1.2 Instalación de Microsoft SQL Server 2008... 19 1.3 Versiones de Microsoft SQL Server
Instrucción Definición Ejemplos
INSTRUCCIONES - Los valores nulos en las expresiones siempre dan como resultado un valor nulo Instrucción Definición Ejemplos. ED Invoca al Editor del Sistema.. CLEAR SCR Borra la pantalla. START fichero
Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su:
CURSO DE ORACLE DESCRIPCIÓN Oracle es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de Relational Data Base Management System), desarrollado por Oracle Corporation.
UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas
LENGUAJE SQL Que es SQL? SQL es un estándar un lenguaje estructurado para consultas SQL te permite acceder y manejar bases de datos SQL es un Estándar (ANSI American National Standards Institute) Que puede
Guía práctica de SQL
Guía práctica de SQL Francisco Charte Ojeda Agradecimientos Introducción Qué es SQL? Aplicaciones de SQL Intérpretes de SQL Tipos de RDBMS Cómo usar este libro Convenciones tipográficas 1. El modelo relacional
Vistas en InformiX Sistemas de Bases de Datos II EMT CETP A/S Leonardo Carámbula
Vistas en InformiX Características Una vista es una tabla virtual cuyo contenido está definido por una consulta SELECT. Al igual que una tabla real, una vista tiene: un nombre un conjunto de columnas con
Fila: Es un conjunto de varias celdas dispuestas en sentido horizontal.
Que Es Excel? Excel es un programa que permite la manipulación de libros y hojas de calculo. En Excel, un libro es el archivo en que se trabaja y donde se almacenan los datos. Como cada libro puede contener
8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA
ÍNDICE CAPÍTULO 1. CARACTERÍSTICAS, NOVEDADES Y ENTORNO DE TRABAJO...17 1.1 NOVEDADES EN SQL SERVER 2008 R2...17 1.2 INSTALACIÓN DE MICROSOFT SQL SERVER 2008 R2...18 1.3 VERSIONES DE MICROSOFT SQL SERVER
SQL (Structured Query Language)
SQL (Structured Query Language) El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite
Oracle Database 10g: Introducción a SQL
Oracle 联系我们 : 8 Oracle Database 10g: Introducción a SQL 课程持续时间 :5 您将学到什么内容 Obtendrá los conocimientos esenciales de SQL con SQL D tecnología de la base de datos Oracle Database 10g. En relacionales y el
1. DML. Las consultas de resumen
1.1 Introducción 1. DML. Las consultas de resumen Una de las funcionalidades de la sentencia SELECT es el permitir obtener resúmenes de los datos contenidos en las columnas de las tablas. Para poder llevarlo
SQL DML Select. Ges$ón y Modelación de Datos. María Constanza Pabón
SQL DML Select Ges$ón y Modelación de Datos María Constanza Pabón [email protected] SQL - DML Sentencias: INSERT UPDATE DELETE SELECT SQL - DML Query (consulta): proceso de recuperar datos de
UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES. Xochitl Clemente Parra Armando Méndez Morales
UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Práctica preliminar Crear la siguiente base de datos de prácticas
Seminario 1. Excel Básico
Seminario 1. Excel Básico Contenidos 1. Qué es Microsoft Excel? 2. Identificar celdas 3. La barra de herramientas de acceso rápido y la cinta de opciones 4. Abrir y guardar libros de trabajo 5. La ayuda
2 Bloque de consulta básico
2 Bloque de consulta básico En una base de datos relacional los datos son almacenados en estructuras de almacenamiento o tablas. Las dos operaciones básicas a llevar a cabo sobre una base de datos relacional
ADMINISTRACION DE BASES DE DATOS EN ORACLE
SQL LENGUAJE ESTRUCTURADO DE CONSULTA El nacimiento del lenguaje SQL data de 1970 cuando E. F. Codd publica su libro: "Un modelo de datos relacional para grandes bancos de datos compartidos". Ese libro
Guía de ejercicios de SQL Prof. Mauricio E. Fernández N. Semestre Agosto-Diciembre de 2012
Guía de ejercicios de SQL Prof. Mauricio E. Fernández N. Semestre Agosto-Diciembre de 2012 Problema Enunciado: Sean las siguientes tablas de una base de datos Empleado (ndiemp, nomemp, sexemp, fecnac,
(LDD) VARCHAR2 (n) : alfanumérico (hasta 240) NUMBER (n,p) : números con signo y punto decimal
Lenguaje de Definición de Datos (LDD) Tipos de Datos Nuevos VARCHAR2 (n) : alfanumérico (hasta 240) NUMBER (n,p) : números con signo y punto decimal n = número total de dígitos a almacenar p = dígitos
Cursores Explícitos. Copyright Oracle Corporation, All rights reserved.
8 Cursores Explícitos Copyright Oracle Corporation, 1998. All rights reserved. Objetivos Al final de esta lección, usted podrá: Distinguir entre un cursor explícito y otro implícito Utilizar una variable
Structured Query Language (SQL) Fundamentos de Bases de Datos InCo - 2011
Structured Query Language () Fundamentos de Bases de Datos InCo - Un poco de historia Lenguajes de consulta relacionales: SEQUEL (IBM-1970) QUEL (Ingres-1970) QBE (IBM-1970) es el lenguaje comercial más
INTRODUCIR FORMULAS EN EXCEL
INTRODUCIR FORMULAS EN EXCEL Las fórmulas, comienzan con un signo (=) y son ecuaciones que efectúan cálculos con los valores ingresados en la hoja de cálculo. Por ejemplo, la siguiente fórmula multiplica
GONZALEZ VARGAS ANA KAREN GUTIERREZ MUNGUIA LUIS DANIEL TELLEZ ARCOS DIANA FATIMA PROBLEMA A RESOLVER
GONZALEZ VARGAS ANA KAREN GUTIERREZ MUNGUIA LUIS DANIEL TELLEZ ARCOS DIANA FATIMA PROBLEMA A RESOLVER Esta base de datos se va a crear para resolver el problema en una tienda departamental, ya que podemos
SQL. Carlos A. Olarte BDI
Carlos A. Olarte ([email protected]) BDI Outline 1 Introducción 2 Select... from... where 3 Renombramiento 4 Ordenamiento 5 Reuniones 6 Operaciones sobre conjuntos 7 Funciones de Agregación 8 Subconsultas
ÍNDICE. Introducción... Capítulo 1. Novedades de Access 2013... 1
Introducción... XIII Capítulo 1. Novedades de Access 2013... 1 Nuevas posibilidades de cifrado, compactación y reparación de archivos... 1 Trabajo en la nube... 2 Compartir la información... 3 Guardar
Computación Web (Curso 2015/2016)
Bases de Datos (I) Computación Web (Curso 2015/2016) Jesús Arias Fisteus // [email protected] Bases de Datos (I) p. 1 Bases de datos relacionales Colección de datos almacenados en una o más tablas. Las tablas
Unidad III. Bases de Datos
Clase:11 1 Unidad III Bases de Datos 2 SQL. Comandos de DDL. Comandos de DML. Agenda 3 SQL Structured Query Language SQL Los comandos del SQL pueden dividirse en tres grupos: Comandos de definición de
Práctica 1. 1. Obtener el código y el doble del precio de los artículos cuyo precio es inferior a 5 céntimos de euro.
Práctica 1 Objetivos de aprendizaje: Funcionamiento de la sentencia select y sus cláusulas select, from y where. Uso del modificador distinct. Expresiones en las cláusulas select y where. Ejercicios: 1.
