Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1-1
Introduccin a SQL y PL/SQL
Conceptos Basicos
Modelo Entidad Relacin (MER)
Modelo Relacional de Datos (MRD)
Bases de Datos Oracle
Arquitectura de Bases de Datos Oracle
Cliente
# Cedula Factura
Nombre 1:n 1:1 # No Fact
Direccion Fecha
Tiene Pertenece
Telefono Valor
Sexo (M/F)
Clientes
# Cedula n(10) NN Facturas
Nombre v(50) NN 1:n 1:1 # No Fact n(4) NN
Direccion v(80) Fecha date
Tiene Pertenece
Telefono v(20) Valor n(9,2)
Sexo (M/F) v(1) Cedula n(10) NN
Consulta
de Datos
Manipulacin
de Datos
Almacenamiento
de Datos
DBWn
LGWR
SMON
PMON
CKPT
Tablas
Vistas
Secuencias
Indices
Sinonimos
Procedimientos
Funciones
Paquetes
Tipo Carcter
CHAR
LONG
NCHAR
NVARCHAR2
VARCHAR2
Tipo Numerico
NUMBER (L,P)
Tipo Fecha
DATE
LOB
Select CodEmp,NomEmp,
SalEmp,Depto
From EMP_DEPTO;
Instruccin Select
Limitando la cantidad de registros (Where)
Desplegar datos de multiples tablas (Uso de
Joins)
Instruccin Order by
Empleados
Select * #Codigo
From Empleados; Nombre
Salario
Select *
From Empleados
Where Salario > 10000;
Empleados
Deptos #Codigo
1:n 1:1
#Codigo Nombre
Nombre Tiene Pertenece
Salario
Depto
Codigo Nombre
10 Recursos Humanos
20 Ventas
30 Planeacin
3000,10);
Empleados
Codigo Nombre Salario Depto
60 Jota Mario Valencia 3000 10
3000,10);
Empleados
Codigo Nombre Salario Depto
60 Jota Mario Valencia 3000 10
Update Empleados
Set Depto = 10;
Delete Empleados
Where Codigo = 10;
Commit
Commit;
Rollback
Rollback;
Save Point
Save Point <Nombre>
Conceptos:
Usuarios
Privilegios
Roles
Otorgar (Grant) y Revocar (Revoke) Privilegios
a los objetos de la Base de Datos
Privilegios
- Tablas
- Vistas DML (Data Manipulation)
- Secuencias DDL (Data Definition)
- Procedimientos
- Funciones Labor de DBA
- Paquetes
Introduccin a SQL y PL/SQL
1-50
Conceptos
GRANT EXECUTE
ON PROLEGALIZAR TO JUANCM;
Usuarios
Roles
Privilegios
Manejo de Seguridad de Datos en Oracle
Declaracin de Variables
DEFAULT
NOT NULL
%TYPE
%ROWTYPE
Convenciones de Nombres de variables
Asignacin de Valores a las variables
Expresiones y Comparaciones
Funciones del Lenguaje
sbCadena varchar2(50);
nuValor number (9,2);
dtFecha date;
blExiste boolean;
nuCodigo Empleados.Codigo%type;
rtEmp Empleados%rowtype;
nuValor number(9,2) DEFAULT 1;
sbCadena varchar2(50) NOT NULL := CADENA;
sb Cadena
nu Numerico
dt Fecha
bl Booleano
rt Registro
cu Cursores
cn Constante
nuValor Empleados.Codigo%type;
...
nuValor := 25
select Codigo
into nuValor
from Empleados
where Codigo = 25;
Precedencia de Operacin
Operaadores Logicos
Operadores de Comparacin
IS NULL
IF Variable IS NULL THEN ...
BETWEEN
45 BETWEEN 38 AND 44
IN y NOT IN
WHERE CODIGO IN (2,3,4)
WHERE NOT IN (6,7)
CONCATENAR
suite||case suitecase
DECODE
SELECT DECODE
(codigo,NULL,0,10,A,20,B) VALOR
FROM EMPLEADOS;
Condicionales
IF-THEN
IF-THEN-ELSE
IF-THEN-ELSIF
Iteraciones
LOOP
WHILE
FOR
IF THEN
IF condicion THEN
secuencia de instrucciones
END IF;
Ejemplo:
IF codigo = 5 THEN
nuValor := 50000;
END IF;
IF THEN ELSIF
IF condicion1 THEN
secuencia de instrucciones 1;
ELSIF condicion2 THEN
secuencia de instrucciones 2;
ELSE
secuencia de instrucciones 3;
END IF;
LOOP
LOOP
secuencia de instrucciones;
END LOOP;
EXIT EXIT WHEN
LOOP LOOP
IF condicion THEN ...
... EXIT WHEN a<5;
EXIT; END LOOP;
END IF;
END LOOP;
WHILE LOOP
WHILE condicion LOOP
secuencia de instrucciones
END LOOP;
Ejemplo
WHILE total <=25000 LOOP
total := total + 20;
...
END LOOP;
FOR LOOP
FOR contador IN [REVERSE] desde..hasta
LOOP
secuencia de instrucciones;
END LOOP;
Ejemplo:
FOR i IN 1..10 LOOP
...
total := total + (i*10);
END LOOP;
Estructuras de Control
Condicionales
IF THEN
IF THEN ELSE
IF THEN ELSIF
Iteraciones
LOOP
WHILE
FOR
Caracteristicas de PL/SQL
Manejo de Cursores
Implicit
Explicit
Paso de Parametros a los cursores
Variables tipo cursor
Atributos de los cursores
%FOUND
%NOTFOUND
%ISOPEN
%ROWCOUNT
Soporte de SQL
Soporta Programacin Orientada a Objetos
Mejor Perfomance
Portable
Integrado con SQL
Manejo de Seguridad
Explicit Cursor
Comandos: OPEN, FETCH, CLOSE.
Declaracin
DECLARE
CURSOR <Nombre>
[(parametro1,parametro2...)] IS
instruccin SELECT...
Implicit Cursor
No utilizan las instrucciones OPEN, FETCH y CLOSE.
Utilizan Atributos de los Cursores para determinar el
estado del cursor.
Ejemplo:
...
SELECT codigo
INTO nuValor
FROM Empleados;
DECLARE
CURSOR cuEmpleados (nuSalario number) is
SELECT codigo,nombre
FROM Empleados
WHERE Salario > nuSalario;
DECLARE
CURSOR cuEmpleados is
SELECT *
FROM Empleados;
rtEmp cuEmpleados%rowtype;
BEGIN
OPEN cuEmpleados
FETCH cuEmpleados into rtEmp;
..
CLOSE cuEmpleados;
Instruccin Exception
User-Defined Exception
Mensajes de Error
Creacin de SubProgramas y
Paquetes
SubProgramas
Funciones
Procedimientos
Paquetes
Funciones
CREATE OR REPLACE
FUNCTION nombre (parametro1,parametro2)
return <tipo de dato> IS|AS
declaraciones locales;
BEGIN
-- Instrucciones
EXCEPTION
-- Manejo de Errores
END;
CREATE OR REPLACE
FUNCTION balance (cuenta number) RETURN number
IS
declaraciones locales;
BEGIN
-- Instrucciones
return nuValor;
EXCEPTION
-- Manejo de Errores
END;
CREATE OR REPLACE
PROCEDURE inserta_tabla IS
declaraciones locales;
BEGIN
-- Instrucciones
EXCEPTION
-- Manejo de Errores
END;
Especificacin