Introducción a SQL Plus
© Kybele
SQL*Plus - 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 9.2 (ORACLE.COM)
Abramson, Abbey y Corey, “Oracle Database 10g: A
Beginner's Guide”, McGrawHill, 2006
© Kybele
SQL*Plus - 2
1
Í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
SQL*Plus - 3
© Kybele
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
© Kybele
SQL*Plus - 4
2
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
SQL*Plus - 5
© Kybele
Comando CONNECT (SQL*Plus)
CONNECT usuario/password@SID
Cambiar
el usuario
Cambiar la BD a la que nos conectamos
SHOW USER
Comprobar
© Kybele
el usuario actual
SQL*Plus - 6
3
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
SQL*Plus - 7
© Kybele
Comando DESCRIBE (SQL*Plus)
DESC[RIBE] nombre_tabla
Proporciona
una descripción de la tabla (u objeto)
Permite ver su estructura
© Kybele
SQL*Plus - 8
4
Sentencia SELECT (SQL)
Recuperar datos de una tabla
USER_TABLES
Tabla
© Kybele
del diccionario de datos Æ
información sobre la propia BD
SQL*Plus - 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 …
© Kybele
SQL*Plus - 10
5
Í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
SQL*Plus - 11
© Kybele
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
© Kybele
SQL*Plus - 12
6
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
SQL*Plus - 13
© Kybele
Editar el contenido del Buffer
‘N’ Æ cambiar línea actual
C[HANGE]/texto_anterior/texto_nuevo Æ
modificar línea actual
© Kybele
SQL*Plus - 14
7
Otros comandos para trabajar con el Buffer
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
SQL*Plus - 15
© Kybele
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
© Kybele
SQL*Plus - 16
8
Í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
SQL*Plus - 17
© Kybele
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]
© Kybele
SQL*Plus - 18
9
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
SQL*Plus - 19
© Kybele
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
© Kybele
SQL*Plus - 20
10
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
SQL*Plus - 21
© Kybele
Í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
© Kybele
SQL*Plus - 22
11
Interacción con el usuario en SQL*Plus
Definir variables de usuario
Dar valores a las variables de usuario
Usar el comando DEFINE para dar valores
Pedir valores por pantalla
SQL*Plus - 23
© Kybele
Variables de usuario
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
DEFINE
© Kybele
SQL*Plus - 24
12
Variables de sustitución
9 Una variable de sustitución es un nombre de variable precedido
por uno o dos ‘&’
9 Cuando el sistema encuentra una de estas variables, ejecuta la
sentencia reemplazándola por el valor asignado a dicha variable.
9 Si no se le ha asignado un valor a la variable, éste se pide por
pantalla
SQL*Plus - 25
© Kybele
Variables de sustitución
9 Se usa el operador && cuando no queremos que el sistema
pregunte varias veces por el valor para una misma variable de
sustitución
© Kybele
SQL*Plus - 26
13
Pedir valores por pantalla
9 Con ACCEPT podemos pedir un valor por pantalla
ACCEPT variable [datatype] [FORMAT format] [PROMPT text] [HIDE]
9 Si queremos mostrar un mensaje por
pantalla y asegurarnos de que el
usuario lo lea antes de continuar,
podemos usar el comando PAUSE
SQL*Plus - 27
© Kybele
Í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
© Kybele
SQL*Plus - 28
14
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
© Kybele
SQL*Plus - 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
© Kybele
SQL*Plus - 30
15
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
© Kybele
SQL*Plus - 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
© Kybele
SQL*Plus - 32
16
Salida de SQL*Plus: comandos SET
SET COLSEP {“ “ | texto}
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}
Muestra un título y subtítulo en cada página
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}
SET UNDERLINE {‘texto’}
Salida por pantalla
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)
SQL*Plus - 33
© Kybele
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]
© Kybele
Muestra un subtítulo en cada página
SQL*Plus - 34
17
Salida de SQL*Plus: COLUMN
CLE[AR]
FOR[MAT] formato
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}
Cambia la forma en que se muestra la columna usando otro modelo de
formato
HEAD[ING] texto
elimina las opciones de formato previamente definidas para esta
columna
Define el tipo de alineación de la columna
NUL[L] texto
Mensaje a mostrar en lugar de valores nulos
SQL*Plus - 35
© Kybele
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>
© Kybele
Muestra el formato actual establecido para la columna
indicada
SQL*Plus - 36
18
Salida de SQL*Plus
COLUMN <nombre_columna> FORMAT <formato>
COLUMN <nombre_columna> FORMAT An
Importante: los formatos
establecidos
sóloFORMAT
permanecen
COLUMN
<nombre_columna>
999,999.999
Visualiza una columna de tipo NUMBER con el formato indicado
durante la sesión SQL*Plus
COLUMN <nombre_columna> DEFAULT
Visualiza una columna de tipo CHAR o VARCHAR2 con una anchura
de n caracteres alfanuméricos
Establece el formato por defecto para la columna indicada
COLUMN <nombre_columna>
Si queremos que CLEAR
se mantengan
Elimina el formato· para
la columna
indicada
fichero
glogin.sql
·directorio
$ORACLE_HOME\sqlplus\admin
COLUMN
<nombre_columna>
Muestra el formato actual establecido para la columna indicada
SQL*Plus - 37
© Kybele
Creación de informes con SQL*Plus
1.
2.
3.
4.
5.
6.
© Kybele
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)
SQL*Plus - 38
19
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
SQL*Plus - 39
© Kybele
SQL vs SQL*Plus
SQL
© Kybele
Un lenguaje
Estándar ANSI
Palabras clave no admiten
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
SQL*Plus
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
SQL*Plus - 40
20
Puede agregar este documento a su colección de estudio (s)
Iniciar sesión Disponible sólo para usuarios autorizadosPuede agregar este documento a su lista guardada
Iniciar sesión Disponible sólo para usuarios autorizados(Para quejas, use otra forma )