Manual de PL/SQL y SQL para Oracle 19c
1. Introducción a SQL y PL/SQL
SQL (Structured Query Language) es un lenguaje estándar para el acceso y manipulación de bases de
datos. PL/SQL (Procedural Language/SQL) es una extensión de Oracle para SQL que permite programación
estructurada.
Ventajas de PL/SQL:
- Integración nativa con SQL
- Soporte para estructuras de control
- Manejo de excepciones
- Modularidad con procedimientos y funciones
2. Comandos Básicos de SQL
SELECT: Consulta datos
INSERT: Inserta datos
UPDATE: Actualiza datos
DELETE: Elimina datos
CREATE: Crea objetos de base de datos
DROP: Elimina objetos
Ejemplo:
SELECT * FROM empleados WHERE departamento_id = 10;
3. Funciones y Agrupaciones
Manual de PL/SQL y SQL para Oracle 19c
Funciones de agregación:
- SUM, AVG, COUNT, MAX, MIN
GROUP BY permite agrupar resultados por una o más columnas.
HAVING filtra resultados agrupados.
Ejemplo:
SELECT departamento_id, AVG(salario) FROM empleados GROUP BY departamento_id;
4. Introducción a PL/SQL
Un bloque PL/SQL básico:
DECLARE
v_salario NUMBER(8,2);
BEGIN
SELECT salario INTO v_salario FROM empleados WHERE empleado_id = 100;
DBMS_OUTPUT.PUT_LINE('Salario: ' || v_salario);
END;
5. Cursores y Manejo de Excepciones
Cursores permiten recorrer filas de una consulta:
CURSOR c_emp IS SELECT * FROM empleados;
BEGIN
Manual de PL/SQL y SQL para Oracle 19c
FOR r_emp IN c_emp LOOP
DBMS_OUTPUT.PUT_LINE(r_emp.nombre);
END LOOP;
END;
Excepciones capturan errores en tiempo de ejecución:
BEGIN
-- código
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('No se encontraron datos');
END;
6. Procedimientos, Funciones y Paquetes
Procedimientos: realizan tareas sin retornar valores.
CREATE OR REPLACE PROCEDURE saluda IS BEGIN DBMS_OUTPUT.PUT_LINE('Hola'); END;
Funciones: retornan un valor.
CREATE OR REPLACE FUNCTION get_salario(id NUMBER) RETURN NUMBER IS v_salario NUMBER;
BEGIN SELECT salario INTO v_salario FROM empleados WHERE empleado_id = id; RETURN v_salario;
END;
Paquetes: agrupan procedimientos y funciones relacionadas.
Manual de PL/SQL y SQL para Oracle 19c
1. Introducción a SQL y PL/SQL
SQL (Structured Query Language) es un lenguaje estándar para el acceso y manipulación de bases de
datos. PL/SQL (Procedural Language/SQL) es una extensión de Oracle para SQL que permite programación
estructurada.
Ventajas de PL/SQL:
- Integración nativa con SQL
- Soporte para estructuras de control
- Manejo de excepciones
- Modularidad con procedimientos y funciones
2. Comandos Básicos de SQL
SELECT: Consulta datos
INSERT: Inserta datos
UPDATE: Actualiza datos
DELETE: Elimina datos
CREATE: Crea objetos de base de datos
DROP: Elimina objetos
Ejemplo:
SELECT * FROM empleados WHERE departamento_id = 10;
3. Funciones y Agrupaciones
Manual de PL/SQL y SQL para Oracle 19c
Funciones de agregación:
- SUM, AVG, COUNT, MAX, MIN
GROUP BY permite agrupar resultados por una o más columnas.
HAVING filtra resultados agrupados.
Ejemplo:
SELECT departamento_id, AVG(salario) FROM empleados GROUP BY departamento_id;
4. Introducción a PL/SQL
Un bloque PL/SQL básico:
DECLARE
v_salario NUMBER(8,2);
BEGIN
SELECT salario INTO v_salario FROM empleados WHERE empleado_id = 100;
DBMS_OUTPUT.PUT_LINE('Salario: ' || v_salario);
END;
5. Cursores y Manejo de Excepciones
Cursores permiten recorrer filas de una consulta:
CURSOR c_emp IS SELECT * FROM empleados;
BEGIN
Manual de PL/SQL y SQL para Oracle 19c
FOR r_emp IN c_emp LOOP
DBMS_OUTPUT.PUT_LINE(r_emp.nombre);
END LOOP;
END;
Excepciones capturan errores en tiempo de ejecución:
BEGIN
-- código
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('No se encontraron datos');
END;
6. Procedimientos, Funciones y Paquetes
Procedimientos: realizan tareas sin retornar valores.
CREATE OR REPLACE PROCEDURE saluda IS BEGIN DBMS_OUTPUT.PUT_LINE('Hola'); END;
Funciones: retornan un valor.
CREATE OR REPLACE FUNCTION get_salario(id NUMBER) RETURN NUMBER IS v_salario NUMBER;
BEGIN SELECT salario INTO v_salario FROM empleados WHERE empleado_id = id; RETURN v_salario;
END;
Paquetes: agrupan procedimientos y funciones relacionadas.
Manual de PL/SQL y SQL para Oracle 19c
7. Triggers (Disparadores)
Los triggers son bloques PL/SQL que se ejecutan automáticamente ante eventos en una tabla o vista.
Ejemplo de trigger BEFORE INSERT:
CREATE OR REPLACE TRIGGER trg_bi_empleados
BEFORE INSERT ON empleados
FOR EACH ROW
BEGIN
:NEW.fecha_ingreso := SYSDATE;
END;
8. Vistas, Índices y Secuencias
Vistas: objetos lógicos que muestran datos de una o más tablas.
CREATE VIEW vista_empleados AS SELECT nombre, salario FROM empleados;
Índices: mejoran el rendimiento de las consultas.
CREATE INDEX idx_nombre ON empleados(nombre);
Secuencias: generan valores únicos.
CREATE SEQUENCE seq_emp START WITH 1 INCREMENT BY 1;
9. Ejercicios Prácticos - SQL
1. Listar todos los empleados cuyo salario sea mayor a 3000.