Está en la página 1de 24

5 CLAVES

PARA UN BUEN
DESARROLLO DE BASE DE
DATOS EN PL/SQL
Para realizar un buen desarrollo de base de datos en ORACLE con
PL/SQL es indispensable cuidar la aplicación adecuada de los
siguientes 5 temas, que son clave al momento de realizar un
desarrollo:

1. JOINS
2. INDICES
3. EXCEPCIONES
4. CURSORES
5. CONVENCIONES
TIPOS DE JOIN
Los JOINS en ORACLE se utilizan para recuperar
información de multiples tablas.

Existen 4 tipos de JOIN:

 INNER JOIN
 LEFT OUTER JOIN
 RIGHT OUTER JOIN
 FULL OUTER JOIN
INNER JOIN

El INNER JOIN retorna todos los registros que existen tanto en la tabla 1 como en la tabla 2.

Sintaxis

SELECT columnas SELECT columnas


FROM table1 INNER JOIN table2 FROM table1, table2
ON table1.columna = table2.columna; WHERE table1.columna = table2.columna;
LEFT OUTER JOIN

Este tipo de JOIN retorna todos los registros de la tabla de la izquierda (tabla 1 para este ejemplo), y
solamente los registros de la otra tabla que cumplan con la condición.

Sintaxis

SELECT columnas SELECT columnas


FROM tabla1 LEFT [OUTER] JOIN tabla2 FROM tabla1, tabla2
ON table1.columan = table2.columan; WHERE table1.columna = table2.columna(+);

NOTA:
En algunas bases de datos, las palabras clave LEFT OUTER JOIN se reemplazan con LEFT JOIN.
RIGTH OUTER JOIN

Este tipo de JOIN retorna todos los registros de la tabla de la derecha (tabla 2 para este ejemplo), y
solamente los registros de la otra tabla que cumplan con la condición.

Sintaxis

SELECT columnas SELECT columnas


FROM tabla1 RIGTH [OUTER] JOIN tabla2 FROM tabla1, tabla2
ON table1.columna = table2.columna; WHERE table1.columna = table2.columna(+);

NOTA:
En algunas bases de datos, las palabras clave RIGTH OUTER JOIN se reemplazan con RIGTH JOIN.
FULL OUTER JOIN

Este tipo de JOIN retorna todos los registros tanto de las 2 tablas, colocando null en los campos donde
no se cumple la condición.

Sintaxis

SELECT columnas
FROM tabla1 FULL [OUTER] JOIN tabla2
ON table1.columan = table2.columan;

NOTA:
En algunas bases de datos, las palabras clave FULL OUTER JOIN se reemplazan con FULL JOIN.
INDICES
Un índice es una estructura de datos que mejora la velocidad de las
operaciones de consulta de datos en una tabla, estos pueden ser
simples o compuestos.
Simples: están conformados por un solo campo
Compuestos: están conformados por más de un campo.

La utilización de índices en una consulta es muy importante para


el rendimiento, si no se usa correctamente puede ser fatal.

Sintaxis
CREATE [UNIQUE] INDEX nombre_indice ON table_name nombre_tabla (columna1,
columna2, ... columnaN) ;
MANEJO DE EXCEPCIONES
¿Qué es una excepción ?
Una excepción es una advertencia o condición de error.

¿Para qué sirve una excepción ?


Las excepciones sirven para tratar los errores y mensajes. Las
excepciones se controlan dentro de su propio bloque.

SINTAXIS

DECLARE
-- Declaraciones
BEGIN
-- Sentencias de Ejecución
EXCEPTION
-- Sentencias de Control de Excepciones
END;

Cuando ocurre un error, se ejecuta la porción del programa marcada


por el bloque EXCEPTION, transfiriéndose el control a ese bloque de
sentencias.
Tipos de Excepciones
Existen 2 tipos de excepciones:

 Predefinidas
 Definidas por el Usuario
Excepciones Predefinidas.
Las excepciones predefinidas no necesitan ser declaradas. Simplemente se
utilizan cuando estas son lanzadas por algún error determinado.

Sintaxis
DECLARE
-- Declaraciones
BEGIN
-- Ejecución
EXCEPTION
WHEN NO_DATA_FOUND THEN
-- Se ejecuta cuando ocurre una excepción de tipo NO_DATA_FOUND
WHEN ZERO_DIVIDE THEN
-- Se ejecuta cuando ocurre una excepción de tipo ZERO_DIVIDE
WHEN OTHERS THEN
-- Se ejecuta cuando ocurre una excepción de un tipo no controlado anteriormente
END;
Listado de Excepciones Predefinidas.
Excepciones definidas por el usuario.
 Estas deben ser declaradas en el segmento DECLARE de un bloque, subprograma o
paquete.
 Se deben declarar como cualquier otra variable, asignándole el tipo de dato
EXCEPTION.
 La excepción se debe capturar y lanzar desde una sentencia RAISE.

Sintaxis
DECLARE
-- Declaraciones
MiNuevaExcepcion EXCEPTION;
BEGIN
-- Ejecución
RAISE MiNuevaExcepcion ;
EXCEPTION
WHEN MiNuevaExcepcion THEN
-- Se ejecuta cuando ocurre una excepción de tipo MiNuevaExcepcion
END;
MANEJO DE CURSORES
PL/SQL utiliza cursores para gestionar las instrucciones SELECT.
Un cursor es un conjunto de registros devuelto por una
instrucción SQL. Técnicamente los cursores son fragmentos de
memoria reservados para procesar los resultados de una
consulta SELECT.

Un cursor se define como cualquier otra variable de PL/SQL y


debe nombrarse de acuerdo a los mismos convenios que
cualquier otra variable.
Existen dos tipos de cursores:

Cursores implícitos. Este tipo de cursores se utiliza para


operaciones SELECT INTO. Se usan cuando la consulta devuelve un
único registro. No necesitan declaración.

Cursores explícitos. Son los cursores que son declarados y


controlados por el programador. Se utilizan cuando la consulta
devuelve un conjunto de registros. Ocasionalmente también se
utilizan en consultas que devuelven un único registro por razones
de eficiencia. Son más rápidos.
CURSOR IMPLÍCITO
Los cursores implícitos se utilizan para realizar consultas SELECT que
devuelven un único registro.

SINTAXIS

SELECT <columna/s>
INTO <variable/s>
FROM <tabla> [where];

Importante considerar:
 Con cada cursor implícito debe existir la palabra clave INTO.
 Las variables que reciben los datos devueltos por el cursor tienen que
contener el mismo tipo de dato que las columnas de la tabla.
 Solo pueden devolver una única fila. En caso de que se devuelva más de
una fila (o ninguna fila) se producirá una excepción.
SINTAXIS
CURSOR EXPLÍCITO
declare
cursor c_paises is
SELECT CO_PAIS, DESCRIPCION
FROM PAISES;
begin
/* Sentencias del bloque ...*/
end;

CURSOR EXPLÍCITO CON PARÁMETROS


declare
cursor c_paises (p_continente IN VARCHAR2) is
SELECT CO_PAIS, DESCRIPCION
FROM PAISES
WHERE CONTINENTE = p_continente;
begin
/* Sentencias del bloque ...*/
end;

NOTA: Para procesar instrucciones SELECT que devuelvan más de una fila, son
necesarios cursores explícitos combinados con un estructura de bloque.
CONVENCIONES
Las convenciones a la hora de codificar ayudan a la uniformidad y
legibilidad del código fuente, facilitando su mantenimiento por terceros
y eliminando la dependencia del desarrollador.

Existen convenciones para la aplicación de:

• Uso de palabras en mayúscula


• Nombres de packages, procedures, funciones
• Declaración de parámetros de entrada y salida
• Declaración de tipos de datos
• Declaración de variables
• Uso de alias
• Capitalización de palabras reservadas y otros objetos
• Nombrado de Vistas
• Nombrado de Triggers
• Nombrado de Cursores
• Uso de comentarios para identificar la versión
• Documentación de código
• Manejo de excepciones
• Manejo de transacciones
• Uso de logs
• Identación del código

También podría gustarte