Está en la página 1de 4

3 Ingeniero Tcnico en Informtica de Sistemas

Asignatura: Fundamentos de Bases de Datos

Curso: 2006/7

PRCTICA T1. El entorno SQL*Plus de Oracle


Objetivos

Adquirir destreza en el uso de las capacidades ofrecidas por el entorno SQL*Plus de Oracle

Modalidad: laboratorio cerrado (tutorial)


Contenidos
SQL*Plus es la interfaz de usuario interactiva para el SGBD Oracle que se emplear para la
escritura, depuracin y ejecucin de sentencias SQL de definicin, consulta y manipulacin de
datos almacenados en la base de datos (prcticas B1, B2, T2 y B3).
Esta prctica consiste en la exposicin de las caractersticas bsicas de SQL*Plus, y la realizacin
por parte de los alumnos de una serie de ejemplos facilitados por la profesora, con el objetivo de
ejercitar los conceptos conforme van siendo explicados.
Ms concretamente, se describe y practica el uso de los comandos y variables del entorno
SQL*Plus, cmo conectarse a una determinada cuenta de usuario de la base de datos, cmo
escribir, depurar, ejecutar y almacenar sentencias SQL, cmo dar formato a los resultados para su
correcta visualizacin, cmo construir y ejecutar scripts de base de datos, etc.
El

entorno de prcticas
Servidor NT: SGBDR Oracle9i (Release 9.2.0.1.0)
Intranet: SQL*Net por encima de TCP/IP
Equipos Cliente de Oracle sobre Windows (laboratorios de prcticas)

Caractersticas

de SQL*Plus

Interfaz de usuario interactiva para el SGBD Oracle


Permite:
- Escritura de sentencias de manipulacin y definicin de datos
- Depuracin de dichas sentencias
- Visualizacin de los resultados en pantalla (o su volcado a un fichero de texto)
Es posible dar formato (presentacin) al resultado de una consulta
Y consultar la ayuda en lnea

Conexin

con la Base de Datos desde SQL*Plus

Autenticacin del usuario: usuario (cuenta de BD, login) y contrasea (password)

Identificacin de la Base de Datos mediante la cadena de host (cadena de conexin, connect


string) que incluye los nombres del equipo servidor, protocolo de comunicacin y base de datos
- Para la conexin desde los laboratorios, utilizaremos la cadena de conexin orcl92
- Si se trabaja con una base de datos local (Personal Oracle), no se necesita cadena de
host (se deja en blanco)

Formas de conexin a una cuenta de la base de datos:


- Al iniciar SQL*Plus (ventana Conectar),
- Desde dentro de SQL*Plus: connect <cuenta>/<contrasea>@<cadena-host>
Deteccin y correccin de errores: omisin de la contrasea o de la cadena de host

Cambio de contrasea de un usuario (informacin almacenada en el Diccionario de Datos)


ALTER USER fbdsXXX IDENTIFIED BY nueva_contrasea ; (sentencia LDD)
Utilice esta sentencia para modificar su clave de acceso a la base de datos; cambie
fbdsXXX por su nombre de grupo

Curso 2005/6. 3 ITI Sistemas. Fundamentos de Bases de Datos. Prctica T1. El entorno SQL*Plus de Oracle- 1/4

Sentencias

SQL en SQL*Plus

El prompt tiene la apariencia siguiente: SQL>

Se escribirn en SQL de Oracle (dialecto o implementacin del estndar SQL-92)


- PL/SQL es una extensin del SQL de Oracle que incluye sentencias de control
(IF..THEN..ELSE, iteraciones, etc.)

Una sentencia SQL puede constar de varias lneas para mayor legibilidad (un retorno de
carro (ENTER) no acaba la sentencia, sino que inicia una nueva lnea en la misma)

Las sentencias SQL terminan con un ; (si tras l se pulsa ENTER, la sentencia se evaluar)

El sistema almacena la consulta en un bfer, que es un fichero (de texto) que se llama
afiedt.buf y se guarda en el directorio actual de trabajo

El bfer siempre contiene la ltima sentencia SQL ejecutada


- Observe que tras la sentencia no aparece el carcter ; sino / (que es un comando del
SQL*Plus, explicado ms abajo)

- Para visualizar el contenido del bfer puede invocarse al editor, mediante el comando
EDIT de SQL*Plus (explicado ms abajo)
Si surge el error no es posible crear el fichero de seguridad
afiedt.buf (ya sea en la unidad C:\ o en F:\), significa que no tiene
permiso de escritura sobre dicho directorio de la unidad
Por tanto, debe establecer el directorio de trabajo actual en una unidad sobre
la que tenga permiso de escritura, como la unidad D:\
Para ello, en la ventana de SQL*Plus, intentar Abrir (opcin de men) un
fichero ubicado ah (en D:\), pero Cancelar la operacin al final; as, dicho
directorio queda como activo (o actual)
Pruebe las siguientes sentencias.
Si el sistema encuentra algn error, trate de corregirlo utilizando el bfer y los comandos
propios del SQL*Plus
-- Esto es una lnea de comentario
REM Esto es otra lnea de comentario

SELECT * FROM CASARURAL;


SELECT C.nombre, E.nombre
FROM CASARURAL C, EMPLEADO E
WHERE C.idcasa = E.idcasa
ORDER BY C.nombre, E.nombre;
-- Crear una tabla: sustituya XX por su nmero de grupo:

CREATE TABLE GRUPO_FBDSXXX (


integrantes
NUMBER(1) CHECK integrantes IN (1, 2),
alumno1
VARCHAR(30) NOT NULL,
alumno2
VARCHAR(30),
prac_actual CHAR(2) NOT NULL CHECK prac IN (T1,B1,B2,T2,B3)
);
-- Introduzca una fila con datos reales:

INSERT INTO GRUPO_FBDSXXX


VALUES (<nmero personas>, <un nombre>, <otro nombre o null>, <prctica>);

Cancelacin de la ejecucin de una consulta: pulsando las teclas CONTROL+C

Visualizacin del contenido de las vistas del Diccionario de Datos (en Oracle se llama as
al Catlogo): ALL_TABLES, ALL_USERS, ALL_VIEWS, TAB, TABS(USER_TABLES), ...
Pruebe a ver el contenido de las vistas anteriores

Curso 2005/6. 3 ITI Sistemas. Fundamentos de Bases de Datos. Prctica T1. El entorno SQL*Plus de Oracle- 2/4

Comentario: Preparado para


que salga el error de que faltan los
parntesis que deben encerrar el
CHECK
Comentario: Preparado para
que salga el error de que no se usa
el nombre de columna correcto
prac_actual

Comentario: SELECT
table_name FROM
ALL_TABLES WHERE owner =
CASASRURALES;

Comandos

propios del entorno SQL*Plus

No son sentencias SQL, por eso no necesitan finalizar con ;

DESC[RIBE] <nombre_tabla>
- DESCRIBE, o abreviado DESC, muestra informacin sobre las columnas de la tabla
denominada <nombre_tabla>, es decir, tipo de datos, longitud, si admite el nulo...
Pruebe a ejecutar este comando con las tablas CASARURAL, HABITACION y TIPOCTIVIDAD

EDIT
- Invoca el editor de textos (por defecto el Bloc de Notas, Notepad) con el contenido del
bfer y permite su modificacin
- Cuando se invoca EDIT desde SQL*Plus, mientras que no se abandona la edicin (se
sale del editor grabando o descartando los cambios), la sesin SQL*Plus permanece
inactiva o colgada (no es posible ejecutar ninguna sentencia SQL). Por tanto, si se desea
trabajar simultneamente con la sesin SQL*Plus y el editor, es necesario abrir este
ltimo desde fuera del entorno SQL*Plus

L[IST] muestra el contenido del bfer

R[UN]
- Muestra y ejecuta el contenido del bfer (sentencia SQL). Este comando permite
ejecutar repetidamente la sentencia contenida en el bfer

/
- Ejecuta el contenido del bfer. Tambin permite ejecutar repetidamente la sentencia
contenida en el bfer. A diferencia de RUN, no muestra previamente la sentencia

EDIT <nombre_fichero.extensin>
- Abre el editor Notepad con el contenido del fichero indicado
- Si no se indica extensin, por defecto se asume .sql

SAVE <nombre_fichero.extensin>[REP[LACE]]
- Guarda el contenido del bfer en el fichero indicado, dentro del directorio de trabajo
actual. Si no se indica extensin, por defecto se toma .sql
- Si el fichero ya existe y se desea sobrescribirlo es necesario incluir REPLACE (o
abreviado REP)

STA[RT] <nombre_fichero.extensin>
- Ejecuta el contenido del fichero indicado (que debe ser un fichero script (o guin) de
base de datos, es decir, un fichero de texto que contiene sentencias SQL)
- Si no se indica extensin, por defecto se asume .sql

GET <nombre_fichero.extensin >


- Carga en el bfer el contenido del fichero indicado (pero no lo ejecuta)
- Si no se indica extensin, por defecto se asume .sql

SPO[OL] <nombre_fichero.extensin>... SPOOL OFF


- Crea un fichero con el nombre indicado en el que, a partir de ese momento, se ir
almacenando todo lo que vaya apareciendo por pantalla (eco): sentencias, resultados,
mensajes de error...
- Si no se indica extensin para el fichero, por defecto se toma .lst
- El eco finaliza cuando se escribe SPOOL OFF

EXIT (o QUIT) Finaliza la sesin de trabajo y cierra el entorno SQL*Plus


- Cerrar la ventana de SQL*Plus sin haber ejecutado EXIT o QUIT finaliza la sesin de
igual forma que si hubiera ocurrido un error

Curso 2005/6. 3 ITI Sistemas. Fundamentos de Bases de Datos. Prctica T1. El entorno SQL*Plus de Oracle- 3/4

Comentario: C:/ORANT/BIN

Comandos

SQL*Plus de formato de visualizacin de los datos

SHOW ALL muestra por pantalla el valor actual de las variables del entorno SQL*Plus

SET PAGES[IZE] <n de filas>


- N de lneas (del resultado de una consulta) mostradas por pantalla antes de volver a
imprimir los nombres de las columnas de nuevo. Por defecto suele ser 24
- No tiene efecto si el PAUSE no est activo (ON)

SET PAU[SE] ON y SET PAU[SE] OFF


- Para el scroll cuando alcanza el PAGESIZE activo, y espera un ENTER para continuar
(para mostrar las siguientes PAGESIZE filas). Por defecto est OFF

SET LIN[ESIZE] <n>


- Establece la mxima longitud de una lnea en pantalla. Por defecto suele ser 100

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, donde cada
9 significa cualquier dgito del 0 al 9.
- COLUMN <nombre_columna> DEFAULT
Establece el formato por defecto para la columna indicada
- COLUMN <nombre_columna> CLEAR
Elimina el formato para la columna indicada
- COLUMN <nombre_columna>
Muestra el formato actual establecido para la columna indicada

Comentario: Poner a 10 y
hacer SELECT * FROM
ACTIVIDAD;

Ms informacin en el manual de referencia rpida de SQL*Plus (Quick Reference)


Pruebe a dar formato a las columnas del resultado de esta sentencia:
SELECT C.nombre, H.idhabitacion, H.numcamas, H.precio
FROM CASARURAL C, HABITACION H
WHERE C.idcasa = H.idcasa AND C.idcasa IN (C01, C02);

Importante: los formatos establecidos slo permanecen durante la sesin SQL*Plus


Cmo

proceder al resolver las consultas de las prcticas

Escribir las sentencias SQL (SELECT, INSERT, DELETE, UPDATE...) en el entorno SQL*Plus

Ejecutarlas con ;, RUN o /

Depurarlas hasta que funcionen correctamente, utilizando el editor del bfer y


ejecutndolas tantas veces como sea necesario

Una vez que las sentencias sean correctas, guardarlas en un fichero en el directorio de
trabajo, denominado por ejemplo pr_nn.sql (donde pr es el identificador de la prctica (b1,
b2, b3...) y nn es el nmero del ejercicio), mediante el comando SAVE pr_nn

A partir de ese momento, las sentencias podrn ser ejecutadas mediante START pr_nn, y
editadas con EDIT pr_nn

Para elaborar la documentacin, puede utilizarse SPOOL para almacenar en un fichero


tanto el enunciado de las sentencias correspondientes a cada ejercicio como los resultados
obtenidos con la ejecucin de las mismas. El contenido de ese fichero puede luego ser
editado (con Word, por ejemplo) con el fin de dotarlo del formato de presentacin adecuado
para su perfecta lectura y comprensin, hasta completar el informe de la prctica.

Curso 2005/6. 3 ITI Sistemas. Fundamentos de Bases de Datos. Prctica T1. El entorno SQL*Plus de Oracle- 4/4

Comentario: nombre A20 ;


idhabitacion A2; numcamas
9; precio 99.99

También podría gustarte