SlideShare ist ein Scribd-Unternehmen logo
1 von 103
Introducción a SQL y PL/SQL
1-1
Introducción a SQL y PL/SQL
Orlando Lara Betancourt

Introducción a SQL y PL/SQL
1-2
Contenido
1. Introducción a Bases de Datos
2. Creación y Manejo de Objetos de Bases de Datos
3. Sentencias Basicas de SQL
4. Manipulación de Datos con SQL
5. Control de Acceso
6. Fundamentos de PL/SQL
7. Estructuras de Control
8. PL/SQL y su interacción con Oracle
9. Manejo de Errores
10.Creación de SubProgramas
Introducción a SQL y PL/SQL
1-3
Introducción a Bases de Datos

Introducción a SQL y PL/SQL
1-4
Overview






Conceptos Basicos
Modelo Entidad Relación (MER)
Modelo Relacional de Datos (MRD)
Bases de Datos Oracle
Arquitectura de Bases de Datos Oracle

Introducción a SQL y PL/SQL
1-5
Conceptos Basicos


Base de Datos: Conjunto de datos estructurados,
almacenados que se consultan a través de
aplicaciones.



Diseño de Bases de datos
–

Conceptual: Especificación de la realidad

–

Lógico: Descripcion de la estructura de la BD

–

Fisico: Implementación de la Estructura

Introducción a SQL y PL/SQL
1-6
Modelo Entidad Relación (MER)


Entidad: Objeto sobre el cual se puede tener
información.



Atributo: Caracteristica de la entidad
–



Relación: Asociación entre dos o mas Entidades
–



Dominio: Conjunto de valores de un atributo
Cardinalidad: Numero de correspondencias.

Identificador: Atributo que identifica una única
ocurrencia de la Entidad.

Introducción a SQL y PL/SQL
1-7
Modelo Entidad Relación (MER)

Cliente
# Cedula
Nombre
Direccion
Telefono
Sexo (M/F)

1:n
Tiene

1:1
Pertenece

Introducción a SQL y PL/SQL
1-8

Factura
# No Fact
Fecha
Valor
Modelo Relacional de Datos (MRD)






Estructura Fisica de la Base de Datos
Entidades  Tablas: Singular a Plural
Atributos  Campos
Identificador  Campo Clave
Normalización: Proceso estandar para evitar:
–

Redundancia de Información

–

Inconsistencia de Información

–

Perdida de Información en Cascada

–

Anomalias de Inserción

Introducción a SQL y PL/SQL
1-9
Modelo Relacional de Datos (MRD)

Clientes
# Cedula n(10) NN
Nombre v(50) NN
Direccion v(80)
Telefono v(20)
Sexo (M/F) v(1)

1:n
Tiene

1:1
Pertenece

Introducción a SQL y PL/SQL
1-10

Facturas
# No Fact n(4) NN
Fecha date
Valor n(9,2)
Cedula n(10) NN
Bases de Datos Oracle

Consulta
de Datos
Manipulación
de Datos

Almacenamiento
de Datos

Introducción a SQL y PL/SQL
1-11
Bases de Datos Oracle



RDBMS (Relational Database Management System)



Garantizar el maximo aprovechamiento de los
recursos.



Esta formado por dos Elementos:

Administración de recursos (Hardware) del
Sistema.

–

Datos: Conforman la propia BD y son de dos tipos:
– Diccionario de datos: BD de los Objetos y

seguridad
– Datos: Datos del Usuario

–

Tratamientos: Aplicaciones para el manejo de los
datos (SQL Plus, DBA Studio, OEM, Forms, etc)
Introducción a SQL y PL/SQL

1-12
Aquitectura de la Base de Datos Oracle

Introducción a SQL y PL/SQL
1-13
Aquitectura de la Base de Datos Oracle

Introducción a SQL y PL/SQL
1-14
Aquitectura de la Base de Datos Oracle
Mandatory Background Processes
DBWn
LGWR
SMON
PMON
CKPT

Introducción a SQL y PL/SQL
1-15
Aquitectura de la Base de Datos Oracle

Introducción a SQL y PL/SQL
1-16
Resumen






Conceptos de Bases de Datos
Modelo Entidad Relación
Modelo Relacional de Datos
Caracteristicas de un RDBMS
Arquitectura de la Base de Datos Oracle

Introducción a SQL y PL/SQL
1-17
Creación y Manejo de Objetos de
Bases de Datos

Introducción a SQL y PL/SQL
1-18
Overview












Principales Objetos de la Base de Datos
Creación de Tablas
Tipos de Datos en Oracle
Alterando Tablas
Instrucciones Drop y Truncate
Creación de constraints
Creación de Vistas
Consultando datos de una vista
Creación y Uso de Secuencias
Creación y Uso de Indices
Creación de Sinonimos
Introducción a SQL y PL/SQL

1-19
Principales Objetos de la Base de Datos









Tablas
Vistas
Secuencias
Indices
Sinonimos
Procedimientos
Funciones
Paquetes

Introducción a SQL y PL/SQL
1-20
Creacion de Tablas
Create table Empleados (
Codigo number(10) not null primary key,
Nombre varchar2(50) not null,
Salario number (9,2) default 0,
Depto number(4));

Codigo

Nombre

Salario

Introducción a SQL y PL/SQL
1-21

Depto
Tipos de Datos


Tipo Carácter



Tipo Numerico

–
–
–
–
–
–



NUMBER (L,P)

Tipo Fecha
–



CHAR
LONG
NCHAR
NVARCHAR2
VARCHAR2

DATE

LOB
Introducción a SQL y PL/SQL

1-22
Alterando Tablas
Alter table Empleados Add
(Comision number(9,2));

Codigo

Nombre

Salario

Introducción a SQL y PL/SQL
1-23

Depto

Comision
Instrucciones Drop y Truncate
Drop table Empleados;
Elimina la definición de la tabla.
Truncate table Empleados;
Elimina los datos de la tabla

Introducción a SQL y PL/SQL
1-24
Creación de constraints
ALTER TABLE EMPLEADOS ADD (
CONSTRAINT PK_EMPLEADOS PRIMARY KEY
(CODIGO));
ALTER TABLE EMPLEADOS ADD (
CONSTRAINT FK_EMPL_DPTO FOREIGN KEY
(DEPTO) REFERENCES DEPTOS (CODIGO));

Introducción a SQL y PL/SQL
1-25
Creación de Vistas
CREATE OR REPLACE VIEW EMP_DEPTO AS
Select Empleados.Codigo CodEmp,
Empleados.Nombre NomEmp,
Empleados.Salario SalEmp,
Deptos.Nombre Depto
From

Empleados,Deptos

Where

Empleado.Depto = Deptos.Codigo;

Introducción a SQL y PL/SQL
1-26
Consultando Datos de una Vista
Select CodEmp,NomEmp,
SalEmp,Depto
From EMP_DEPTO;
CodEmp

NomEmp

SalEmp

Depto

10

Andres Escobar R

10000 Ventas

20

Carlos Velasquez

30

Juan Manuel Rivas

20000 Ventas

40

Jose Juaquin Velez

50000 Recursos Humanos

50

Mario Hernandez

5000 Planeación

1000 Ventas

Introducción a SQL y PL/SQL
1-27
Creación y Uso de las Secuencias
CREATE SEQUENCE SEQEMPLEADOS
START WITH 1
INCREMENT BY 1
MAXVALUE 1E27
MINVALUE 1;

Introducción a SQL y PL/SQL
1-28
Creación y Uso de Indices

CREATE UNIQUE INDEX IDX_CODEMP ON
EMPLEADOS (CODIGO);

CREATE INDEX IDX_NOMEMP ON
EMPLEADOS (NOMBRE);

Introducción a SQL y PL/SQL
1-29
Creacion de Sinonimos
CREATE SYNONYM PEGASO.OBSEMULT FOR
GAS.OBSEMULT@DESA;
CREATE PUBLIC SYNONYM PEGASO.OBSEMULT
FOR GAS.OBSEMULT@DESA;
CREATE PUBLIC DATABASE LINK DESA
CONNECT TO DESA
IDENTIFIED BY ud953_f1
USING 'DESA';
Introducción a SQL y PL/SQL
1-30
Resumen








Objetos de Bases de Datos
Tablas
Constraints
Vistas
Secuencias
Indices
Sinonimos

Introducción a SQL y PL/SQL
1-31
Sentencias Basicas de SQL

Introducción a SQL y PL/SQL
1-32
Overview




Instrucción Select



Instrucción Order by

Limitando la cantidad de registros (Where)
Desplegar datos de multiples tablas (Uso de
Joins)

Introducción a SQL y PL/SQL
1-33
Instrucción Select
Select *
From Empleados;
Codigo

Nombre

Empleados
#Codigo
Nombre
Salario
Salario

10

Andres Escobar R

10000

20

Carlos Velasquez

5000

30

Juan Manuel Rivas

20000

40

Jose Juaquin Velez

50000

50

Mario Hernandez

1000

Introducción a SQL y PL/SQL
1-34
Limitando la Cantidad de Registros
Select *
From Empleados
Where Salario > 10000;
Codigo

Nombre

Salario

30

Juan Manuel Rivas

20000

40

Jose Juaquin Velez

50000

La clausula Where determina la condición de la consulta
Introducción a SQL y PL/SQL
1-35
Desplegar Datos de Multiples Tablas
Deptos
#Codigo
Nombre

Codigo

1:n
Tiene

1:1
Pertenece

Empleados
#Codigo
Nombre
Salario
Depto

Nombre

10

Recursos Humanos

20

Ventas

30

Planeación

Introducción a SQL y PL/SQL
1-36
Desplegar Datos de Multiples Tablas
Select Empleados.Codigo,
Empleados.Nombre,
Empleados.salario,
Deptos.Nombre Depto

Alias

From

Empleados,Deptos

Where

Empleados.Depto = Deptos.Codigo;

Codigo

Nombre

Salario

Depto

10

Andres Escobar R

10000 Ventas

20

Carlos Velasquez

30

Juan Manuel Rivas

20000 Ventas

40

Jose Juaquin Velez

50000 Recursos Humanos

50

Mario Hernandez

5000 Planeación

1000 Ventas

Introducción a SQL y PL/SQL
1-37
Instrucción Order By
Select Empleados.Codigo,
Empleados.Nombre,
Empleados.Salario,
From

Empleados

Order

by Empleados.Salario;

Codigo

Nombre

Salario

Depto

50

Mario Hernandez

1000 Ventas

20

Carlos Velasquez

5000 Planeación

10

Andres Escobar R

10000 Ventas

30

Juan Manuel Rivas

20000 Ventas

40

Jose Juaquin Velez

50000 Recursos Humanos

Introducción a SQL y PL/SQL
1-38
Resumen


Instrucciones básicas de SQL para consultar
datos.
–

Select

–

Where

–

Alias

–

Joins

–

Order by

Introducción a SQL y PL/SQL
1-39
Manipulación de Datos con SQL

Introducción a SQL y PL/SQL
1-40
Overview





Insertando Datos (Insert)
Actualizando Datos (Update)
Eliminando Información (Delete)
Control de Transacciones (Commit - Rollback)

Introducción a SQL y PL/SQL
1-41
Insertando Datos (insert)
Insert into Empleados
Values (60,’Jota Mario Valencia’,
3000,10);
Empleados
Codigo

 60

Nombre
Jota Mario Valencia

Salario
3000

Introducción a SQL y PL/SQL
1-42

Depto
10
Insertando Datos (insert)
Insert into Empleados
(Codigo,Nombre,Salario,Depto)
Values (60,’Jota Mario Valencia’,
3000,10);
Empleados
Codigo

 60

Nombre
Jota Mario Valencia

Salario
3000

Introducción a SQL y PL/SQL
1-43

Depto
10
Actualizando Datos (update)
Update Empleados
Set Depto = 10;
Codigo

Nombre

Salario

Depto

10

Andres Escobar R

10000

10

20

Carlos Velasquez

5000

10

30

Juan Manuel Rivas

20000

10

40

Jose Juaquin Velez

50000

10

50

Mario Hernandez

1000

10

Introducción a SQL y PL/SQL
1-44
Eliminado Datos (delete)
Delete Empleados
Where Codigo = 10;
Codigo

Nombre

20

Carlos Velasquez

30

Salario

Depto

5000

10

Juan Manuel Rivas

20000

10

40

Jose Juaquin Velez

50000

10

50

Mario Hernandez

1000

10

Introducción a SQL y PL/SQL
1-45
Control de Transacciones


Commit
–



Rollback
–



Commit;
Rollback;

Save Point
–

Save Point <Nombre>

Introducción a SQL y PL/SQL
1-46
Resumen


Instrucciones SQL para manipular datos.

– Insert
– Update
– Delete
– Commit
– Rollback

Introducción a SQL y PL/SQL
1-47
Control de Acceso

Introducción a SQL y PL/SQL
1-48
Overview


Conceptos:
–
–

Privilegios

–



Usuarios
Roles

Otorgar (Grant) y Revocar (Revoke) Privilegios
a los objetos de la Base de Datos

Introducción a SQL y PL/SQL
1-49
Conceptos


Usuarios: SYS y SYSTEM
CREATE USER ORLANDOL
IDENTIFIED BY VALUES 'ECE5A72B8C80CBE3’;



Privilegios
- Tablas
- Vistas
- Secuencias
- Procedimientos
- Funciones
- Paquetes



DML (Data Manipulation)
DDL (Data Definition)

Labor de DBA

Introducción a SQL y PL/SQL
1-50
Conceptos


Roles: Facilita la administración
–

Roles de Aplicación: Conjunto de privilegios
necesarios para ejecutar la Aplicación.

–

Roles de Usuario: Se crea un role para un grupo de
usuarios con privilegios comunes.

CREATE ROLE ROLGAS;

Introducción a SQL y PL/SQL
1-51
Otorgar (Grant) y Revocar (Revoke)
Accesos a los objetos de la Base de Datos
GRANT DELETE, INSERT, SELECT, UPDATE
ON

ACTA TO ROLGAS;

GRANT EXECUTE
ON

PROLEGALIZAR TO JUANCM;

REVOKE DELETE, INSERT, SELECT, UPDATE
ON

ACTA FROM ROLGAS;
Introducción a SQL y PL/SQL

1-52
Ejemplo de Uso de Seguridad

Introducción a SQL y PL/SQL
1-53
Resumen





Usuarios
Roles
Privilegios
Manejo de Seguridad de Datos en Oracle

Introducción a SQL y PL/SQL
1-54
6
Fundamentos de PL/SQL

Introducción a SQL y PL/SQL
1-55
Overview


Declaración de Variables
–
–

NOT NULL

–

%TYPE

–






DEFAULT

%ROWTYPE

Convenciones de Nombres de variables
Asignación de Valores a las variables
Expresiones y Comparaciones
Funciones del Lenguaje

Introducción a SQL y PL/SQL
1-56
Declaración de Variables
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’;
Introducción a SQL y PL/SQL
1-57
Convenciones de Nombres de Variables








sb  Cadena
nu  Numerico
dt  Fecha
bl  Booleano
rt  Registro
cu  Cursores
cn  Constante

Introducción a SQL y PL/SQL
1-58
Asignación de Valores a las variables
nuValor Empleados.Codigo%type;
...
nuValor := 25
select Codigo
into nuValor
from Empleados
where Codigo = 25;
Introducción a SQL y PL/SQL
1-59
Expresiones y Comparaciones


Precedencia de Operación

Introducción a SQL y PL/SQL
1-60
Expresiones y Comparaciones


Operaadores Logicos

Introducción a SQL y PL/SQL
1-61
Expresiones y Comparaciones


Operadores de Comparación

Introducción a SQL y PL/SQL
1-62
Expresiones y Comparaciones


IS NULL
–



BETWEEN
–



IF Variable IS NULL THEN ...
45 BETWEEN 38 AND 44

IN y NOT IN
–
–



WHERE CODIGO IN (2,3,4)
WHERE NOT IN (6,7)

CONCATENAR
–

‘suite’||’case’  ‘suitecase’

Introducción a SQL y PL/SQL
1-63
Expresiones y Comparaciones
DECODE
SELECT DECODE
(codigo,NULL,0,10,’A’,20,’B’) VALOR
FROM EMPLEADOS;

Introducción a SQL y PL/SQL
1-64
Expresiones y Comparaciones
CASE
select

sysdate fecha, to_number(TO_CHAR(sysdate, 'SS')) Minuto, 'Segundos ' ||
CASE
WHEN (to_number(TO_CHAR(sysdate, 'SS')) IS NULL) THEN 'Nulos'
WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 0) THEN 'Cero'
WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 1) THEN 'Uno'
WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 2) THEN 'Dos'
WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 3) THEN 'Tres'
WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 4) THEN 'Cuatro'
WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 5) THEN 'Cinco'
WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 6) THEN 'Seis'
WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 7) THEN 'Siete'
WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 8) THEN 'Ocho'
WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 9) THEN 'Nueve'
WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 10) THEN 'Diez'
WHEN (to_number(TO_CHAR(sysdate, 'SS')) > 10 AND
to_number(TO_CHAR(sysdate, 'SS')) < 31) THEN 'entre 11 y 30'
WHEN (to_number(TO_CHAR(sysdate, 'SS')) in
(31,32,33,34,35,36,37,38,39))
THEN 'in (31,32,33,34,35,36,37,38,39)'
ELSE
'entre 40 y 59'
END as Opcion
from dual

Introducción a SQL y PL/SQL
1-65
Funciones del Lenguaje (Tabla DUAL)

Introducción a SQL y PL/SQL
1-66
Resumen







Fundamentos básicos de PL/SQL
Declaracion de Variables
Convenciones
Asignación de Valores a Variables
Expresiones y Comparaciones
Funciones del Lenguaje

Introducción a SQL y PL/SQL
1-67
7
Estructuras de Control

Introducción a SQL y PL/SQL
1-68
Overview


Condicionales
–
–

IF-THEN-ELSE

–



IF-THEN
IF-THEN-ELSIF

Iteraciones
–

LOOP

–

WHILE

–

FOR

Introducción a SQL y PL/SQL
1-69
Condicionales


IF – THEN
IF condicion THEN
secuencia de instrucciones
END IF;

Ejemplo:
IF codigo = 5 THEN
nuValor := 50000;
END IF;

Introducción a SQL y PL/SQL
1-70
Condicionales


IF – THEN – ELSE
IF condicion THEN
secuencia de instrucciones 1;
ELSE
secuencia de instrucciones 2;
END IF;

Ejemplo
IF codigo = 5 THEN
nuValor := 50000;
ELSE
nuValor := 10;
END IF;
Introducción a SQL y PL/SQL
1-71
Condicionales


IF – THEN – ELSIF
IF condicion1 THEN
secuencia de instrucciones 1;
ELSIF condicion2 THEN
secuencia de instrucciones 2;
ELSE
secuencia de instrucciones 3;
END IF;

Introducción a SQL y PL/SQL
1-72
Iteraciones


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;
Introducción a SQL y PL/SQL
1-73
Iteraciones


WHILE – LOOP
WHILE condicion LOOP
secuencia de instrucciones
END LOOP;

Ejemplo
WHILE total <=25000 LOOP
total := total + 20;
...
END LOOP;
Introducción a SQL y PL/SQL
1-74
Iteraciones


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;
Introducción a SQL y PL/SQL
1-75
Resumen



Estructuras de Control
Condicionales
–
–

IF – THEN – ELSE

–



IF – THEN
IF – THEN – ELSIF

Iteraciones
–

LOOP

–

WHILE

–

FOR

Introducción a SQL y PL/SQL
1-76
8
PL/SQL y su Interacción con Oracle

Introducción a SQL y PL/SQL
1-77
Overview



Caracteristicas de PL/SQL





Paso de Parametros a los cursores

Manejo de Cursores
–
–

Implicit
Explicit

Variables tipo cursor
Atributos de los cursores
–
–
–
–

%FOUND
%NOTFOUND
%ISOPEN
%ROWCOUNT

Introducción a SQL y PL/SQL
1-78
Caracteristicas de PL/SQL







Soporte de SQL
Soporta Programación Orientada a Objetos
Mejor Perfomance
Portable
Integrado con SQL
Manejo de Seguridad

Introducción a SQL y PL/SQL
1-79
Manejo de Cursores


Explicit Cursor
–



Comandos: OPEN, FETCH, CLOSE.

Declaración

DECLARE
CURSOR <Nombre>
[(parametro1,parametro2...)] IS
instrucción SELECT...

Introducción a SQL y PL/SQL
1-80
Manejo de Cursores
Declare
cursor cuEmpleados is
select codigo,nombre
from empleados
where salario > 1000;
nuCodigo Empleados.Codigo%type;
sbNombre Empleados.Nombre%type;
Begin
open cuEmpleados;
fetch cuEmpleados into nuCodigo,sbNombre;
...
close cuEmpleados;
End;
Introducción a SQL y PL/SQL
1-81
Manejo de Cursores


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;

Introducción a SQL y PL/SQL
1-82
Manejo de Cursores


FOR CURSOR
declare
cursor cuEmpleados is
select codigo,nombre
from
Empleados
where Salario > 1000;
begin
For rtEmp in cuEmpleados loop
...
rtEmp.Codigo ...
rtEmp.Nombre ...
end loop;
end;
Introducción a SQL y PL/SQL

1-83
Paso de Parametros a Cursores
DECLARE
CURSOR cuEmpleados (nuSalario number) is
SELECT codigo,nombre
FROM

Empleados

WHERE

Salario > nuSalario;

Introducción a SQL y PL/SQL
1-84
Variables tipo cursor
DECLARE
CURSOR cuEmpleados is
SELECT *
FROM

Empleados;

rtEmp cuEmpleados%rowtype;
BEGIN
OPEN cuEmpleados
FETCH cuEmpleados into rtEmp;
..
CLOSE cuEmpleados;
Introducción a SQL y PL/SQL
1-85
Atributos de los Cursores


%FOUND: Es verdadero si se encontraron registros
del cursor.



%NOTFOUND: Es verdadero si NO se encontraron
registros del cursor.



%ISOPEN: Es verdadero si el cursor está abierto.



%ROWCOUNT: Devuleve la cantidad de registros que
retorna el cursor.

Introducción a SQL y PL/SQL
1-86
Resumen



Uso de SQL y PL/SQL
Uso de los Cursores
–
–





Implicit
Explicit

FOR CURSOR
Parametros de los cursores
Atributos de los cursores

Introducción a SQL y PL/SQL
1-87
9
Manejo de Errores

Introducción a SQL y PL/SQL
1-88
Overview




Instrucción Exception
User-Defined Exception
Mensajes de Error

Introducción a SQL y PL/SQL
1-89
Instrucción Exception


En Oracle las Advertencias o Mensajes de Error son
llamados Excepciones (Exception).



Permite capturar los errores del
sistema y mantener un control
sobre las aplicaciones.



Pueden ser predefinidas o
creadas por el programador



Introducción a SQL y PL/SQL
1-90
Instrucción Exception

Introducción a SQL y PL/SQL
1-91
User Define Exception


Declaración
DECLARE null_salary EXCEPTION;



Inicializa la variable de Error
PRAGMA EXCEPTION_INIT (null_salary,-60);

DECLARE
null_salary EXCEPTION;
PRAGMA EXCEPTION_INIT (null_salary,-60);
BEGIN
... RAISE null_salary;
EXCEPTION
WHEN null_salary THEN
-- Manejo del Error
Introducción a SQL y PL/SQL
1-92
Mensajes de Error





Utilizacion de Tablas de Mensaje
Funcion que retorne Mensaje Ej: fsbMensaje();
Mensajes Oracle SQLERRM
Mensajes ORA-XX

Introducción a SQL y PL/SQL
1-93
Resumen




Manejo de errores Exception
Usos de las Excepciones
Mensajes de Error

Introducción a SQL y PL/SQL
1-94
10
Creación de SubProgramas y
Paquetes

Introducción a SQL y PL/SQL
1-95
Overview


SubProgramas
–
–



Funciones
Procedimientos

Paquetes

Introducción a SQL y PL/SQL
1-96
SubProgramas


Funciones
CREATE OR REPLACE
FUNCTION nombre (parametro1,parametro2)
return <tipo de dato> IS|AS
declaraciones locales;
BEGIN
-- Instrucciones
EXCEPTION
-- Manejo de Errores
END;
Introducción a SQL y PL/SQL

1-97
SubProgramas


Funciones (Uso de RETURN)
CREATE OR REPLACE
FUNCTION balance (cuenta number) RETURN number
IS
declaraciones locales;
BEGIN
-- Instrucciones
return nuValor;
EXCEPTION
-- Manejo de Errores
END;
Introducción a SQL y PL/SQL

1-98
SubProgramas


Procedimientos: Ejecuta Acción especifica

CREATE OR REPLACE
PROCEDURE inserta_tabla IS
declaraciones locales;
BEGIN
-- Instrucciones
EXCEPTION
-- Manejo de Errores
END;

Introducción a SQL y PL/SQL
1-99
Paquetes


Especificación

Introducción a SQL y PL/SQL
1-100
Paquetes


Package Body

Introducción a SQL y PL/SQL
1-101
Resumen


Objetos de Bases de Datos
–

Funciones

–

Procedimientos

–

Paquetes

Introducción a SQL y PL/SQL
1-102
P&
R
Introducción a SQL y PL/SQL
1-103

Weitere ähnliche Inhalte

Was ist angesagt?

Transact sql
Transact sqlTransact sql
Transact sql
joan
 

Was ist angesagt? (20)

Lenguaje Sql
Lenguaje SqlLenguaje Sql
Lenguaje Sql
 
Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005
 
Examen Sandra U Israel Oracle
Examen Sandra U Israel OracleExamen Sandra U Israel Oracle
Examen Sandra U Israel Oracle
 
Comandos SQL
Comandos SQLComandos SQL
Comandos SQL
 
1. introduccion a transact-sql
1.  introduccion a transact-sql1.  introduccion a transact-sql
1. introduccion a transact-sql
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
Transact sql
Transact sqlTransact sql
Transact sql
 
TRANSACT-SQL
TRANSACT-SQLTRANSACT-SQL
TRANSACT-SQL
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
Capitulo 2
Capitulo 2Capitulo 2
Capitulo 2
 
103305862 t-sql
103305862 t-sql103305862 t-sql
103305862 t-sql
 
Act4 screencast-bdatos cmch
Act4 screencast-bdatos cmchAct4 screencast-bdatos cmch
Act4 screencast-bdatos cmch
 
Resumen fundamentos de sistemas de bases de datos
Resumen fundamentos de sistemas de bases de datosResumen fundamentos de sistemas de bases de datos
Resumen fundamentos de sistemas de bases de datos
 
Curso Oracle11g Lenguaje PL/SQL Avanzado
Curso Oracle11g Lenguaje PL/SQL AvanzadoCurso Oracle11g Lenguaje PL/SQL Avanzado
Curso Oracle11g Lenguaje PL/SQL Avanzado
 
Fundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sqlFundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sql
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)
 
Sentencias Sql
Sentencias SqlSentencias Sql
Sentencias Sql
 
Unidad 6 Lenguaje Sql
Unidad 6 Lenguaje SqlUnidad 6 Lenguaje Sql
Unidad 6 Lenguaje Sql
 
Lenguaje Transact SQL
Lenguaje Transact SQL Lenguaje Transact SQL
Lenguaje Transact SQL
 

Ähnlich wie Intro sql y plsql

Sesión 12 -Diseño de BD_Ciclo_3.pptx
Sesión 12 -Diseño de BD_Ciclo_3.pptxSesión 12 -Diseño de BD_Ciclo_3.pptx
Sesión 12 -Diseño de BD_Ciclo_3.pptx
John McClane
 
PRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRA
PRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRAPRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRA
PRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRA
Heriberto Razo Bocanegra
 

Ähnlich wie Intro sql y plsql (20)

Sql
SqlSql
Sql
 
Sql server(1)
Sql server(1)Sql server(1)
Sql server(1)
 
Exposición
ExposiciónExposición
Exposición
 
Exposición
ExposiciónExposición
Exposición
 
Sesión 12 -Diseño de BD_Ciclo_3.pptx
Sesión 12 -Diseño de BD_Ciclo_3.pptxSesión 12 -Diseño de BD_Ciclo_3.pptx
Sesión 12 -Diseño de BD_Ciclo_3.pptx
 
Base de datos en sql
Base de datos en sql  Base de datos en sql
Base de datos en sql
 
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
OVA DISEÑO ORACLE Introducción Bases de Datos .pptxOVA DISEÑO ORACLE Introducción Bases de Datos .pptx
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
 
PRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRA
PRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRAPRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRA
PRIMER PROYECTO DE BASE DE DATOS HERIBERTO RAZO BOCANEGRA
 
Tutoria 2do bim-v1
Tutoria 2do bim-v1Tutoria 2do bim-v1
Tutoria 2do bim-v1
 
TODO SOBRE SQL
TODO SOBRE SQLTODO SOBRE SQL
TODO SOBRE SQL
 
Sql
SqlSql
Sql
 
Tema3
Tema3Tema3
Tema3
 
04-SQL.pdf
04-SQL.pdf04-SQL.pdf
04-SQL.pdf
 
04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf
 
Base De Datos I
Base De Datos IBase De Datos I
Base De Datos I
 
Base de Datos Avanzado I.pdf
Base de Datos Avanzado I.pdfBase de Datos Avanzado I.pdf
Base de Datos Avanzado I.pdf
 
Base de Datos Avanzado I.pdf
Base de Datos Avanzado I.pdfBase de Datos Avanzado I.pdf
Base de Datos Avanzado I.pdf
 
SQL Server rápido y furioso
SQL Server rápido y furiosoSQL Server rápido y furioso
SQL Server rápido y furioso
 
Curso Developer SQL 2012 enfocado a la Certificación 70-641
Curso Developer SQL 2012 enfocado a la Certificación 70-641Curso Developer SQL 2012 enfocado a la Certificación 70-641
Curso Developer SQL 2012 enfocado a la Certificación 70-641
 
Fundamentos sql server2
Fundamentos sql server2Fundamentos sql server2
Fundamentos sql server2
 

Kürzlich hochgeladen

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Kürzlich hochgeladen (12)

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 

Intro sql y plsql

  • 1. Introducción a SQL y PL/SQL 1-1
  • 2. Introducción a SQL y PL/SQL Orlando Lara Betancourt Introducción a SQL y PL/SQL 1-2
  • 3. Contenido 1. Introducción a Bases de Datos 2. Creación y Manejo de Objetos de Bases de Datos 3. Sentencias Basicas de SQL 4. Manipulación de Datos con SQL 5. Control de Acceso 6. Fundamentos de PL/SQL 7. Estructuras de Control 8. PL/SQL y su interacción con Oracle 9. Manejo de Errores 10.Creación de SubProgramas Introducción a SQL y PL/SQL 1-3
  • 4. Introducción a Bases de Datos Introducción a SQL y PL/SQL 1-4
  • 5. Overview      Conceptos Basicos Modelo Entidad Relación (MER) Modelo Relacional de Datos (MRD) Bases de Datos Oracle Arquitectura de Bases de Datos Oracle Introducción a SQL y PL/SQL 1-5
  • 6. Conceptos Basicos  Base de Datos: Conjunto de datos estructurados, almacenados que se consultan a través de aplicaciones.  Diseño de Bases de datos – Conceptual: Especificación de la realidad – Lógico: Descripcion de la estructura de la BD – Fisico: Implementación de la Estructura Introducción a SQL y PL/SQL 1-6
  • 7. Modelo Entidad Relación (MER)  Entidad: Objeto sobre el cual se puede tener información.  Atributo: Caracteristica de la entidad –  Relación: Asociación entre dos o mas Entidades –  Dominio: Conjunto de valores de un atributo Cardinalidad: Numero de correspondencias. Identificador: Atributo que identifica una única ocurrencia de la Entidad. Introducción a SQL y PL/SQL 1-7
  • 8. Modelo Entidad Relación (MER) Cliente # Cedula Nombre Direccion Telefono Sexo (M/F) 1:n Tiene 1:1 Pertenece Introducción a SQL y PL/SQL 1-8 Factura # No Fact Fecha Valor
  • 9. Modelo Relacional de Datos (MRD)      Estructura Fisica de la Base de Datos Entidades  Tablas: Singular a Plural Atributos  Campos Identificador  Campo Clave Normalización: Proceso estandar para evitar: – Redundancia de Información – Inconsistencia de Información – Perdida de Información en Cascada – Anomalias de Inserción Introducción a SQL y PL/SQL 1-9
  • 10. Modelo Relacional de Datos (MRD) Clientes # Cedula n(10) NN Nombre v(50) NN Direccion v(80) Telefono v(20) Sexo (M/F) v(1) 1:n Tiene 1:1 Pertenece Introducción a SQL y PL/SQL 1-10 Facturas # No Fact n(4) NN Fecha date Valor n(9,2) Cedula n(10) NN
  • 11. Bases de Datos Oracle Consulta de Datos Manipulación de Datos Almacenamiento de Datos Introducción a SQL y PL/SQL 1-11
  • 12. Bases de Datos Oracle   RDBMS (Relational Database Management System)  Garantizar el maximo aprovechamiento de los recursos.  Esta formado por dos Elementos: Administración de recursos (Hardware) del Sistema. – Datos: Conforman la propia BD y son de dos tipos: – Diccionario de datos: BD de los Objetos y seguridad – Datos: Datos del Usuario – Tratamientos: Aplicaciones para el manejo de los datos (SQL Plus, DBA Studio, OEM, Forms, etc) Introducción a SQL y PL/SQL 1-12
  • 13. Aquitectura de la Base de Datos Oracle Introducción a SQL y PL/SQL 1-13
  • 14. Aquitectura de la Base de Datos Oracle Introducción a SQL y PL/SQL 1-14
  • 15. Aquitectura de la Base de Datos Oracle Mandatory Background Processes DBWn LGWR SMON PMON CKPT Introducción a SQL y PL/SQL 1-15
  • 16. Aquitectura de la Base de Datos Oracle Introducción a SQL y PL/SQL 1-16
  • 17. Resumen      Conceptos de Bases de Datos Modelo Entidad Relación Modelo Relacional de Datos Caracteristicas de un RDBMS Arquitectura de la Base de Datos Oracle Introducción a SQL y PL/SQL 1-17
  • 18. Creación y Manejo de Objetos de Bases de Datos Introducción a SQL y PL/SQL 1-18
  • 19. Overview            Principales Objetos de la Base de Datos Creación de Tablas Tipos de Datos en Oracle Alterando Tablas Instrucciones Drop y Truncate Creación de constraints Creación de Vistas Consultando datos de una vista Creación y Uso de Secuencias Creación y Uso de Indices Creación de Sinonimos Introducción a SQL y PL/SQL 1-19
  • 20. Principales Objetos de la Base de Datos         Tablas Vistas Secuencias Indices Sinonimos Procedimientos Funciones Paquetes Introducción a SQL y PL/SQL 1-20
  • 21. Creacion de Tablas Create table Empleados ( Codigo number(10) not null primary key, Nombre varchar2(50) not null, Salario number (9,2) default 0, Depto number(4)); Codigo Nombre Salario Introducción a SQL y PL/SQL 1-21 Depto
  • 22. Tipos de Datos  Tipo Carácter  Tipo Numerico – – – – – –  NUMBER (L,P) Tipo Fecha –  CHAR LONG NCHAR NVARCHAR2 VARCHAR2 DATE LOB Introducción a SQL y PL/SQL 1-22
  • 23. Alterando Tablas Alter table Empleados Add (Comision number(9,2)); Codigo Nombre Salario Introducción a SQL y PL/SQL 1-23 Depto Comision
  • 24. Instrucciones Drop y Truncate Drop table Empleados; Elimina la definición de la tabla. Truncate table Empleados; Elimina los datos de la tabla Introducción a SQL y PL/SQL 1-24
  • 25. Creación de constraints ALTER TABLE EMPLEADOS ADD ( CONSTRAINT PK_EMPLEADOS PRIMARY KEY (CODIGO)); ALTER TABLE EMPLEADOS ADD ( CONSTRAINT FK_EMPL_DPTO FOREIGN KEY (DEPTO) REFERENCES DEPTOS (CODIGO)); Introducción a SQL y PL/SQL 1-25
  • 26. Creación de Vistas CREATE OR REPLACE VIEW EMP_DEPTO AS Select Empleados.Codigo CodEmp, Empleados.Nombre NomEmp, Empleados.Salario SalEmp, Deptos.Nombre Depto From Empleados,Deptos Where Empleado.Depto = Deptos.Codigo; Introducción a SQL y PL/SQL 1-26
  • 27. Consultando Datos de una Vista Select CodEmp,NomEmp, SalEmp,Depto From EMP_DEPTO; CodEmp NomEmp SalEmp Depto 10 Andres Escobar R 10000 Ventas 20 Carlos Velasquez 30 Juan Manuel Rivas 20000 Ventas 40 Jose Juaquin Velez 50000 Recursos Humanos 50 Mario Hernandez 5000 Planeación 1000 Ventas Introducción a SQL y PL/SQL 1-27
  • 28. Creación y Uso de las Secuencias CREATE SEQUENCE SEQEMPLEADOS START WITH 1 INCREMENT BY 1 MAXVALUE 1E27 MINVALUE 1; Introducción a SQL y PL/SQL 1-28
  • 29. Creación y Uso de Indices CREATE UNIQUE INDEX IDX_CODEMP ON EMPLEADOS (CODIGO); CREATE INDEX IDX_NOMEMP ON EMPLEADOS (NOMBRE); Introducción a SQL y PL/SQL 1-29
  • 30. Creacion de Sinonimos CREATE SYNONYM PEGASO.OBSEMULT FOR GAS.OBSEMULT@DESA; CREATE PUBLIC SYNONYM PEGASO.OBSEMULT FOR GAS.OBSEMULT@DESA; CREATE PUBLIC DATABASE LINK DESA CONNECT TO DESA IDENTIFIED BY ud953_f1 USING 'DESA'; Introducción a SQL y PL/SQL 1-30
  • 31. Resumen        Objetos de Bases de Datos Tablas Constraints Vistas Secuencias Indices Sinonimos Introducción a SQL y PL/SQL 1-31
  • 32. Sentencias Basicas de SQL Introducción a SQL y PL/SQL 1-32
  • 33. Overview    Instrucción Select  Instrucción Order by Limitando la cantidad de registros (Where) Desplegar datos de multiples tablas (Uso de Joins) Introducción a SQL y PL/SQL 1-33
  • 34. Instrucción Select Select * From Empleados; Codigo Nombre Empleados #Codigo Nombre Salario Salario 10 Andres Escobar R 10000 20 Carlos Velasquez 5000 30 Juan Manuel Rivas 20000 40 Jose Juaquin Velez 50000 50 Mario Hernandez 1000 Introducción a SQL y PL/SQL 1-34
  • 35. Limitando la Cantidad de Registros Select * From Empleados Where Salario > 10000; Codigo Nombre Salario 30 Juan Manuel Rivas 20000 40 Jose Juaquin Velez 50000 La clausula Where determina la condición de la consulta Introducción a SQL y PL/SQL 1-35
  • 36. Desplegar Datos de Multiples Tablas Deptos #Codigo Nombre Codigo 1:n Tiene 1:1 Pertenece Empleados #Codigo Nombre Salario Depto Nombre 10 Recursos Humanos 20 Ventas 30 Planeación Introducción a SQL y PL/SQL 1-36
  • 37. Desplegar Datos de Multiples Tablas Select Empleados.Codigo, Empleados.Nombre, Empleados.salario, Deptos.Nombre Depto Alias From Empleados,Deptos Where Empleados.Depto = Deptos.Codigo; Codigo Nombre Salario Depto 10 Andres Escobar R 10000 Ventas 20 Carlos Velasquez 30 Juan Manuel Rivas 20000 Ventas 40 Jose Juaquin Velez 50000 Recursos Humanos 50 Mario Hernandez 5000 Planeación 1000 Ventas Introducción a SQL y PL/SQL 1-37
  • 38. Instrucción Order By Select Empleados.Codigo, Empleados.Nombre, Empleados.Salario, From Empleados Order by Empleados.Salario; Codigo Nombre Salario Depto 50 Mario Hernandez 1000 Ventas 20 Carlos Velasquez 5000 Planeación 10 Andres Escobar R 10000 Ventas 30 Juan Manuel Rivas 20000 Ventas 40 Jose Juaquin Velez 50000 Recursos Humanos Introducción a SQL y PL/SQL 1-38
  • 39. Resumen  Instrucciones básicas de SQL para consultar datos. – Select – Where – Alias – Joins – Order by Introducción a SQL y PL/SQL 1-39
  • 40. Manipulación de Datos con SQL Introducción a SQL y PL/SQL 1-40
  • 41. Overview     Insertando Datos (Insert) Actualizando Datos (Update) Eliminando Información (Delete) Control de Transacciones (Commit - Rollback) Introducción a SQL y PL/SQL 1-41
  • 42. Insertando Datos (insert) Insert into Empleados Values (60,’Jota Mario Valencia’, 3000,10); Empleados Codigo  60 Nombre Jota Mario Valencia Salario 3000 Introducción a SQL y PL/SQL 1-42 Depto 10
  • 43. Insertando Datos (insert) Insert into Empleados (Codigo,Nombre,Salario,Depto) Values (60,’Jota Mario Valencia’, 3000,10); Empleados Codigo  60 Nombre Jota Mario Valencia Salario 3000 Introducción a SQL y PL/SQL 1-43 Depto 10
  • 44. Actualizando Datos (update) Update Empleados Set Depto = 10; Codigo Nombre Salario Depto 10 Andres Escobar R 10000 10 20 Carlos Velasquez 5000 10 30 Juan Manuel Rivas 20000 10 40 Jose Juaquin Velez 50000 10 50 Mario Hernandez 1000 10 Introducción a SQL y PL/SQL 1-44
  • 45. Eliminado Datos (delete) Delete Empleados Where Codigo = 10; Codigo Nombre 20 Carlos Velasquez 30 Salario Depto 5000 10 Juan Manuel Rivas 20000 10 40 Jose Juaquin Velez 50000 10 50 Mario Hernandez 1000 10 Introducción a SQL y PL/SQL 1-45
  • 46. Control de Transacciones  Commit –  Rollback –  Commit; Rollback; Save Point – Save Point <Nombre> Introducción a SQL y PL/SQL 1-46
  • 47. Resumen  Instrucciones SQL para manipular datos. – Insert – Update – Delete – Commit – Rollback Introducción a SQL y PL/SQL 1-47
  • 48. Control de Acceso Introducción a SQL y PL/SQL 1-48
  • 49. Overview  Conceptos: – – Privilegios –  Usuarios Roles Otorgar (Grant) y Revocar (Revoke) Privilegios a los objetos de la Base de Datos Introducción a SQL y PL/SQL 1-49
  • 50. Conceptos  Usuarios: SYS y SYSTEM CREATE USER ORLANDOL IDENTIFIED BY VALUES 'ECE5A72B8C80CBE3’;  Privilegios - Tablas - Vistas - Secuencias - Procedimientos - Funciones - Paquetes  DML (Data Manipulation) DDL (Data Definition) Labor de DBA Introducción a SQL y PL/SQL 1-50
  • 51. Conceptos  Roles: Facilita la administración – Roles de Aplicación: Conjunto de privilegios necesarios para ejecutar la Aplicación. – Roles de Usuario: Se crea un role para un grupo de usuarios con privilegios comunes. CREATE ROLE ROLGAS; Introducción a SQL y PL/SQL 1-51
  • 52. Otorgar (Grant) y Revocar (Revoke) Accesos a los objetos de la Base de Datos GRANT DELETE, INSERT, SELECT, UPDATE ON ACTA TO ROLGAS; GRANT EXECUTE ON PROLEGALIZAR TO JUANCM; REVOKE DELETE, INSERT, SELECT, UPDATE ON ACTA FROM ROLGAS; Introducción a SQL y PL/SQL 1-52
  • 53. Ejemplo de Uso de Seguridad Introducción a SQL y PL/SQL 1-53
  • 54. Resumen     Usuarios Roles Privilegios Manejo de Seguridad de Datos en Oracle Introducción a SQL y PL/SQL 1-54
  • 56. Overview  Declaración de Variables – – NOT NULL – %TYPE –     DEFAULT %ROWTYPE Convenciones de Nombres de variables Asignación de Valores a las variables Expresiones y Comparaciones Funciones del Lenguaje Introducción a SQL y PL/SQL 1-56
  • 57. Declaración de Variables 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’; Introducción a SQL y PL/SQL 1-57
  • 58. Convenciones de Nombres de Variables        sb  Cadena nu  Numerico dt  Fecha bl  Booleano rt  Registro cu  Cursores cn  Constante Introducción a SQL y PL/SQL 1-58
  • 59. Asignación de Valores a las variables nuValor Empleados.Codigo%type; ... nuValor := 25 select Codigo into nuValor from Empleados where Codigo = 25; Introducción a SQL y PL/SQL 1-59
  • 60. Expresiones y Comparaciones  Precedencia de Operación Introducción a SQL y PL/SQL 1-60
  • 61. Expresiones y Comparaciones  Operaadores Logicos Introducción a SQL y PL/SQL 1-61
  • 62. Expresiones y Comparaciones  Operadores de Comparación Introducción a SQL y PL/SQL 1-62
  • 63. Expresiones y Comparaciones  IS NULL –  BETWEEN –  IF Variable IS NULL THEN ... 45 BETWEEN 38 AND 44 IN y NOT IN – –  WHERE CODIGO IN (2,3,4) WHERE NOT IN (6,7) CONCATENAR – ‘suite’||’case’  ‘suitecase’ Introducción a SQL y PL/SQL 1-63
  • 64. Expresiones y Comparaciones DECODE SELECT DECODE (codigo,NULL,0,10,’A’,20,’B’) VALOR FROM EMPLEADOS; Introducción a SQL y PL/SQL 1-64
  • 65. Expresiones y Comparaciones CASE select sysdate fecha, to_number(TO_CHAR(sysdate, 'SS')) Minuto, 'Segundos ' || CASE WHEN (to_number(TO_CHAR(sysdate, 'SS')) IS NULL) THEN 'Nulos' WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 0) THEN 'Cero' WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 1) THEN 'Uno' WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 2) THEN 'Dos' WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 3) THEN 'Tres' WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 4) THEN 'Cuatro' WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 5) THEN 'Cinco' WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 6) THEN 'Seis' WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 7) THEN 'Siete' WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 8) THEN 'Ocho' WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 9) THEN 'Nueve' WHEN (to_number(TO_CHAR(sysdate, 'SS')) = 10) THEN 'Diez' WHEN (to_number(TO_CHAR(sysdate, 'SS')) > 10 AND to_number(TO_CHAR(sysdate, 'SS')) < 31) THEN 'entre 11 y 30' WHEN (to_number(TO_CHAR(sysdate, 'SS')) in (31,32,33,34,35,36,37,38,39)) THEN 'in (31,32,33,34,35,36,37,38,39)' ELSE 'entre 40 y 59' END as Opcion from dual Introducción a SQL y PL/SQL 1-65
  • 66. Funciones del Lenguaje (Tabla DUAL) Introducción a SQL y PL/SQL 1-66
  • 67. Resumen       Fundamentos básicos de PL/SQL Declaracion de Variables Convenciones Asignación de Valores a Variables Expresiones y Comparaciones Funciones del Lenguaje Introducción a SQL y PL/SQL 1-67
  • 70. Condicionales  IF – THEN IF condicion THEN secuencia de instrucciones END IF; Ejemplo: IF codigo = 5 THEN nuValor := 50000; END IF; Introducción a SQL y PL/SQL 1-70
  • 71. Condicionales  IF – THEN – ELSE IF condicion THEN secuencia de instrucciones 1; ELSE secuencia de instrucciones 2; END IF; Ejemplo IF codigo = 5 THEN nuValor := 50000; ELSE nuValor := 10; END IF; Introducción a SQL y PL/SQL 1-71
  • 72. Condicionales  IF – THEN – ELSIF IF condicion1 THEN secuencia de instrucciones 1; ELSIF condicion2 THEN secuencia de instrucciones 2; ELSE secuencia de instrucciones 3; END IF; Introducción a SQL y PL/SQL 1-72
  • 73. Iteraciones  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; Introducción a SQL y PL/SQL 1-73
  • 74. Iteraciones  WHILE – LOOP WHILE condicion LOOP secuencia de instrucciones END LOOP; Ejemplo WHILE total <=25000 LOOP total := total + 20; ... END LOOP; Introducción a SQL y PL/SQL 1-74
  • 75. Iteraciones  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; Introducción a SQL y PL/SQL 1-75
  • 76. Resumen   Estructuras de Control Condicionales – – IF – THEN – ELSE –  IF – THEN IF – THEN – ELSIF Iteraciones – LOOP – WHILE – FOR Introducción a SQL y PL/SQL 1-76
  • 77. 8 PL/SQL y su Interacción con Oracle Introducción a SQL y PL/SQL 1-77
  • 78. Overview   Caracteristicas de PL/SQL    Paso de Parametros a los cursores Manejo de Cursores – – Implicit Explicit Variables tipo cursor Atributos de los cursores – – – – %FOUND %NOTFOUND %ISOPEN %ROWCOUNT Introducción a SQL y PL/SQL 1-78
  • 79. Caracteristicas de PL/SQL       Soporte de SQL Soporta Programación Orientada a Objetos Mejor Perfomance Portable Integrado con SQL Manejo de Seguridad Introducción a SQL y PL/SQL 1-79
  • 80. Manejo de Cursores  Explicit Cursor –  Comandos: OPEN, FETCH, CLOSE. Declaración DECLARE CURSOR <Nombre> [(parametro1,parametro2...)] IS instrucción SELECT... Introducción a SQL y PL/SQL 1-80
  • 81. Manejo de Cursores Declare cursor cuEmpleados is select codigo,nombre from empleados where salario > 1000; nuCodigo Empleados.Codigo%type; sbNombre Empleados.Nombre%type; Begin open cuEmpleados; fetch cuEmpleados into nuCodigo,sbNombre; ... close cuEmpleados; End; Introducción a SQL y PL/SQL 1-81
  • 82. Manejo de Cursores  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; Introducción a SQL y PL/SQL 1-82
  • 83. Manejo de Cursores  FOR CURSOR declare cursor cuEmpleados is select codigo,nombre from Empleados where Salario > 1000; begin For rtEmp in cuEmpleados loop ... rtEmp.Codigo ... rtEmp.Nombre ... end loop; end; Introducción a SQL y PL/SQL 1-83
  • 84. Paso de Parametros a Cursores DECLARE CURSOR cuEmpleados (nuSalario number) is SELECT codigo,nombre FROM Empleados WHERE Salario > nuSalario; Introducción a SQL y PL/SQL 1-84
  • 85. Variables tipo cursor DECLARE CURSOR cuEmpleados is SELECT * FROM Empleados; rtEmp cuEmpleados%rowtype; BEGIN OPEN cuEmpleados FETCH cuEmpleados into rtEmp; .. CLOSE cuEmpleados; Introducción a SQL y PL/SQL 1-85
  • 86. Atributos de los Cursores  %FOUND: Es verdadero si se encontraron registros del cursor.  %NOTFOUND: Es verdadero si NO se encontraron registros del cursor.  %ISOPEN: Es verdadero si el cursor está abierto.  %ROWCOUNT: Devuleve la cantidad de registros que retorna el cursor. Introducción a SQL y PL/SQL 1-86
  • 87. Resumen   Uso de SQL y PL/SQL Uso de los Cursores – –    Implicit Explicit FOR CURSOR Parametros de los cursores Atributos de los cursores Introducción a SQL y PL/SQL 1-87
  • 88. 9 Manejo de Errores Introducción a SQL y PL/SQL 1-88
  • 90. Instrucción Exception  En Oracle las Advertencias o Mensajes de Error son llamados Excepciones (Exception).  Permite capturar los errores del sistema y mantener un control sobre las aplicaciones.  Pueden ser predefinidas o creadas por el programador  Introducción a SQL y PL/SQL 1-90
  • 92. User Define Exception  Declaración DECLARE null_salary EXCEPTION;  Inicializa la variable de Error PRAGMA EXCEPTION_INIT (null_salary,-60); DECLARE null_salary EXCEPTION; PRAGMA EXCEPTION_INIT (null_salary,-60); BEGIN ... RAISE null_salary; EXCEPTION WHEN null_salary THEN -- Manejo del Error Introducción a SQL y PL/SQL 1-92
  • 93. Mensajes de Error     Utilizacion de Tablas de Mensaje Funcion que retorne Mensaje Ej: fsbMensaje(); Mensajes Oracle SQLERRM Mensajes ORA-XX Introducción a SQL y PL/SQL 1-93
  • 94. Resumen    Manejo de errores Exception Usos de las Excepciones Mensajes de Error Introducción a SQL y PL/SQL 1-94
  • 95. 10 Creación de SubProgramas y Paquetes Introducción a SQL y PL/SQL 1-95
  • 97. SubProgramas  Funciones CREATE OR REPLACE FUNCTION nombre (parametro1,parametro2) return <tipo de dato> IS|AS declaraciones locales; BEGIN -- Instrucciones EXCEPTION -- Manejo de Errores END; Introducción a SQL y PL/SQL 1-97
  • 98. SubProgramas  Funciones (Uso de RETURN) CREATE OR REPLACE FUNCTION balance (cuenta number) RETURN number IS declaraciones locales; BEGIN -- Instrucciones return nuValor; EXCEPTION -- Manejo de Errores END; Introducción a SQL y PL/SQL 1-98
  • 99. SubProgramas  Procedimientos: Ejecuta Acción especifica CREATE OR REPLACE PROCEDURE inserta_tabla IS declaraciones locales; BEGIN -- Instrucciones EXCEPTION -- Manejo de Errores END; Introducción a SQL y PL/SQL 1-99
  • 102. Resumen  Objetos de Bases de Datos – Funciones – Procedimientos – Paquetes Introducción a SQL y PL/SQL 1-102
  • 103. P& R Introducción a SQL y PL/SQL 1-103

Hinweis der Redaktion

  1. Schedule:TimingTopic 60 minutesLecture 30 minutesPractice 90 minutesTotal