Curso SQL - Leccion 12

48
Programación SQL Lección 12

Transcript of Curso SQL - Leccion 12

Page 1: Curso SQL - Leccion 12

Programación SQL Lección 12

Page 2: Curso SQL - Leccion 12

SQL Fundamentals I

La creación de otros objetos de esquema

Page 3: Curso SQL - Leccion 12

Después de completar esta lección, usted debería ser capaz de hacer el siguiente: Crear vistas simples y complejas Recuperar datos desde vistas Crear, mantener y utilizar secuencias Crear y mantener índices Crear sinónimos privados y públicos

Objetivos

Page 4: Curso SQL - Leccion 12

Descripción general de las Vistas:◦Crear, modificar y recuperar datos de una vista◦Operaciones de Lenguaje de manipulación de datos

(DML)en una vista◦Eliminar una vista

Descripción general de las secuencias:◦Creación, uso y modificación de una secuencia◦Secuencia de valores en Cache◦Pseudocolumnas NEXTVAL y CURRVAL

• Descripción general de los índices◦Creación y eliminación de índices

• Visión general de sinónimos◦Creación y eliminación de sinónimos

Agenda

Page 5: Curso SQL - Leccion 12

Objetos de base de datos

Page 6: Curso SQL - Leccion 12

¿Qué es una Vista?

Page 7: Curso SQL - Leccion 12

Ventajas de Vistas

Page 8: Curso SQL - Leccion 12

Vistas simples y complejos Vistas

Page 9: Curso SQL - Leccion 12

Se embebe una subconsulta en la sentencia CREATE VIEW:

La subconsulta puede contener sintaxis SELECT compleja.

Creación de una vista

Page 10: Curso SQL - Leccion 12

Crear la vista EMPVU80, que contiene detalles de la empleados del departamento 80

Describir la estructura de la vista utilizando el comando DESCRIBE:

Creación de una Vista

Page 11: Curso SQL - Leccion 12

 Crear una vista mediante el uso de los alias de columna en la subconsulta:

Seleccione las columnas desde este punto de vista por los alias dados

Creación de una vista

Page 12: Curso SQL - Leccion 12

Recuperación de datos de una Vista

Page 13: Curso SQL - Leccion 12

Modificar la vista EMPVU80 utilizando la cláusula CREATE OR REPLACE VIEW. Añadir un alias para cada nombre de columna:

El alias de columna en la cláusula CREATE OR REPLACE VIEW se enumeran en el mismo orden que las columnas de la subconsulta.

Modificación de un Vista

Page 14: Curso SQL - Leccion 12

Crear una visión compleja que contiene funciones de grupo para mostrar los valores de dos tablas:

Creación de una Vista compleja

Page 15: Curso SQL - Leccion 12

Generalmente, se puede realizar operaciones de DML en vistas simples.

No se puede eliminar una fila si la Vista contiene el siguiente:◦ Funciones de grupo◦ Una cláusula GROUP BY◦ La palabra clave DISTINCT◦ La palabra clave ROWNUM

Reglas para la realización de operaciones DML en una Vista

Page 16: Curso SQL - Leccion 12

No se pueden modificar los datos en una vista si contiene: Funciones de grupo Una cláusula GROUP BY La palabra clave DISTINCT La palabra clave ROWNUM Columnas definidas por expresiones

Reglas para la realización de operaciones DML en una Vista

Page 17: Curso SQL - Leccion 12

No se puede agregar datos a través de una vista si la vista incluye: Funciones de grupo Una cláusula GROUP BY La palabra clave DISTINCT La palabra clave ROWNUM Columnas definidas por expresiones Las columnas NOT NULL en las tablas de la

base no searán seleccionados por la vista

Reglas para la realización de operaciones DML en una Vista

Page 18: Curso SQL - Leccion 12

Se puede asegurar que las operaciones DML que se realizan en la Vista permanecen en el dominio de la vista mediante la cláusula WITH CHECK OPTION:

 Cualquier intento de insertar una fila con un department_id diferente de 20, o para actualizar el número de departamento para cualquier fila en la vista falla porque viola la restricción WITH CHECK OPTION.

Uso de la cláusula WITH CHECK OPTION

Page 19: Curso SQL - Leccion 12

Puede asegurarse de que no hayan operaciones DML se producen añadiendo la opción WITH READ ONLY en definición de la vista.

Cualquier intento de realizar una operación de DML en cualquier fila de la ver los resultados en un error en el servidor Oracle.

Negar operaciones DML

Page 20: Curso SQL - Leccion 12

Negar operaciones DML

Page 21: Curso SQL - Leccion 12

Se puede eliminar una Vista sin perder los datos debido a que una Vista es basada en tablas en la base de datos subyacente.

Eliminar una Vista

Page 22: Curso SQL - Leccion 12

Esta práctica se abordan los siguientes temas: Creación de una Vista simple Creación de una Vista compleja Creación de una Vista con una restricción de

comprobación El intento de modificar los datos en la Vista Eliminación de una Vista

Práctica 12: Vista general de la parte 1

Page 23: Curso SQL - Leccion 12

Descripción general de las Vistas:◦ Crear, modificar y recuperar datos de una vista◦ Operaciones de Lenguaje de manipulación de datos

(DML)en una vista◦ Eliminar una vista

Descripción general de las secuencias:◦ Creación, uso y modificación de una secuencia◦ Secuencia de valores en Cache◦ Pseudocolumnas NEXTVAL y CURRVAL

• Descripción general de los índices◦ Creación y eliminación de índices

• Visión general de sinónimos◦ Creación y eliminación de sinónimos

Agenda

Page 24: Curso SQL - Leccion 12

Secuencias

Page 25: Curso SQL - Leccion 12

Una secuencia: Puede generar números únicos

automáticamente Es un objeto compartible Se puede utilizar para crear un valor de clave

principal Reemplaza el código de aplicación Acelera la eficiencia de acceso a valores de

secuencia cuando esta en la memoria caché

Secuencias

Page 26: Curso SQL - Leccion 12

Definir una secuencia para generar números secuenciales automáticamente:

Sentencia CREATE SEQUENCE: Sintaxis

Page 27: Curso SQL - Leccion 12

Se crea una secuencia llamada DEPT_DEPTID_SEQ a utilizar para la clave principal de la tabla DEPARTAMENTOS.

• No utilizar la opción CYCLE.

Creación de una secuencia

Page 28: Curso SQL - Leccion 12

NEXTVAL devuelve el siguiente valor de la secuencia disponible. Ella devuelve un valor único cada vez que se hace referencia, incluso para diferentes usuarios.

CURRVAL obtiene el valor de secuencia actual.

NEXTVAL debe ser emitido para esa secuencia antes CURRVAL contiene un valor.

Pseudocolumnas NEXTVAL y CURRVAL

Page 29: Curso SQL - Leccion 12

Insertar un nuevo departamento denominado "Soporte" en lugar de identificación 2500:

Ver el valor actual para el DEPT_DEPTID_SEQ secuencia:

Usando una secuencia

Page 30: Curso SQL - Leccion 12

Almacennar valores de secuencia en memoria caché da un acceso más rápido a esos valores.

Pueden ocurrir vacíos o gaps en valores de secuencia cuando:◦ Se produce un retroceso◦ Los fallos del sistema◦ Una secuencia se utiliza en otra tabla

Almacenar en Cache los valores de secuencia

Page 31: Curso SQL - Leccion 12

Cambie el valor de incremento, valor máximo, valor mínimo, opción de ciclo, o caché opción:

La modificación de una secuencia

Page 32: Curso SQL - Leccion 12

Se debe ser el propietario o tener el privilegio ALTER para la secuencia.

Sólo los futuros números de secuencia se ven afectados.

La secuencia debe eliminar y volver a crear al reiniciar la secuencia en un número diferente.

Algunas validaciones son realizadas. Para eliminar una secuencia, utilizar la

sentencia DROP:

Directrices para modificación de una Secuencia

Page 33: Curso SQL - Leccion 12

Descripción general de las Vistas:◦ Crear, modificar y recuperar datos de una vista◦ Operaciones de Lenguaje de manipulación de datos

(DML)en una vista◦ Eliminar una vista

Descripción general de las secuencias:◦ Creación, uso y modificación de una secuencia◦ Secuencia de valores en Cache◦ Pseudocolumnas NEXTVAL y CURRVAL

• Descripción general de los índices◦ Creación y eliminación de índices

• Visión general de sinónimos◦ Creación y eliminación de sinónimos

Agenda

Page 34: Curso SQL - Leccion 12

Índices

Page 35: Curso SQL - Leccion 12

Es un objeto de esquema Puede ser utilizado para acelerar la recuperación

de filas mediante el uso de un puntero  Puede reducir la entrada de disco / salida (I / O)

utilizando una ruta rápida método de acceso para localizar datos de forma rápida

Depende de la tabla que indexa Se usa y se mantiene de forma automática por el

servidor Oracle

Índices

Page 36: Curso SQL - Leccion 12

Automáticamente: Un índice único se crea automáticamente al definir una restricción PRIMARY KEY o UNIQUE en una definición de tabla.

Manualmente: Los usuarios pueden crear índices no únicos en columnas para acelerar el acceso a las filas.

¿Cómo se crean los índices?

Page 37: Curso SQL - Leccion 12

Crear un índice en una o más columnas:

Mejorar la velocidad de acceso de consulta a la LAST_NAME columna en la tabla EMPLOYEES:

Creación de un índice

Page 38: Curso SQL - Leccion 12

Directrices creación del índice

Page 39: Curso SQL - Leccion 12

Eliminar un índice del diccionario de datos mediante el uso de la DROP comando INDEX:

Eliminar el índice emp_last_name_idx partir de los datos diccionario:

Para excluir a un índice, debe ser el propietario del índice o tener el privilegio DROP ANY INDEX.

Eliminar un índice

Page 40: Curso SQL - Leccion 12

Descripción general de las Vistas:◦ Crear, modificar y recuperar datos de una vista◦ Operaciones de Lenguaje de manipulación de datos

(DML)en una vista◦ Eliminar una vista

Descripción general de las secuencias:◦ Creación, uso y modificación de una secuencia◦ Secuencia de valores en Cache◦ Pseudocolumnas NEXTVAL y CURRVAL

• Descripción general de los índices◦ Creación y eliminación de índices

• Visión general de sinónimos◦ Creación y eliminación de sinónimos

Agenda

Page 41: Curso SQL - Leccion 12

Sinónimos

Page 42: Curso SQL - Leccion 12

Simplifica el acceso a los objetos mediante la creación de un sinónimo (otro nombre de un objeto). Con sinónimos, se puede: Crear una referencia más fácil a una tabla

que es propiedad de otro usuario Acortar largos nombres de objeto

Creación de un sinónimo de un Objeto

Page 43: Curso SQL - Leccion 12

Crear un nombre abreviado para la vista DEPT_SUM_VU:

Eliminar un sinónimo

Creación y eliminación de sinónimos

Page 44: Curso SQL - Leccion 12

Los índices se deben crear manualmente y sirven para acelerar el acceso a las filas de una tabla.a. Verdaderob. Falso

Examen

Page 45: Curso SQL - Leccion 12

En esta lección, debe haber aprendido a: Crear, usar y eliminar vistas Generar automáticamente los números de

secuencia utilizando un generador de secuencia

Crear índices para mejorar la velocidad de recuperación de la consulta

Utilizar sinónimos para proporcionar nombres alternativos para los objetos

Resumen

Page 46: Curso SQL - Leccion 12

Esta práctica se abordan los siguientes temas: La creación de secuencias El uso de secuencias Creación de índices no únicos Creación de sinónimos

Práctica 12: Vista general de la parte 2

Page 47: Curso SQL - Leccion 12

¿Preguntas?

Page 48: Curso SQL - Leccion 12

Emmanuel OrtizConsultor [email protected]  / gtalkemmanueltizSkype