En aquest tema, aprendrem com utilitzar les sentències SQL dins de PL/SQL. Això inclou la selecció, inserció, actualització i eliminació de dades en una base de dades Oracle. També veurem com combinar SQL amb PL/SQL per crear aplicacions més potents i flexibles.
Continguts
Introducció a les sentències SQL en PL/SQL
PL/SQL és una extensió del llenguatge SQL que permet la programació procedimental dins d'una base de dades Oracle. Això significa que podem utilitzar totes les sentències SQL estàndard dins dels blocs PL/SQL per manipular dades.
Conceptes clau:
- DML (Data Manipulation Language): Inclou les sentències SQL per manipular dades, com SELECT, INSERT, UPDATE i DELETE.
- DQL (Data Query Language): Inclou la sentència SELECT per recuperar dades.
- DCL (Data Control Language): Inclou les sentències GRANT i REVOKE per controlar l'accés a les dades.
- TCL (Transaction Control Language): Inclou les sentències COMMIT, ROLLBACK i SAVEPOINT per gestionar transaccions.
SELECT en PL/SQL
La sentència SELECT s'utilitza per recuperar dades d'una base de dades. En PL/SQL, podem utilitzar SELECT per assignar valors a variables o per processar resultats dins d'un bucle.
Exemple:
DECLARE
v_employee_name VARCHAR2(50);
BEGIN
SELECT first_name || ' ' || last_name
INTO v_employee_name
FROM employees
WHERE employee_id = 100;
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || v_employee_name);
END;
/Explicació:
- DECLARE: Declarem una variable
v_employee_nameper emmagatzemar el nom de l'empleat. - BEGIN: Iniciem el bloc PL/SQL.
- SELECT INTO: Recuperem el nom de l'empleat amb
employee_id100 i l'assignem av_employee_name. - DBMS_OUTPUT.PUT_LINE: Mostrem el nom de l'empleat.
INSERT en PL/SQL
La sentència INSERT s'utilitza per afegir noves files a una taula.
Exemple:
BEGIN
INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id)
VALUES (207, 'John', 'Doe', 'jdoe@example.com', SYSDATE, 'IT_PROG');
COMMIT;
END;
/Explicació:
- INSERT INTO: Afegim una nova fila a la taula
employees. - VALUES: Especifiquem els valors per a cada columna.
- COMMIT: Confirmem la transacció per fer permanents els canvis.
UPDATE en PL/SQL
La sentència UPDATE s'utilitza per modificar dades existents en una taula.
Exemple:
Explicació:
- UPDATE: Modifiquem la taula
employees. - SET: Especifiquem la nova adreça de correu electrònic.
- WHERE: Identifiquem la fila a actualitzar.
- COMMIT: Confirmem la transacció.
DELETE en PL/SQL
La sentència DELETE s'utilitza per eliminar files d'una taula.
Exemple:
Explicació:
- DELETE FROM: Eliminem files de la taula
employees. - WHERE: Identifiquem la fila a eliminar.
- COMMIT: Confirmem la transacció.
Exercicis pràctics
Exercici 1: Recuperar dades
Escriu un bloc PL/SQL que recuperi el nom i el salari d'un empleat amb employee_id 101 i mostri els resultats.
Solució:
DECLARE
v_employee_name VARCHAR2(50);
v_salary NUMBER;
BEGIN
SELECT first_name || ' ' || last_name, salary
INTO v_employee_name, v_salary
FROM employees
WHERE employee_id = 101;
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || v_employee_name);
DBMS_OUTPUT.PUT_LINE('Salary: ' || v_salary);
END;
/Exercici 2: Inserir dades
Escriu un bloc PL/SQL que afegeixi un nou empleat a la taula employees.
Solució:
BEGIN
INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id)
VALUES (208, 'Jane', 'Smith', 'jsmith@example.com', SYSDATE, 'HR_REP');
COMMIT;
END;
/Exercici 3: Actualitzar dades
Escriu un bloc PL/SQL que actualitzi el salari d'un empleat amb employee_id 101 a 6000.
Solució:
Exercici 4: Eliminar dades
Escriu un bloc PL/SQL que elimini un empleat amb employee_id 208.
Solució:
Conclusió
En aquest tema, hem après com utilitzar les sentències SQL dins de PL/SQL per manipular dades en una base de dades Oracle. Hem vist com utilitzar les sentències SELECT, INSERT, UPDATE i DELETE, i hem practicat amb alguns exercicis. Aquestes habilitats són fonamentals per treballar amb PL/SQL i crear aplicacions robustes i eficients. En el proper tema, explorarem els cursors implícits i explícits en PL/SQL.
Curs de PL/SQL
Mòdul 1: Introducció a PL/SQL
Mòdul 2: Fonaments de PL/SQL
- Estructura del bloc PL/SQL
- Variables i tipus de dades
- Estructures de control
- Cursors
- Gestió d'excepcions
