Interacción con la Base de Datos 4
Objetivos Usar  SQL*Plus  y  iSQL*Plus  para acceder a Oracle 10g
Describir la estructura lógica de las tablas
Usar SQL para consultar, manipular y definir datos
Interacción con La BD Podemos usar una gran multitud de herramientas para interactuar con la base de datos, en todas utilizaremos SQL: SQL*Plus  y  iSQL*Plus
Oracle Forms, Reports y Discoverer
Oracle Enterprise Manager
Herramientas de terceros Imagen: http://www.flickr.com/photos/therefromhere/518053737/
SQL*Plus Herramienta en modo texto
La utilizaremos en modo interactivo o " batch "
iSQL*Plus
Java Java es un estándar, un lenguaje de programación orientado a objetos. Incluye los siguientes conceptos: Una maquina virtual de Java ( JVM ), que proporciona independencia de la plataforma de ejecución
Técnicas de gestión automática del almacenamiento
La sintaxis del lenguaje se basa en C pero refuerza la escritura estructurada Imagen: http://www.flickr.com/photos/shinyai/335249511/
OCI " Oracle Call Interface " es la forma de hacer accesible a los equipos de desarrollo todas las funcionalidades de la base de datos
OCI hace posible crear aplicaciones  escalables  y de  alto rendimiento
Las APIs de alto nivel y algunas herramientas utilizan OCI para acceder indirectamente a la base de datos
Otras APIs Java Database Connectivity (JDBC)
Pro*C/C++
Pro*COBOL
Oracle C++ Interface (OCCI)
Open Database Connectivity (ODBC)
Oracle Data Provider for .NET ( ODP.NET )
Oracle Objects for OLE (OO4O)
¿Que es SQL? SQL es un lenguaje que utilizaremos para: Consultar los datos de la base de datos
Insertar, actualizar y borrar filas de una tabla
Crear, reemplazar, alterar y borrar objetos
Controlar el acceso a la base de datos y sus objetos SQL unifica las tareas en un lenguaje consiente Imagen: http://www.flickr.com/photos/mucio/3656302901/
Structured Query Language Se puede dividir en tres lenguajes o secciones básicas: Data Definition Language ( DDL )
Data Control Language ( DCL )
Data Manipulation Language ( DML ) Fue creado como una solución para consultar datos relacionales por personas que no fueran programadores. Originalmente llamado Structured English Query Language (SEQUEL), se eliminó " English " para obtener las siglas de SQL SQL
Data Definition Language Se utilizan para añadir, modificar o eliminar cualquier objeto de la base de datos (tablas, vistas o índices)
DDL incluye todas las sentencias:  CREATE ,  ALTER  y  DROP
La creación de la base de datos se realiza con una sentencia DDL
Antes de poder introducir datos, se deben crear los lugares donde se guardarán usando sentencias DDL; habitualmente usadas por los administradores y en ocasiones por los desarrolladores SQL DDL
Data Control Language Cuando creamos una cuenta para un usuario, le podemos dar permisos con la sentencia  GRANT  y quitárselos con  REVOKE
Hay dos tipos de permisos que podemos otorgar o quitar: Privilegios de Sistema , permiten al usuario realizar acciones sobre la base de datos acciones como crear una tabla, un índice, hacer una copia de seguridad requieren de privilegios de sistema
Privilegios de Objeto , se aplican a un objeto particular de la base de datos los permisos pueden cambiar en función del tipo de objeto ( SELECT  sobre una tabla o  EXECUTE  sobre un procedimiento SQL DCL

Administración de Oracle - Tema 4 - Interacción con la Base de Datos

Notas del editor

  • #4 SQL unifica todas las tareas en un lenguaje consistente
  • #12 Lenguaje de Definición de Datos Antes de añadir datos a una tabla debemos crearla: El lenguaje de definición de datos se utiliza para crear, modificar y borrar objetos de una base de datos: CREATE , añade objetos a la base de datos (tablas, vistas, procedimientos, etc.) ALTER , se usa para cambiar las características de tablas, índices y otros objetos de la base de datos. No se puede aplicar a todos los objetos DROP , con este comando podemos borrar objetos de la base de datos. Cuando lo usamos sobre una tabla, también borramos todos los datos de ésta. Una vez borrados no podrán recuperarse Definición de Objetos Los nombres de objetos deben cumplir ciertas reglas: Comenzar por una letra Tener de 1 a 30 caracteres de longitud Pueden contener letras, números y los símbolos: Subrayado Dólar Almohadilla No se pueden usar palabras reservadas (SELECT, INSERT, DROP, GRANT ...) Podemos crear objetos con el mismo nombre en esquemas diferentes Los nombres en Oracle no distinguen entres mayúsculas y minúsculas, aunque Oracle siempre los muestra en mayúsculas
  • #16 Aunque solo son necesarias las dos primeras
  • #17 Eliminar Duplicados del Resultado Cuando utilizamos la sentencia SELECT, Oracle nos devuelve todos los registros que coincidan con la consulta: Que pasa cuando queremos consultar, únicamente, los usuarios que son propietarios de objetos de la base de datos Para crear esta lista utilizaremos la palabra clave DISTINCT Cuando utilizamos esta clave Oracle ordena el resultado de nuestra consulta y nos devuelve únicamente la primera aparición de los valores devueltos por la consulta
  • #18 Condiciones de WHERE Las condiciones de una cláusula WHERE pueden consistir en dos expresiones comparadas por un operador: igual (=) diferente (<>) menor que (<) mayor que (>) Además también podemos utilizar operadores como BETWEEN LIKE IN
  • #19 Ordenando y Agrupando los Datos El orden en el que Oracle devuelve los datos es totalmente aleatorio: Es posible realizar una consulta diez veces y obtener los mismos datos en 10 ordenes diferentes Cuando queremos obtener los datos en un orden concreto, debemos utilizar la cláusula ORDER BY Puedes especificar que los datos se muestren en orden concreto ascendente o descendente Es posible ordenar por cualquier columna o tipo de datos excepto por los tipos de datos para objetos grandes (CLOB, NCLOB, BLOB, BFILE, RAW, LONGRAW y LONG)
  • #20 Recuperar Datos de más de Una Tabla Es posible especificar mas de una tabla en el FROM: De esta forma, si indicamos como están relacionadas, realizar una unión de ambas Un DBA no necesita realizar uniones complejas, pero si queremos obtener una lista de los tablespaces y los nombres de archivo asociados a ellos, deberemos unir las tablas DBA_TABLESPACES y DBA_DATA_FILES Condiciones en la Unión de Tablas Es posible especificar mas de una tabla en el FROM: Además de las cláusulas SELECT y FROM, para realizar una unión necesitamos una condición Una condición de unión es la forma adecuada de unir los registros de una tabla con los registros de otra tabla diferente A esta condición se la conoce como la pareja clave primaria/clave foránea y se expresa con la cláusula WHERE (en todas las versiones de Oracle) o con la sintaxis ANSI disponible en Oracle 9i y 10g. Puntos a Tener en Cuenta Hay algunas cosas que hemos de tener en mente cuando realizamos una JOIN : Las uniones es que las columnas utilizadas en la condición no necesitan estar en la lista de la sentencia SELECT La condición no es estrictamente necesaria, en ese caso obtendremos un producto cartesiano " CROSS JOIN " de todos los registros de la primera tabla con todos los registros de la segunda tabla Este tipo de consultas se realiza sobretodo en el caso de realizar un data warehouse de nuestros datos
  • #21 La ventaja de usar la sintaxis ANSI es la facilidad con la que podemos identificar la condición para la unión
  • #23 INSERT, UPDATE y DELETE Son las instrucciones del Lenguaje de Manipulación de Datos (DML): El motor de Oracle controla el acceso al sistema y sus datos Para incluir o modificar datos en nuestras tablas deberemos indicárselo a Oracle con las instrucciones INSERT UPDATE DELETE Es importante comprender el correcto funcionamiento de estas instrucciones para administrar una base de datos Oracle
  • #27 TRANSACCIONES Ayudan controlar la ejecución de sentencias DML agrupándolas en transacciones Las sentencias DML son el tipo más frecuente de transacción en una base de datos
  • #30 Control de Transacciones Oracle no valida una transacción y dispone los cambios como permanentes hasta que no se le insta para hacerlo: Por esta razón existen varios comandos para controlar las transacciones Se inicia una transacción implícita por cada sentencia DML que ejecutamos. Y no se termina hasta que se valida o se recupera En Oracle podemos controlar explícitamente el final de una transacción usando los comandos: COMMIT, los cambios realizados por la sentencia DML se vuelven permanentes ROLLBACK, los cambios se recuperan a su estado anterior La ventaja de este sistema es la posibilidad de verificar una operación antes de validarla SAVEPOINT Podemos realizar rollbacks intermedios: En ocasiones no nos interesará recuperar la transacción por completo Para realizar este control en cada paso de la transacción utilizaremos savepoints. Marcas con un nombre dentro de la transacción que pueden usarse como destinos previos en una recuperación: SAVEPOINT nombre; Una vez hemos realizado un savepoint, podemos recuperar el estado de la transacción en ese punto, utilizando el operador TO y el nombre del savepoint
  • #35 Otras Sentencias Sentencias de control de sesión: Administran las propiedades de una sesión de usuario Sentencias de control de sistema: Administra las propiedades de una instancia Oracle Sentencias SQL incluidas con el sistema
  • #37 ¿Qué es el PL/SQL? PL/SQL es un lenguaje estructurado en bloques que añade varias características al SQL: Declaraciones Variables Constantes Cursores Estructuras de control Condicional Iterativo Secuencial Control de errores Usos del PL/SQL Los bloques PL/SQL se pueden usar para: Bloques anónimos Funciones Procedimientos Paquetes Disparadores Tipos de objeto
  • #38 Estructura de los Bloques Todos los bloques PL/SQL tienen la misma estructura: Una sección para la declaración de variables (DECLARE) El código que ejecutaremos (BEGIN) El control de errores (EXCEPTION) El terminador (END)