Anda di halaman 1dari 41

INTRODUCCIN A SQL *PLUS

Diseo de Bases de Datos y Seguridad en la Informacin

Bibliografa Complementaria

Gennick, J. Oracle SQL*Plus: The Definitive Guide (2 edicin), OReilly, 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

2008 Grupo Kybele

ndice 1. Introduccin
a) Conexin / Desconexin b) Comandos Bsicos de SQL*Plus

2. Uso del Buffer

3. Trabajar con ficheros


4. Interaccin con el usuario 5. Salida de SQL*Plus
3

2008 Grupo Kybele

Entorno de Desarrollo

SQL*Plus es un entorno de desarrollo


Conexin a Bases de Datos Elaborar y probar sentencias SQL Soporta su propio lenguaje de comandos Gestionar Bases de Datos Escribir scripts Generar informes bsicos
4
2008 Grupo Kybele

Conexin a SQL*Plus

Arrancar SQL*Plus
Lnea de comandos Accesos Directos a la aplicacin GUI Nombre/Usuario/SID

Escritura de comandos
No distingue maysculas de minsculas Las sentencias SQL acaban con ; Los comandos de SQL*Plus no necesitan smbolo de fin. Utilizar - para un comando de varias lneas
5
2008 Grupo Kybele

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

2008 Grupo Kybele

Salir/Desconectarse de SQL*Plus

DISCONNECT
Cierra la conexin, pero mantiene abierta la aplicacin

EXIT
Termina la sesin Todos los cambios pendientes realizados sobre la BD son comprometidos Todos los cambios realizados sobre la sesin, se pierden ejemplo: DEFINE _editor
7
2008 Grupo Kybele

Comando DESCRIBE (SQL*Plus)

DESC[RIBE] nombre_tabla
Proporciona una descripcin de la tabla (u objeto) Permite ver su estructura

2008 Grupo Kybele

Sentencia SELECT (SQL) Recuperar datos de una tabla

USER_TABLES
Tabla del diccionario de datos informacin sobre la propia BD
9
2008 Grupo Kybele

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

10

2008 Grupo Kybele

ndice 1. Introduccin
a) Conexin / Desconexin b) Comandos Bsicos de SQL*Plus

2. Uso del Buffer

3. Trabajar con ficheros


4. Interaccin con el usuario 5. Salida de SQL*Plus
11

2008 Grupo Kybele

Edicin de comandos en SQL*Plus

Opciones
Utilizar el buffer de SQL*Plus Utilizar cualquier otro editor de texto ASCII

Buffer SQL*Plus
Guarda slo la ltima sentencia SQL (PL/SQL)

Editor de Texto
Es la solucin recomendada Se puede cambiar el editor por defecto

12

2008 Grupo Kybele

El buffer de SQL*Plus

L muestra el contenido del buffer / ejecuta la sentencia que hay en el buffer * seala la lnea actual

13

2008 Grupo Kybele

Editar el contenido del Buffer

N cambiar lnea actual C[HANGE]/texto_anterior/texto_nuevo modificar lnea actual

14

2008 Grupo Kybele

Otros comandos para trabajar con el Buffer


L Ln L* Lxy a texto Muestra el contenido del buffer Muestra el texto de la lnea n Muestra el texto de la lnea actual Muestra las lneas X a Y Aade texto al final de la lnea actual SQL> L SQL> L 3 SQL> L * SQL> L 10 18 SQL> a where nombre = BD SQL> c/*/nombre SQL> c/titulacion,

c/texto_ant/texto_nvo Sustituye en la lnea actual texto_ant por texto_nvo c/texto Elimina texto de la lnea actual

I[NPUT]
DEL

Aade una lnea al buffer, de forma que se pueda seguir escribiendo


Borra la lne actual

SQL> I
SQL> DEL

15

2008 Grupo 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


Aadir esa entrada en $ORACLE_HOME/sqlplus/admin/glogin.sql

16

2008 Grupo Kybele

ndice 1. Introduccin
a) Conexin / Desconexin b) Comandos Bsicos de SQL*Plus

2. Uso del Buffer

3. Trabajar con ficheros


4. Interaccin con el usuario 5. Salida de SQL*Plus
17

2008 Grupo 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]


18
2008 Grupo Kybele

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

19

2008 Grupo Kybele

Usar un editor externo en SQL*Plus

Editor externo
Opcin ms recomendable La sesin del SQL*Plus permanece activa y visible Escribir el cdigo en un fichero .sql Ejecutar el fichero: @fichero.sql

20

2008 Grupo Kybele

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 parmetros


@drop_table mitabla

21

2008 Grupo Kybele

ndice 1. Introduccin
a) Conexin / Desconexin b) Comandos Bsicos de SQL*Plus

2. Uso del Buffer

3. Trabajar con ficheros


4. Interaccin con el usuario 5. Salida de SQL*Plus
22

2008 Grupo Kybele

Interaccin 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
23
2008 Grupo Kybele

Variables de usuario
DEFINE variable definir una nueva variable UNDEFINE variable eliminar la variable DEFINE muestra todas las variables login.sql creacin de variables en cada sesin

24

2008 Grupo Kybele

Variables de sustitucin
Una variable de sustitucin es un nombre de variable precedido por uno o dos & Cuando el sistema encuentra una de estas variables, ejecuta la sentencia reemplazndola por el valor asignado a dicha variable. Si no se le ha asignado un valor a la variable, ste se pide por pantalla

25

2008 Grupo Kybele

Variables de sustitucin
Se usa el operador && cuando no queremos que el sistema pregunte varias veces por el valor para una misma variable de sustitucin

26

2008 Grupo Kybele

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

27

2008 Grupo Kybele

ndice 1. Introduccin
a) Conexin / Desconexin b) Comandos Bsicos de SQL*Plus

2. Uso del Buffer

3. Trabajar con ficheros


4. Interaccin con el usuario 5. Salida de SQL*Plus
28

2008 Grupo Kybele

Salida de SQL*Plus

Justificacin por defecto


A la izquierda: fechas y tipos carcter A la derecha: tipos numricos

Nombres de columnas
Maysculas por defecto

29

2008 Grupo Kybele

Salida de SQL*Plus: uso de alias

Cambiar el encabezado de una columna


til cuando se realizan clculos El alias se pone despus 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

30

2008 Grupo Kybele

Salida de SQL*Plus: concatenar columnas Concatenar el valor de una o ms columnas


Smbolo utilizado: || Crea una columna que es el resultado de concatenar las columnas seleccionadas

31

2008 Grupo Kybele

Salida de SQL*Plus: uso de literales

Incluir literales en el resultado de una consulta


Al construir la consulta se incluye una expresin entre comillas SIMPLES y se utiliza el operador || La expresin se incluye en la salida para cada una de las filas que devuelve la consulta

32

2008 Grupo Kybele

Salida de SQL*Plus: comandos SET


SET COLSEP { | texto} SET PAGES[IZE] {24 | n}
Muestra un ttulo y subttulo en cada pgina

SET PAU[SE] {OFF | ON}

N de lneas (del resultado de una consulta, incluyendo los nombres de las columnas, las rayas de separacin 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)
Para el scroll cuando alcanza el PAGESIZE activo, y espera un ENTER para continuar (para mostrar las siguientes PAGESIZE filas). Establece la mxima longitud de una lnea en pantalla. Por defecto es 100 Salida por pantalla

SET LIN[ESIZE] {80 | n}

SET TERMOUT {ON | OFF}


SET UNDERLINE {texto}

SET FEEDBACK {6 | n | OFF | ON}

Carcter utilizado para subrayar los encabezados de columna

Mostrar nmero de filas devueltas o afectadas por una sentencia SQL (definir umbral)
2008 Grupo Kybele

33

Salida de SQL*Plus: comandos de formato

COLUMN [opciones] TITTLE [texto |OFF | ON]


Muestra un ttulo en cada pgina

BTITTLE [texto | OFF | ON]


Muestra un subttulo en cada pgina

34

2008 Grupo Kybele

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 lneas

JUST[IFY] {left | center | right}


Define el tipo de alineacin de la columna

NUL[L] texto
Mensaje a mostrar en lugar de valores nulos
35

2008 Grupo 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 alfanumricos

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
36
2008 Grupo Kybele

Salida de SQL*Plus
COLUMN <nombre_columna> FORMAT <formato> COLUMN <nombre_columna> FORMAT An

Importante: los formatos COLUMN <nombre_columna> FORMAT 999,999.999 establecidos slo permanecen Visualiza una columna de tipo NUMBER con el formato indicado COLUMN <nombre_columna> DEFAULT durante la sesin SQL*Plus
Establece el formato por defecto para la columna indicada Elimina el formatoSi queremos que se mantengan para la columna indicada
fichero glogin.sql <nombre_columna> directorio $ORACLE_HOME\sqlplus\admin

Visualiza una columna de tipo CHAR o VARCHAR2 con una anchura de n caracteres alfanumricos

COLUMN <nombre_columna> CLEAR


COLUMN

Muestra el formato actual establecido para la columna indicada

37

2008 Grupo Kybele

Creacin de informes con SQL*Plus


1. 2. 3. 4.

5.
6.

Definir sentencia SELECT Guardar en un fichero Aadir comandos de formato antes de la sentencia Incluir carcter de terminacin despus de la sentencia [Eliminar opciones de formato despus de la sentencia] Ejecutar el fichero (START fichero.sql | @fichero.sql)
2008 Grupo Kybele

38

Creacin 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 39
2008 Grupo Kybele

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

40

2008 Grupo Kybele

SQL vs SQL*Plus
SQL
Un lenguaje Estndar 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 lneas van al buffer cada vez. Sin carcter de continuacin El carcter ; indica fin de sentencia e invoca su ejecucin

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 lnea cada vez Carcter - indica continuacin de lnea No hay fin de sentencia

41

2008 Grupo Kybele

Anda mungkin juga menyukai