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

Documentos relacionados