Sin título de diapositiva
Transcripción
Sin título de diapositiva
Introducción a SQL Plus PL/SQL www.kybele.urjc.es BD - PL/SQL-1 Bibliografía Complementaria Gennick, J. “Oracle SQL*Plus: The Definitive Guide” (2ª edición), O’Reilly, 2004. SQL*Plus® User's Guide and Reference Release 10.2(ORACLE.COM) http://download.oracle.com/docs/cd/B19306_01/server.102 /b14357/toc.htm Abramson, Abbey y Corey, “Oracle Database 10g: A Beginner's Guide”, McGrawHill, 2006 PL/SQL www.kybele.urjc.es BD - PL/SQL-2 Índice 1. Introducción a) Conexión / Desconexión b) Comandos Básicos de SQL*Plus 2. Uso del Buffer 3. Trabajar con ficheros 4. Interacción con el usuario 5. Salida de SQL*Plus PL/SQL www.kybele.urjc.es BD - PL/SQL-3 Entorno de Desarrollo SQL*Plus es un entorno de desarrollo Conexión a Bases de Datos Elaborar y probar sentencias SQL Soporta su propio lenguaje de comandos Gestionar Bases de Datos Escribir scripts Generar informes básicos PL/SQL www.kybele.urjc.es BD - PL/SQL-4 Conexión a SQL*Plus Arrancar SQL*Plus Línea de comandos Accesos Directos a la aplicación GUI Nombre/Usuario/SID Escritura de comandos No distingue mayúsculas de minúsculas Las sentencias SQL acaban con ‘;’ Los comandos de SQL*Plus no necesitan símbolo de fin. Utilizar ‘-’ para un comando de varias líneas PL/SQL www.kybele.urjc.es BD - PL/SQL-5 Comando CONNECT (SQL*Plus) CONNECT usuario/password@SID Cambiar el usuario Cambiar la BD a la que nos conectamos SHOW USER Comprobar el usuario actual PL/SQL www.kybele.urjc.es BD - PL/SQL-6 Salir/Desconectarse de SQL*Plus DISCONNECT Cierra la conexión, pero mantiene abierta la aplicación EXIT Termina la sesión Todos los cambios pendientes realizados sobre la BD son comprometidos Todos los cambios realizados sobre la sesión, se pierden ejemplo: DEFINE _editor PL/SQL www.kybele.urjc.es BD - PL/SQL-7 Comando DESCRIBE (SQL*Plus) DESC[RIBE] nombre_tabla Proporciona una descripción de la tabla (u objeto) Permite ver su estructura PL/SQL www.kybele.urjc.es BD - PL/SQL-8 Sentencia SELECT (SQL) Recuperar datos de una tabla USER_TABLES Tabla del diccionario de datos información sobre la propia BD PL/SQL www.kybele.urjc.es BD - PL/SQL-9 DUAL – Tabla para trabajar con ORACLE DUAL es una tabla con una única fila y una única columna Se utiliza para realizar pruebas, obtener resultados … PL/SQL www.kybele.urjc.es BD - PL/SQL-10 Índice 1. Introducción a) Conexión / Desconexión b) Comandos Básicos de SQL*Plus 2. Uso del Buffer 3. Trabajar con ficheros 4. Interacción con el usuario 5. Salida de SQL*Plus PL/SQL www.kybele.urjc.es BD - PL/SQL-11 Edición de comandos en SQL*Plus Opciones Utilizar el buffer de SQL*Plus Utilizar cualquier otro editor de texto ASCII Buffer SQL*Plus Guarda sólo la última sentencia SQL (PL/SQL) Editor de Texto Es la solución recomendada Se puede cambiar el editor por defecto PL/SQL www.kybele.urjc.es BD - PL/SQL-12 El buffer de SQL*Plus ‘L’ muestra el contenido del buffer ‘/’ ejecuta la sentencia que hay en el buffer ‘*’ señala la línea actual PL/SQL www.kybele.urjc.es BD - PL/SQL-13 Editar el contenido del Buffer ‘N’ cambiar línea actual C[HANGE]/texto_anterior/texto_nuevo modificar línea actual PL/SQL www.kybele.urjc.es BD - PL/SQL-14 Otros comandos para trabajar con el Buffer PL/SQL L Muestra el contenido del buffer SQL> L Ln Muestra el texto de la línea ‘n’ SQL> L 3 L* Muestra el texto de la línea actual SQL> L * Lxy Muestra las líneas X a Y SQL> L 10 18 a texto Añade texto al final de la línea actual SQL> a where nombre = ‘BD’ c/texto_ant/texto_nvo Sustituye en la línea actual texto_ant por texto_nvo SQL> c/*/nombre c/texto Elimina texto de la línea actual SQL> c/titulacion, I[NPUT] Añade una línea al buffer, de forma que se pueda seguir escribiendo SQL> I DEL Borra la líne actual SQL> DEL www.kybele.urjc.es BD - PL/SQL-15 Comando EDIT (SQL*Plus) ED[IT] Invoca al editor de texto por defecto del SO subyacente Abre el editor, cargando el texto del buffer Al salir, el texto modificado queda en el buffer Cambiar editor por defecto Añadir esa entrada en $ORACLE_HOME/sqlplus/admin/glogin.sql PL/SQL www.kybele.urjc.es BD - PL/SQL-16 Índice 1. Introducción a) Conexión / Desconexión b) Comandos Básicos de SQL*Plus 2. Uso del Buffer 3. Trabajar con ficheros 4. Interacción con el usuario 5. Salida de SQL*Plus PL/SQL www.kybele.urjc.es BD - PL/SQL-17 Comandos de SQL*Plus: trabajar con ficheros SAV[E] [FILE] fichero[.ext] Opciones: [CRE[ATE]|REP[LACE]|APP[END]] Guarda el contenido del buffer en ‘fichero.sql’ EDIT fichero Abre el fichero ‘fichero.sql’ en el editor por defecto GET fichero Carga en el buffer el contenido de ‘fichero.sql’ [Cambiar working directory] PL/SQL www.kybele.urjc.es BD - PL/SQL-18 Comandos de SQL*Plus: trabajar con ficheros SPOOL fichero Arranca el spooling: todo lo que aparece por pantalla se vuelva en fichero SPOOL Muestra el nombre del fichero de salida SPOOL OFF Desactiva el spooling PL/SQL www.kybele.urjc.es BD - PL/SQL-19 Usar un editor externo en SQL*Plus Editor externo Opción más recomendable La sesión del SQL*Plus permanece activa y visible Escribir el código en un fichero ‘.sql’ Ejecutar el fichero: @fichero.sql PL/SQL www.kybele.urjc.es BD - PL/SQL-20 Ejecutar scripts en SQL*Plus START fichero Recupera el fichero y ejecuta los comandos que contiene @fichero Recupera el fichero y ejecuta los comandos que contiene Se pueden utilizar parámetros @drop_table mitabla PL/SQL www.kybele.urjc.es BD - PL/SQL-21 Índice 1. Introducción a) Conexión / Desconexión b) Comandos Básicos de SQL*Plus 2. Uso del Buffer 3. Trabajar con ficheros 4. Interacción con el usuario 5. Salida de SQL*Plus PL/SQL www.kybele.urjc.es BD - PL/SQL-22 Interacción con el usuario en SQL*Plus • • • • PL/SQL Definir variables de usuario Dar valores a las variables de usuario Usar el comando DEFINE para dar valores Pedir valores por pantalla www.kybele.urjc.es BD - PL/SQL-23 Variables de usuario DEFINE variable definir una nueva variable UNDEFINE variable eliminar la variable DEFINE muestra todas las variables login.sql creación de variables en cada sesión PL/SQL www.kybele.urjc.es BD - PL/SQL-24 Variables de sustitución Una variable de sustitución es un nombre de variable precedido por uno o dos ‘&’ Cuando el sistema encuentra una de estas variables, ejecuta la sentencia reemplazándola por el valor asignado a dicha variable. Si no se le ha asignado un valor a la variable, éste se pide por pantalla PL/SQL www.kybele.urjc.es BD - PL/SQL-25 Variables de sustitución Se usa el operador && cuando no queremos que el sistema pregunte varias veces por el valor para una misma variable de sustitución PL/SQL www.kybele.urjc.es BD - PL/SQL-26 Pedir valores por pantalla Con ACCEPT podemos pedir un valor por pantalla ACCEPT variable [datatype] [FORMAT format] [PROMPT text] [HIDE] Si queremos mostrar un mensaje por pantalla y asegurarnos de que el usuario lo lea antes de continuar, podemos usar el comando PAUSE PL/SQL www.kybele.urjc.es BD - PL/SQL-27 Índice 1. Introducción a) Conexión / Desconexión b) Comandos Básicos de SQL*Plus 2. Uso del Buffer 3. Trabajar con ficheros 4. Interacción con el usuario 5. Salida de SQL*Plus PL/SQL www.kybele.urjc.es BD - PL/SQL-28 Salida de SQL*Plus Justificación por defecto A la izquierda: fechas y tipos carácter A la derecha: tipos numéricos Nombres de columnas Mayúsculas por defecto PL/SQL www.kybele.urjc.es BD - PL/SQL-29 Salida de SQL*Plus: uso de alias Cambiar el encabezado de una columna Útil cuando se realizan cálculos El alias se pone después del nombre de la columna Opcionalmente se puede utilizar AS Utilizar comillas dobles si incluye espacios, caracteres especiales o se quiere asegurar el comportamiento de may/min PL/SQL www.kybele.urjc.es BD - PL/SQL-30 Salida de SQL*Plus: concatenar columnas Concatenar el valor de una o más columnas Símbolo utilizado: || Crea una columna que es el resultado de concatenar las columnas seleccionadas PL/SQL www.kybele.urjc.es BD - PL/SQL-31 Salida de SQL*Plus: uso de literales Incluir literales en el resultado de una consulta Al construir la consulta se incluye una expresión entre comillas SIMPLES y se utiliza el operador || La expresión se incluye en la salida para cada una de las filas que devuelve la consulta PL/SQL www.kybele.urjc.es BD - PL/SQL-32 Salida de SQL*Plus: comandos SET SET COLSEP {“ “ | texto} Muestra un título y subtítulo en cada página SET PAGES[IZE] {24 | n} Nº de líneas (del resultado de una consulta, incluyendo los nombres de las columnas, las rayas de separación y las filas) mostradas por pantalla antes de volver a imprimir los nombres de las columnas. Por defecto son 24 No tiene efecto si el PAUSE no está activo (ON) SET PAU[SE] {OFF | ON} Para el scroll cuando alcanza el PAGESIZE activo, y espera un ENTER para continuar (para mostrar las siguientes PAGESIZE filas). SET LIN[ESIZE] {80 | n} Establece la máxima longitud de una línea en pantalla. Por defecto es 100 SET TERMOUT {ON | OFF} Salida por pantalla SET UNDERLINE {‘texto’} Carácter utilizado para subrayar los encabezados de columna SET FEEDBACK {6 | n | OFF | ON} Mostrar número de filas devueltas o afectadas por una sentencia SQL (definir umbral) PL/SQL www.kybele.urjc.es BD - PL/SQL-33 Salida de SQL*Plus: comandos de formato COLUMN [opciones] TITTLE [texto |OFF | ON] Muestra un título en cada página BTITTLE [texto | OFF | ON] Muestra un subtítulo en cada página PL/SQL www.kybele.urjc.es BD - PL/SQL-34 Salida de SQL*Plus: COLUMN CLE[AR] Elimina las opciones de formato previamente definidas para esta columna FOR[MAT] formato Cambia la forma en que se muestra la columna usando otro modelo de formato HEAD[ING] texto Define el encabezado para la columna (por defecto se muestra el nombre de la columna) Usar ‘|’ para incluir varias líneas JUST[IFY] {left | center | right} Define el tipo de alineación de la columna NUL[L] texto Mensaje a mostrar en lugar de valores nulos PL/SQL www.kybele.urjc.es BD - PL/SQL-35 Salida de SQL*Plus: COLUMN (opciones de formato) COLUMN <nombre_columna> FORMAT <formato> COLUMN <nombre_columna> FORMAT An Visualiza una columna de tipo CHAR o VARCHAR2 con una anchura de n caracteres alfanuméricos COLUMN <nombre_columna> FORMAT 999,999.999 Visualiza una columna de tipo NUMBER con el formato indicado COLUMN <nombre_columna> CLEAR Elimina el formato para la columna indicada COLUMN <nombre_columna> Muestra el formato actual establecido para la columna indicada PL/SQL www.kybele.urjc.es BD - PL/SQL-36 Salida de SQL*Plus COLUMN <nombre_columna> FORMAT <formato> COLUMN <nombre_columna> FORMAT An Visualiza una columna de tipo CHAR o VARCHAR2 con una anchura de n Importante: los formatos COLUMN <nombre_columna> 999,999.999 establecidosFORMAT sólo permanecen Visualiza una columna de tipo NUMBER con el formato indicado durante la sesión COLUMN <nombre_columna> DEFAULT SQL*Plus caracteres alfanuméricos Establece el formato por defecto para la columna indicada COLUMN <nombre_columna> CLEAR Si queremos que se mantengan Elimina el formato para la columna indicada · fichero glogin.sql COLUMN <nombre_columna> ·directorio $ORACLE_HOME\sqlplus\admin Muestra el formato actual establecido para la columna indicada PL/SQL www.kybele.urjc.es BD - PL/SQL-37 Creación de informes con SQL*Plus 1. 2. 3. 4. 5. 6. PL/SQL Definir sentencia SELECT Guardar en un fichero Añadir comandos de formato antes de la sentencia Incluir carácter de terminación después de la sentencia [Eliminar opciones de formato después de la sentencia] Ejecutar el fichero (START fichero.sql | @fichero.sql) www.kybele.urjc.es BD - PL/SQL-38 Creación de informes con SQL*Plus SET PAGESIZE 37 SET LINESIZE60 SET FEEDBACK OFF TTITLE 'Informe de Empleados' BTITLE 'Confidential' BREAK ON puesto COLUMN puesto HEADING 'Puesto|Categoria' FORMAT A15 COLUMN nombre HEADING 'Empleado' FORMAT A15 COLUMN salario HEADING 'Salario' FORMAT 99999 REM ** Sentencia SELECT SELECT puesto, nombre, salario FROM empleados WHERE salario < 3000 ORDER BY puesto, nombre / SET FEEDBACK ON PL/SQL www.kybele.urjc.es BD - PL/SQL-39 Utilizar Mensajes por pantalla Paquete DBMS_OUPTUT Ofrece algunas facilidades para la salida por pantalla DBMS_OUTPUT.PUT_LINE (‘Mensaje’ || variable); Activar con SET SERVEROUTPUT ON PL/SQL www.kybele.urjc.es BD - PL/SQL-40 SQL vs SQL*Plus SQL Un lenguaje Estándar ANSI Palabras clave no admiten PL/SQL SQL*Plus abreviatura Las sentencias modifican las tablas y los datos de la BD Las sentencias van al buffer Una o varias líneas van al buffer cada vez. Sin carácter de continuación El carácter ‘;’ indica fin de sentencia e invoca su ejecución www.kybele.urjc.es Un entorno Propio de ORACLE Palabras clave admiten abreviatura Los comandos no permiten manipular los datos de la BD Los comandos NO se guardan en el buffer Una línea cada vez Carácter ‘-’ indica continuación de línea No hay fin de sentencia BD - PL/SQL-41