oracle sql 201 - v1
DESCRIPTION
Curso Oracle SQLTRANSCRIPT
![Page 1: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/1.jpg)
Oracle SQL 201
![Page 2: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/2.jpg)
Contenido …
• Conceptos básicos• El servidor de base de datos Oracle• Objetos de base de datos• El diccionario de datos• Familias de sentencias SQL• Tipos de datos en Oracle• Operadores, funciones, expresiones y
condiciones
![Page 3: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/3.jpg)
… Contenido
• La sentencia SELECT• Formas básicas• SQL analítico• Uso de subconsultas (subqueries)• Consultas jerárquicas
• Manejo de transacciones y el modelo de consistencia de lectura multiversión de Oracle (MVRC)
![Page 4: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/4.jpg)
Material de referencia
• Oracle Database Concepts• Oracle Database SQL Language
Reference• Oracle Database Reference• AskTom
• http://asktom.oracle.com
• Oracle Technology Network• http://otn.oracle.com
![Page 5: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/5.jpg)
Homework
• Explicación de 10’ por tema• Qué es, en qué consiste• Para qué puede servir• Ejemplos de aplicación
• Demostración
![Page 6: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/6.jpg)
Conceptos básicos sobre base de
datos Oracle
![Page 7: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/7.jpg)
Oracle Server
Oracle Server
SQL
PL/SQLAplicación
Cliente
Resultado
![Page 8: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/8.jpg)
Instancia y Base de Datos
ProcesosOracle
System GlobalArea
Instancia Oracle
Base de datos Oracle
![Page 9: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/9.jpg)
Objetos de base de datos• Tablas• Vistas• Índices• Secuencias• Sinónimos• Usuarios• Roles• Privilegios
• Restricciones• Stored
procedures• Stored functions• Packages• Triggers• Tablespaces• Etc.
![Page 10: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/10.jpg)
El usuario SYS
• Es el usuario propietario de los objetos del sistema
• Tiene privilegios para realizar cualquier operación en la base de datos
• Es el usuario de base de datos cuando se realiza una conexión “AS SYDBA”
![Page 11: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/11.jpg)
El diccionario de datos
• Es un conjunto de vistas que permiten leer la definición de cualquier objeto de base de datos utilizando el lenguaje SQL
• Hay tres grupos de vistas del diccionario:Vistas Contienen información sobre
USER_*Objetos cuyo propietario es el usuario conectado
ALL_*Objetos sobre los que el usuario conectado tiene privilegios
DBA_* Todos los objetos de la base de datos
![Page 12: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/12.jpg)
Familias de sentencias SQL• Data Definition Language (DDL)• Data Control Language (DCL)• SELECT• Data Manipulation Language
(DML)• Transaction Control
![Page 13: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/13.jpg)
Data Definition Language• Permite crear, modificar y eliminar
definiciones de objetos• Sentencias:
• CREATE• ALTER• DROP• RENAME• TRUNCATE• COMMENT
![Page 14: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/14.jpg)
Data Control Language
• Permite asignar y revocar privilegios a usuarios y roles
• Sentencias:• GRANT• REVOKE
![Page 15: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/15.jpg)
SELECT
• Permite leer datos de tablas y vistas
• La operación más frecuente en una base de datos
![Page 16: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/16.jpg)
Data Manipulation Language (DML)
• Permite modificar datos de tablas de usuario (no del sistema)
• Sentencias:• DELETE• INSERT• UPDATE• MERGE
![Page 17: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/17.jpg)
Transaction Control …
• Una transacción es un conjunto de una o más modificaciones a los datos (sentencias DML)
• Cada transacción debe tener cuatro características:• Atomicidad: “todo o nada”• Consistencia: que se cumplan las reglas de
integridad definidas en la base de datos• Aislamiento: las transacciones incompletas no
son visibles para otras transacciones• Durabilidad: la transacción se hace permanente
cuando sólo después de ser confirmada (COMMIT)
![Page 18: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/18.jpg)
… Transaction Control
• Sentencias:• COMMIT• ROLLBACK• SAVEPOINT
• Cuando se ejecuta una sentencia DDL o una sentencia DCL, la transacción se confirma de manera implícita (como si se hubiera hecho COMMIT)
![Page 19: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/19.jpg)
Tipos de datos en Oracle• CHAR y NCHAR• VARCHAR2 y NVARCHAR2• NUMBER• DATE• TIMESTAMP• BLOB, CLOB, NCLOB y BFILE• ROWID• Tipos definidos por usuario
![Page 20: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/20.jpg)
Operadores …
• Existen operadores unarios y binarios• Los unarios tienen sólo un
argumento• Los binarios tienen dos argumentos
• Tener en cuenta la precedencia (orden de aplicación) de los operadores
• Revisar Oracle Database SQL Language Reference 11g Release 2, capítulo 4
![Page 21: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/21.jpg)
… Operadores
• Aritméticos• + y – (identidad y negación, unarios)• +, -, *, / (operaciones aritméticas, binarios)
• Concatenación de cadenas de caracteres (binario)• ||
• De conjuntos (binarios)• UNION• UNION ALL• MINUS• INTERSECT
• Si el operando es NULL, el resultado es NULL, excepto con el operador de concatenación
![Page 22: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/22.jpg)
Funciones …
• Hay funciones escalares, de totalización o resumen (aggregate) y analíticas
• Muchas funciones escalares ofrecen versiones sobrecargadas• Familias de funciones con el mismo
nombre y variación en los argumentos que aceptan
• Revisar Oracle Database SQL Language Reference 11g Release 2, capítulo 5
![Page 23: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/23.jpg)
… Funciones
• Escalares• Numéricas• De caracteres• De fecha y hora• De comparación• De conversión• Para codificar y decodificar• Para manejar valores nulos• De ambiente e identificación
• De totalización• Analíticas
![Page 24: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/24.jpg)
Expresiones
• Una expresión es una combinación de uno o más valores, operadores y funciones, que da como resultado un valor
• En general, las expresiones pueden reemplazar un valor del tipo adecuado
• Hay expresiones• Simples y compuestas• CASE
• Revisar Oracle Database SQL Language Reference 11g Release 2, capítulo 6
![Page 25: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/25.jpg)
Condiciones …
• En SQL, se manejan tres valores lógicos:• VERDADERO (TRUE)• FALSO (FALSE)• NULO (NULL)
• Nulo significa DESCONOCIDO• No significa vacío
• Las tablas de verdad de las operaciones lógicas (AND, OR, NOT), se deben ajustar de acuerdo con esta definición
• Tener en cuenta la precedencia (orden de aplicación) de los operadores
• Revisar Oracle Database SQL Language Reference 11g Release 2, capítulo 7
![Page 26: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/26.jpg)
… Condiciones
• Operadores de comparación• >, >=, =, !=, <>, ^=,<, <=• IS [NOT] NULL• LIKE• BETWEEN• IN• EXISTS
• Operadores lógicos• NOT• AND• OR
![Page 27: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/27.jpg)
La sentencia SELECT:
Generalidades
![Page 28: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/28.jpg)
¿Qué es una base de datos relacional?• Elementos
• Atributos o columnas• Tuplas o filas• Relaciones o tablas
• Operaciones relacionales• SELECT• PROJECT• JOIN
• Utiliza un lenguaje declarativo para manejar los datos (p. ej. SQL)
![Page 29: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/29.jpg)
SELECT simples
• Cláusulas• SELECT• FROM• WHERE• GROUP BY• ORDER BY
![Page 30: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/30.jpg)
Operadores de conjuntos
![Page 31: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/31.jpg)
![Page 32: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/32.jpg)
SQL Analítico
![Page 33: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/33.jpg)
![Page 34: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/34.jpg)
Subconsultas
![Page 35: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/35.jpg)
![Page 36: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/36.jpg)
Consultas jerárquicas
![Page 37: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/37.jpg)
![Page 38: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/38.jpg)
El modelo de consistencia de
lectura multiversión(MVRC)
![Page 39: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/39.jpg)
Consistencia de lectura multiversión …
![Page 40: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/40.jpg)
… Consistencia de lectura multiversión• Quienes leen no bloquean a quienes
modifican• Quienes modifican no bloquean a quienes
leen• Se produce un bloqueo a nivel de fila cuando
se intenta modificar el mismo registro a la vez, en transacciones diferentes
• Consistencia a nivel de sentencia• Siempre se cumple, es el modelo preferido• El resultado de una consulta se obtiene en
referencia al mismo momento en el tiempo (inicio de la sentencia)
• Consistencia a nivel de transacción• Opcional, se debe declarar la transacción como
SERIALIZABLE• El resultado de todas las consultas en la misma
transacción corresponden al mismo momento en el tiempo
![Page 41: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/41.jpg)
Checklist …
• Concepto de parsing• Leer e interpretar planes de ejecución• Arquitectura general de Oracle
Database• Mecanismo de consistencia de datos y
undo• Diferencia entre CBO y RBO• Diferencia entre los modos del
optimizador FIRST_ROWS y ALL_ROWS• Concepto de estadísticas del
optimizador• Diferencia entre PIO y LIO, cómo
aparecen éstos en los reportes de trace
![Page 42: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/42.jpg)
… Checklist
• Métodos de acceso en planes de ejecución• Table access full o full table scan (FTS)• Full index scan• Index range scan, Index unique Scan• Table access by index rowid
• Cuándo conviene Full Table Scan y cuándo acceso por índice
• Diferencia entre nested loops join, sort-merge join y hash join
• Diferencia entre índices B*Tree e índices bitmap
![Page 43: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/43.jpg)
PL/SQL
![Page 44: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/44.jpg)
¿Qué es PL/SQL?
• Lenguaje propietario de Oracle• Extensión procedimental a SQL
• Variables• Bucles• Condicionales• Manejo de excepciones• Tipos de datos definidos por el
desarrollador
![Page 45: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/45.jpg)
Ventajas PL/SQL
• Manejo de seguridad• Opciones para control de acceso:
AUTHID CURRENT_USER y AUTHID DEFINER
• Encriptación de código
• Enmascaramiento de información• Separación de interfaz e
implementación• Optimización de tráfico en la red
![Page 46: Oracle SQL 201 - V1](https://reader035.vdocuments.site/reader035/viewer/2022062217/55cf9431550346f57ba03dba/html5/thumbnails/46.jpg)
Arquitectura de PL/SQL