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_name
per emmagatzemar el nom de l'empleat. - BEGIN: Iniciem el bloc PL/SQL.
- SELECT INTO: Recuperem el nom de l'empleat amb
employee_id
100 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', '[email protected]', 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:
BEGIN UPDATE employees SET email = '[email protected]' WHERE employee_id = 207; COMMIT; END; /
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', '[email protected]', 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