Sei sulla pagina 1di 22

Comandos SQL-PLUS

Introducción
„ SQL-PLUS es una herramienta cliente
de Oracle
„ Ejecución de sentencias
– Desde el prompt de SQL-PLUS (finalizar con ‘;’)
– Desde buffer: SQL-Plus trabaja por un buffer por
defecto que almacena siempre la última
sentencia SQL (finalizar con ‘/’)
– Desde fichero denominado *.sql (finalizar con ‘;’)

1
Ejecución de sentencias (I)
„ Desde buffer
– Ed : invoca al editor
– R | Run : ejecuta el contenido del buffer
– L | List : lista el contenido del buffer (completo)
– L n | L n m | ... : lista el contenido de las líneas
que se especifican
– Del | Delete : borra la línea activa (por defecto
la primera línea del buffer)
– Host : devuelve el control al S.O. (salir mediante
exit)

Ejecución de sentencias (II)


„ Desde fichero / A fichero (1/2)
– [Start | @]<fichero> : ejecuta un fichero *.sql
– Get <fichero> : introduce el fichero en el buffer
sin ejecutarlo
– Save <fichero> : guarda el contenido del buffer
en el fichero
– Save <fichero> append : concatena con la
información anterior

2
Ejecución de sentencias (III)
„ Desde fichero / A fichero (2/2)
– Spool <fichero> : a partir de entonces todo lo
que se introduce por pantalla se
guarda en el fichero
– Spool on : a partir de entonces todo lo que se
introduce por pantalla se guarda en el
buffer (activa el spool)
– Spool off : desactiva el spool
– Spool : muestra el nombre del fichero de salida

Otras sentencias
„ Mostrar tablas
– Desc <tabla> : muestra la estructura de la tabla
– Select * from <tabla> : visualiza todas los
campos y registros de una tabla
– Column <columna> justify [C|center|L|left
|R|rigth]: justifica la columna de la tabla

3
Lenguaje de Definición de Datos

(LDD)

Tipos de Datos Nuevos


„ VARCHAR2 (n) : alfanumérico (hasta 240)
„ NUMBER (n,p) : números con signo y
punto decimal
n = número total de dígitos a almacenar
p = dígitos a la derecha del punto decimal (Si se omite solo
se podrá almacenar hasta 40 dígitos)

„ DATE : se almacenan como una cadena de


caracteres de 7 bytes (por defecto con
formato dd/mm/aa).
8

4
Tipos de Datos Nuevos
„ LONG : cadenas de caracteres de hasta 64
K (solo una por tabla). Normalmente para
campos resumen.
Observaciones:
* No se pueden indexar
* No se pueden utilizar en cláusulas WHERE
* No pueden ser seleccionadas en consultas anidadas
* No pueden aparecer en ningún tipo de expresiones
* No pueden aparecer en consultas que estén unidas
a otras mediante UNION|MINUS|INTERSECT

Tratamiento de Fechas
„ SYSDATE : fecha actual (SELECT SYSDATE
FROM DUAL;)
„ Las fechas en ORACLE se almacenan como
números (facilidad de conversión a otros
formatos).
„ Aritmética de fechas:
Fecha + X Añade X días a la fecha seleccionada
Fecha - X Resta X días a la fecha selecciona
Fecha - X/24 Resta X horas a la fecha
seleccionada (resultados de tipo
fecha) Fecha - Fecha Devuelve el número de
días transcurridos entre dos fechas
10

5
Tratamiento de Fechas
„ Conversión de fechas :

TO CHAR (fecha, ‘formato’): Convierte


datos de tipo fecha en datos de tipo carácter con
el formato indicado.

TO DATE (fecha, ‘formato’): Convierte


datos de tipo carácter con el formato indicado,
en datos de tipo fecha.

11

Diferencias con SQL*Base


„ Índice para la clave primaria no necesario

„ Campos de clave primaria NOT NULL por


defecto

„ La autocombinación se implementa
directamente en la creación de la tabla

12

6
Similitudes con SQL*Base
„ Borrados y modificaciones (RESTRICT y
por defecto)

„ No están permitidos los dominios

„ Se permiten los CHECKS y no las


asreciones

13

Creación de Tablas
„ CREATE TABLE
CREATE TABLE <nombre_de_la_tabla>
(
<nombre_de_la columna1> <tipo_de_datos> [(tamaño)] [NOT NULL] [DEFAULT],
..........................
<nombre_de_la_columnaN> <tipo_de_datos> [(tamaño)] [NOT NULL]
[DEFAULT],
[UNIQUE [nombre]({<lista_de_columnas>})],
[PRIMARY KEY [nombre]({<lista_de_columnas>})],
[CHECK [nombre] <condición>],
[FOREIGN KEY [nombre] ({<lista_de_columnas>})
REFERENCES <nombre_de_tabla_referenciada>
({<lista_de_columnas>}) [ON DELETE CASCADE] ]
);

14

7
Creación de Tablas
„ OBSERVACIONES:

* Los nombres de las tablas de un usuario no se pueden repetir

* Los nombres de las columnas deben ser únicos dentro de


cada tabla

* Los nombres pueden tener como máximo 30 caracteres

* Cada tabla puede contener hasta 254 columnas

15

Modificación de Tablas
„ ALTER TABLE

* Cambiar la definición de una columna para permitir valores nulos o


no, así como el tipo de datos

* Aumentar o disminuir el tamaño de una columna

* Añadir columnas

16

8
Modificación de Tablas
„ ALTER TABLE
{ADD|MODIFY|DROP|DISABLE|ENABLE}

ALTER TABLE <nombre_de_la_tabla> ADD


(<nombre_de_la_nueva_columna1> <tipo_de_datos> [NOT NULL]
[constraint], ...........................
<nombre_de_la_nueva_columnaN> <tipo_de_datos> [NOT NULL] [constraint]);

ALTER TABLE <nombre_de_la_tabla> ADD


(CONSTRAINT <nombre_de_constraint> <constraint> <columna|s>);

17

Modificación de Tablas
„ ALTER TABLE
{ADD|MODIFY|DROP|DISABLE|ENABLE}

ALTER TABLE <nombre_de_la_tabla> MODIFY


(<nombre_de_la_columna1> <tipo_de_datos> [NULL|NOT NULL]
[constraint], ...........................
<nombre_de_la_columnaN> <tipo_de_datos> [NULL|NOT NULL]
[constraint]);

ALTER TABLE <nombre_de_la_tabla> DROP


(<constraint> <nombre_de_la_columna|s> CASCADE;

ALTER TABLE <nombre_de_la_tabla> {DISABLE|ENABLE}


(<constraint> <nombre_de_la_columna|s> CASCADE;

18

9
Modificación de Tablas
„ Observaciones:

* MODIFY: para modificar el tipo o el tamaño de una columna


ésta no debe contener valores

modificar una columna NULL a NOT NULL implica


que no haya ninguna fila con valor NULL para esa
columna, o bien que la tabla esté vacía

19

Borrado de Tablas
„ DROP TABLE <nombre_de_tabla>
Cuando se ejecuta el comando DROP:

* La definición de la tabla se elimina del catálogo.

* El espacio que ocupaba la tabla se recupera para otros


elementos de la base de datos

* Se borran todas las filas de la tabla sin ninguna alerta

* La ejecución de este comando elimina la tabla


definitivamente

20

10
Renombrado de Tablas
„ RENAME <antiguo_nombre> TO <nuevo_nombre>
Cuando se ejecuta el comando RENAME:

* El nuevo nombre se almacena en el catálogo y la tabla no


podrá volver a ser referenciada con el nombre antiguo

* No se produce ninguna repercusión sobre los datos

* El propietario de la tabla es el único que puede


cambiar el nombre

21

Secuencias
„ Secuencias. Generación de números
secuenciales (autonuméricos) para las
columnas
CREATE SEQUENCE <nombre_de_secuencia>
[INCREMENT BY entero]
[START WITH entero]
[MAXVALUE entero| NOMAXVALUE]
[MINVALUE entero| NOMINVALUE]
[CYCLE|NOCYCLE]
[CACHE entero|NOCACHE]
[ORDER|NORDER]

22

11
Secuencias
„ Observaciones:

* <nombre_de_columna>.CURRVAL y
<nombre_de_columna>.NEXTVAL se utilizan para consultar e insertar
los valores de la secuencia que contiene una columna

* Una vez definida la secuencia se puede alterar con ALTER


SEQUENCE

23

Diccionario de Datos

Introducción SQL-Plus 24

12
Introducción
„ Información sobre todos los objetos de
la BD
„ Consultado por:
– Oracle
– Usuarios: sólo las tablas sobre las que tiene
privilegios
„ Al inicializar la BD se crean una serie de
vistas

25

Grupos de vistas
„ USER_*: vistas para los objetos (tablas,
disparadores, ...) creados por un
usuario o los privilegios concedidos por
mí.
„ ALL_*: objetos creados por un usuario
a los que se puede acceder porque nos
ha dado privilegios de acceso
„ DBA_*: contienen información sobre la
BD. Sólo pueden acceder los DBA
26

13
Grupos de vistas. Ejemplos
„ Select
[<nombre_objeto>|<tipo_objeto>]
from USER_objects;
– Select * from user_tables;
– Select tabla1 from user_tables;
– Select * from user_constraints;
– Select restricción2 from user_constraints where
table_name = ‘tabla2’;
– Select * from user_sys_privs; (todos mis privilegios)
– Select * from user_tab_privs; (todos los privilegios
que he otorgado sobre mis tablas)
27

Lenguaje de Control de Datos

(LCD)

Introducción SQL-Plus 28

14
Introducción
„ Comandos usados por el BDA o el
propietario para conceder/revocar
permisos de acceso a los objetos de la
BD.

29

Roles (I)
„ Conjunto de privilegios/restricciones
asignados a usuarios o a otros roles.

„ Oracle tiene 5 roles predefinidos:


– CONNECT: permite conexión a BD y consulta de
los datos de mis esquemas
– RESOURCE: permite la gestión de objetos de mi
esquema (creación, modificación,
borrado de vistas, tablas, ...)
– DBA: permite la administración de la BD
30

15
Roles (II)
– EXP_FULL_DATABASE: permite la utilización de
la herramienta EXPORT de la BD
– IMP_FULL_DATABASE: permite la utilización de
la herramienta IMPORT de la BD
„ Creación de roles:
– Sintaxis:
CREATE ROLE <nombre_rol>;
– Ejemplos:
CREATE ROLE rol1; (crea un nuevo rol)
GRANT rol1 TO <user>; (le asigna ese rol a un usuario)
GRANT <privilegios> ON <objetos> TO rol1; (le otorga
privilegios a ese rol)
31

Privilegios. Tipos (I)


„ Pueden ser de dos tipos:
– Privilegios sobre objetos
„ ALTER: modificar su estructura
„ DELETE: borrar objeto o parte de él (registros, ...)
„ INDEX: crear un índice sobre el objeto
„ INSERT: añadir registros en tablas o vistas
„ SELECT: seleccionar registros en tablas, vistas o
secuencias
„ REFERENCES: crear claves ajenas a una tabla
„ UPDATE: actualizar registros de tablas o vistas

32

16
Privilegios. Tipos (II)
– Privilegios de sistema
„ ALTER ANY INDEX
„ ALTER ANY SECUENCE
„ CREATE ANY TABLE
„ CREATE TABLE
„ CREATE USER
„ INSERT ANY TABLE
„ SELECT ANY TABLE
„ GRANT ANY PRIVILEGE
„ DROP ANY VIEW
„ LOCK ANY TABLE
„ ...
33

Privilegios. Otorgar (III)


„ GRANT: concede privilegios de ambos
tipos
– Sintaxis:
GRANT [ALL] <privilegios> ON <objeto> TO
[<user | rol | public>] [WHITH GRANT OPTION]
– Ejemplo:
„ GRANT select, insert ON tabla1 TO public;
„ GRANT delete ON vista1 TO user1 WITH GRANT OPTIONS;
„ GRANT ALL ON tabla2 (columna1, columna2) TO rol1;
„ GRANT lock any table TO user2;

34

17
Privilegios. Revocar (IV)
„ REVOKE: revoca privilegios
– Sintaxis:
REVOKE [ALL] <privilegios> ON <objeto> FROM
[<user | rol | public>] [CASCADE CONSTRAINTS]
– Ejemplo:
„ REVOKE create any table FROM user1;
„ REVOKE delete ON vista1 FROM rol1;
„ REVOKE insert ON tabla1 FROM public CASCADE
CONSTRAINTS;

35

SGBD Oracle

Introducción SQL-Plus 36

18
Introducción
„ Arquitectura Cliente / Servidor

Servidor - almacenamiento, gestión de transacciones,


recuperación, etc…

Cliente - interpretación y visualización de la información

37

Introducción
„ Características
– Manejo de grandes BD (hasta de terabytes)

– Usuarios concurrentes

– Sistemas Distribuidos

– Entornos Replicados

– Portabilidad

38

19
Introducción
„ Servidor

– Base de datos Relacional-orientada a Objetos

– Lenguaje de definición: SQL

– Lenguaje de Manipulación: SQL

– PL/SQL extensión procedural del SQL

39

Introducción
„ Usuarios

– Administradores de la BD

– Encargados de la seguridad

– Desarrolladores de Aplicaciones (Analistas y Programadores)

– Administradores de Aplicación

– Usuarios de la BD

40

20
Introducción
„ Estructura de BD ORACLE
Uno o varios Tablespace
– Estructuras Lógicas
Objetos dentro de un esquema de usuario

Uno a más ficheros de datos


(asociados a los tablespace)
– Estructuras Físicas
Dos o más ficheros redo log

Uno o mas ficheros de control

41

Introducción
„ Identificación de Versiones de
Software ORACLE

V.x.i.j

Nº Versión Nº Parche Plat.

Nº Rel. Manten. Nº Parche

42

21
Introducción
„ Identificación de Versiones de
Software ORACLE

SELECT *

FROM product_component_version ;

43

22

Potrebbero piacerti anche