Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Oracle Sqlplus LDD LMD
Oracle Sqlplus LDD LMD
Introduccin a ORACLE
Sistema Gestor de Bases de Datos Relacionales (SGBDR), que
DB
DB
manager
Client1
Arquitectura Lgica
Client2
Client3
Arquitectura Comunicaciones
Bases de Datos
ORACLE y su SQL+
Introduccin al SQL+
Identificacin de Usuario
Una mquina con el Sw cliente de Oracle tendr el SQL+
nombre
contrasea
cadena de conexin
(identificacin servidor)
Introduccin al SQL+
Cambio de Contrasea
Introduccin al SQL+
Permite introducir una sentencia SQL
SQL.
Tiene un buffer que almacena la ltima sentencia ejecutada
Proporciona un editor de lnea para modificar el buffer
Introduccin al SQL+
Comandos SQL+ (I)
Comandos de sesin
conectar a un servidor
disconnect
quit / exit
host
Introduccin al SQL+
Comandos SQL+ (II)
Operaciones
p
con el Buffer
Ed invoca al editor
L n | L n m | ...
lista el contenido de las lneas que se especifican.
Introduccin al SQL+
Comandos SQL+ (III)
Operaciones con el texto del Buffer
[A | Append] texto
concatena el texto a la ltima lnea del buffer
Input texto
inserta nuevas lneas a continuacin de la lnea activa
Introduccin al SQL+
Comandos SQL+ (IV)
Operaciones con ficheros
Ed <fichero> edita
di ell fifichero
h
[Start | @] <fichero> ejecuta un fichero *.sql
Get <fichero> introduce el fichero en el buffer sin
ejecutarlo
Introduccin al SQL+
Comandos SQL+ (V)
Operaciones
p
de spooling
p
g
LDD
definicin
insercin
borrado
modificacin
recuperacin
actualizacin
manejo
usuarios,
sesin, ...
datos
oobjetos
creacin
i
supresin
alteracin
LMD
control
(LDD)
decimal
n = nmero total de dgitos a almacenar
p = dgitos a la derecha del punto decimal (Si se omite solo se podr almacenar
hasta 40 dgitos)
Tratamiento de Fechas
SYSDATE : fecha actual (SELECT SYSDATE
FROM DUAL;)
Las fechas en ORACLE se almacenan como
nmeros (facilidad de conversin a otros formatos).
Aritmtica de fechas:
Fecha + X
Aade X das a la fecha seleccionada
Fecha - X
Resta X das a la fecha selecciona
Fecha - X/24 Resta X horas a la fecha seleccionada
(resultados de tipo fecha)
Fecha - Fecha Devuelve el nmero de das transcurridos entre dos
fechas
Tratamiento de Fechas
Conversin de fechas :
TO CHAR (fecha,
(fecha formato):
formato ): Convierte datos de
tipo fecha en datos de tipo carcter con el formato
indicado.
10
Modificacin de Tablas
ALTER TABLE
Modificacin 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;
11
Modificacin de Tablas
Observaciones:
MODIFY: para modificar el tipo o el tamao de una columna
Borrado de Tablas
DROP TABLE <nombre_de_tabla>
C
Cuando
d se ejecuta
j
t ell comando
d DROP:
DROP
de datos
Se borran todas las filas de la tabla sin ninguna alerta
La ejecucin de este comando elimina la tabla definitivamente
12
Renombrado de Tablas
RENAME <antiguo_nombre> TO <nuevo_nombre>
C
Cuando
d se ejecuta
j
t ell comando
d RENAME:
RENAME
Secuencias
Secuencias. Generacin de nmeros
13
Introduccin
Insercin de tuplas
Borrado de tuplas
Actualizaciones
Modificacin de tuplas
Consultas
14
Actualizacin: Insercin
Insercin de valores :
INSERT INTO <nombre_de_la_tabla>
[<nombre_de_la columna1>, ...., <nombre_de_la columnaN>]
VALUES (<valor1>, ....,<valorN>);
Tipos:
* Insercin total de columnas : - el orden de los valores debe coincidir
con el de la definicin de las columnas.
- si algn valor es nulo se debe especificar
con la constante NULL.
* Insercin parcial de columnas: - se deben especificar las columnas
(orden).
Actualizacin: Insercin
Insercin de tuplas mediante una subconsulta
INSERT INTO <nombre_de_tabla>
[(<nombre_de_columna1>, ....,<nombre_de_columnaN>)]
SELECT <lista_de_columnas_y_expresiones>
FROM <lista_de_tablas>
WHERE <criterios_de_seleccin>;
* Se insertan los datos que figuran en la lista de tablas y que cumplan los criterios
de seleccin.
* El orden de las columnas en la clasula SELECT debe coincidir con el orden de
las columnas en la clasula INSERT.
15
Actualizacin: Insercin
Insercin de tuplas sin especificar el valor de las
columnas
INSERT INTO <nombre_de_la_tabla>
VALUES (&columna1, &columna2...., &columnaN);
Consideraciones generales
* Cuando se utilice el comando INSERT parcial, todas las columnas que no estn
especificadas tomarn valores nulos
nulos.
* Los valores de tipo CHAR y DATE deben especificarse con comillas simples.
* La insercin de datos de tipo DATE cuyo formato no coincida con el que tiene
por defecto el SGBD se insertarn utilizando la funcin
TO_DATE (fecha_a_insertar, formato)
Actualizacin: Borrado
Borrado de todas las tuplas
DELETE [FROM] <nombre_de_tabla>
16
Actualizacin: Modificacin
Modificacin de una tupla
UPDATE <nombre_de_tabla>
SET columna =<nuevo_valor> [, columna = <nuevo_valor>]
[WHERE <criterio_de_seleccin_del_registro>];
Actualizacin: Modificacin
Consideraciones generales
* Si se omite la clusula WHERE se modifican todas las filas de la tabla.
* El nuevo valor de la columna se puede obtener mediante expresiones,
constantes o subconsultas.
*C
Cuando
d se utilizan
tili
subconsultas,
b
lt estas
t deben
d b recuperar tantas
t t columnas
l
como se estn modificando.
17
Consultas
Consulta
SELECT {* | [DISTINCT ] <columna>
<col mna> [,
[ <columna>
<col mna> ] | <expresin>}
<e presin>}
FROM <tabla>[, <tabla>]
[WHERE <condicin> [<condicin>]
[GROUP BY <columna> [, <columna>]
[HAVING <condicin> [<condicin>] ]]
[ORDER BY <columna> [, <columna>] [ASC|DESC] ] ];
Ejemplos:
SELECT * FROM PROFESOR;
SELECT SYSDATE FROM DUAL;
SELECT Rownum, Nombre_P, Titulacin
FROM PROFESOR;
Consultas
Consideraciones
* Entre las condiciones del WHERE debern incluirse las condiciones de
combinacin de las tablas :
- Combinacin comn : operador de igualdad.
- Combinacin no comn: operadores <, >, <>, BETWEEN,...
- Autocombinacin : combinacin de una tabla consigo misma.
- Combinacin exterior : selecciona, adems, las filas de una tabla
que no tienen
ti
correspondencia
d i con alguna
l
de la otra. (columnaI = columnaJ(+)).
18
Consultas
Consideraciones
<condicin> :
- condiciones booleanas (<, >, =, ...IS NULL|NOT NULL, LIKE).
- condiciones booleanas encadenadas por OR o AND.
- <columna> IN | NOT IN <rango_de_valores>.
- <columna> BETWEEN min_val AND max_val.
Ejemplos:
SELECT * FROM Profesor WHERE DNI=XXXXXXXXX;
SELECT Nombre
Nombre_P
P FROM Profesor
WHERE Titulacin <> XXXXXXXX;
SELECT * FROM Grupo WHERE rea IS NULL;
SELECT Nombre_P FROM Profesor
WHERE DNI IN (SELECT Lder FROM Grupo);
SELECT Nombre_P P, Nombre_D D FROM Profesor P, Departamento D
WHERE P.DNI IN (SELECT Lder FROM Grupo);
Consultas
Consideraciones
GROUP BY<columna> [, <columna>] : agrupa el resultado de la
consulta por las columnas especificadas.
HAVING <condicin> [<condicin>] : restricciones de los
grupos de salida (anloga a WHERE).
ORDER BY <columna> [, <columna>] [ASC|DESC] : variacin del
orden
d por defecto.
d f t
19
Consultas
Consideraciones
* El orden de ejecucin es:
Se eligen las tuplas que cumplen las condiciones de la clusula
WHERE
Se realizan los grupos basados en la clusula GROUP BY
Se calculan los resultados de las funciones de grupo para cada
grupo
Se eliminan aquellos grupos que no cumplen la condicin del
HAVING
Y luego se ordenan por las columnas especificadas en el ORDER
BY
Consultas
Ejemplos:
SELECT COUNT(*) FROM Profesor;
SELECT COUNT(*) FROM Profesor GROUP BY Titulacin;
SELECT SUM(Sueldo) FROM Profesor GROUP BY Titulacin
HAVING COUNT(*)>10;
SELECT MAX(Sueldo), MIN(Sueldo), AVG(Sueldo)
FROM Profesor WHERE Titulacin = 'Doctorado'
GROUP BY Dept;
20