Oracle Sqlplus LDD LMD
Oracle Sqlplus LDD LMD
Oracle Sqlplus LDD LMD
maneja distintos tipos de datos: o Tradicionales como INTEGER, VARCHAR2, DATE, ..., etc. o Nuevos y complejos: imgenes, docs, mapas, video, audio, ..., etc.
Entorno multiusuario (Cliente/Servidor).
DB
DB manager
Client2
ORACLE: Sistema Gestor de Base de Datos Relacional Verstil Probada eficiencia y escalabilidad Amplia difusin Basado en el lenguaje de datos PL/SQL (extensin de SQL) SQL-PLUS: herramienta interfaz de Oracle permite conectarse al Servidor Oracle enva sentencias SQL para su ejecucin y muestra los resultados contiene su propio lenguaje de comandos (locales) permite la ejecucin de scripts
Introduccin al SQL+
Identificacin de Usuario
Una mquina con el Sw cliente de Oracle tendr el SQL+
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
conectar a un servidor
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 lneas que se especifican.
[A | Append] texto concatena el texto a la ltima lnea del buffer Input texto inserta nuevas lneas a continuacin de la lnea activa Del | Delete borra la lnea activa [C | Change] txt antiguo txt nuevo cambia el texto antiguo por el nuevo
Ed <fichero> edita di el l fi fichero h [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 guarda el buffer en el fichero concatenndolo con lo que ya tena
Spool <fichero> arranca el spooling (todo lo que aparece por pantalla se guardar en el fichero) Spool : muestra el nombre del fichero de salida. Spool off : desactiva el spool. Spool out : desactiva el spool y manda imprimir el fichero.
datos
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 :
CREATE TABLE DEPARTAMENTO (Nombre_D VARCHAR2(50) PRIMARY KEY, Tlefono NUMBER(9), Director CHAR(9), CONSTRAINT C1 FOREIGN KEY (Director) REFERENCES PROFESOR (DNI) ON DELETE CASCADE); CREATE TABLE GRUPO (Nombre G (Nombre_G VARCHAR2(30) VARCHAR2(30), Nombre_D VARCHAR2(50), rea VARCHAR2(30), Lder CHAR(9), PRIMARY KEY (Nombre_G, Nombre_D), CONSTRAINT C2 FOREIGN KEY (Nombre_D) REFERENCES DEPARTAMENTO (Nombre_D) ON DELETE CASCADE, CONSTRAINT C3 FOREIGN KEY (Lder) REFERENCES PROFESOR (DNI) ON DELETE CASCADE);
10
Modificacin de Tablas
ALTER TABLE
Cambiar la definicin de una columna para permitir valores nulos o no, as
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;
ALTER TABLE Profesor ADD (Sueldo NUMBER(10,3)); ALTER TABLE Profesor ADD (Dept VARCHAR2(50));
11
Modificacin de Tablas
Observaciones:
MODIFY: para modificar el tipo o el tamao 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 vaca
Borrado de Tablas
DROP TABLE <nombre_de_tabla>
C Cuando d se ejecuta j t el l comando d DROP: DROP
La definicin de la tabla se elimina del catlogo. 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 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 el l comando d RENAME: RENAME
Secuencias
Secuencias. Generacin de nmeros
13
Introduccin
Insercin de tuplas Borrado de tuplas Modificacin de tuplas Consultas
Actualizaciones
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