Este curso brindará al alumno el conocimiento necesario para hacer programación en PL/SQL en una base de datos Oracle 10g.

Primero vamos a dar una repasadita al lenguaje SQL y ver algunas sentencias avanzadas del SQL. Luego veremos el PL/SQL.

Manual del alumno

Este manual del alumno es una ayuda para el alumno, para tenga un recuerdo del curso. Este manual contiene un resumen de las materias que se van a estudiar durante el curso, pero el alumno debería de tomar notas personales para completas este manual.

Requisitos para atender a este curso

Se requiere un conocimiento del lenguaje SQL.

Herramienta de desarrollo

Existen muchas herramientas de desarrollo para el PL/SQL. Lo mas básico es un editor de texto y SQL plus.

Las herramientas mas populares son TOAD, SQL Navigator, PL/SQL Developper, SQL Developper.

SQL Developper, desarrollado por Oracle es gratis, los demás necesitan comprar una licencia.

Cualquier herramienta se puede usar en el curso. Lo ideal es usar la con la cual tiene mas experiencia (y licencia), o usar SQL Developper que es gratis.

ML – Sentencias de manipulación de datos

Al fin de este capítulo el alumno será capaz de hacer encuestas de la base de datos. No vamos a ver todas las opciones, ni las encuestas de otros objetos de la base de datos (vistas, funciones, secuencias,…) porque eso sale del cuadro de este curso de iniciación.

Existen muchas opciones (top, exists, cube,…) para cada tipo de acción, pero estas opciones dependen de la base de datos utilizadas y/o de su versión. Solo vamos a ver las sentencias básicas.

Existen muchos entornos que simplifican las encuestas sobre los datos.

Insert

La sentencia ‘Insert’ permite de insertar datos en una tabla.

INSERT INTO <nombre_de_tabla> (<campo_1>,<campo_2>,<…>) VALUES (<valor_campo_1>/<valor_campo_2>/<valor_…>);

También existe:

INSERT INTO <nombre_de_tabla> (<campo_1>,<campo_2>,<…>) <SELECT STATEMENT>;

Update

La sentencia ‘Update’ permite de modificar el valor de uno o varios datos en una tabla.

UPDATE <nombre_de_tabla> SET <campo_1>=<valor_campo_1>,<campo_2>=<valor_campo_2>,<…>;

De costumbre se limita el cambio a ciertos registros, mencionados utilizando una cláusula WHERE.

UPDATE <nombre_de_tabla> SET <campo_1>=<valor_campo_1>,<campo_2>=<valor_campo_2>,<…>

WHERE <cláusula_where>;

Delete

La sentencia ‘Delete’ permite de borrar un uno o varios registros en una tabla.

DELETE FROM <nombre_de_tabla> ;

De costumbre se limita el borrado a ciertos registros, mencionados utilizando una cláusula WHERE.

DELETE FROM <nombre_de_tabla> WHERE <cláusula_where>;

Commit y rollback

Si la base de datos permite la gestión de transacciones, se puede utilizar ‘Commit’ para confirmar una ‘Insert’, ‘Update’, o ‘Delete’, o ‘Rollback’ para cancelarlos. Ciertas base de datos pueden ser configuradas para autocommit, que hace un commit automaticamente despues de cada instrucción, a menos que se ha iniciado una transacción de manera explicita (con ‘begin transaction xxx;).

Hasta que el ‘Commit’ está ejecutado, las modificaciones no están inscritas de manera permanente en la base de datos, y sólo son visible para la sesión en curso del usuario autor de las acciones. Después del ‘Commit’, los cambios son definitivos y visible para todos.

Cuidado que ciertos objetos pueden quedar bloqueados (bloqueando otros usuarios) hasta que el commit sea hecho.

El commit/rollback permite confirmar o de hacer un lote de transacción, para que si una falle, todas las anteriores se anulan también. Cuando se necesita una integridad de transacción, se utiliza en commit/rollback.

Ejemplo:

SELECT emp_no,job_grade FROM employee where emp_no=4; update employee set job_grade=6 where emp_no=4;
SELECT emp_no,job_grade FROM employee where emp_no=4; rollback;
SELECT emp_no,job_grade FROM employee where emp_no=4; update employee set job_grade=6 where emp_no=4;
SELECT emp_no,job_grade FROM employee where emp_no=4; commit;
SELECT emp_no,job_grade FROM employee where emp_no=4;

Savepoint

Un savepoint permite identificar un punto en una transacción al cual se podrá eventualmente regresar (rollback).

SELECT emp_no,job_grade FROM employee where emp_no=4;

START TRANSACTION;

update employee set job_grade=5 where emp_no=45;
SELECT emp_no,job_grade FROM employee where emp_no=4; savepoint vale_cinco;
SELECT emp_no,job_grade FROM employee where emp_no=4; update employee set job_grade=4 where emp_no=45;
SELECT emp_no,job_grade FROM employee where emp_no=4; rollback to savepoint vale_cinco;
SELECT emp_no,job_grade FROM employee where emp_no=4; rollback;

Select

El ‘Select’ permite de seleccionar datos en la base de datos, y visualizarlos.

Se puede utilizar un alias para que el campo se pueda llamar con otro nombre.

SELECT <campo_1>,<campo_2>,<…> FROM <nombre_tabla>;
SELECT <campo_1> as <alias1>,<campo_2>,<…> FROM <nombre_tabla>;

Para seleccionar todos los campos de la tabla, se utiliza el asterisco en vez de los nombres de campo.

SELECT * FROM <nombre_tabla>;

Ejemplo:

SELECT emp_no,job_grade as nivel FROM employee;
SELECT * FROM employee;

Enlace de Descarga
Fuente: Cedric Simon, SolucionJava.com