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 a v_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:

BEGIN
    DELETE FROM employees
    WHERE employee_id = 207;

    COMMIT;
END;
/

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ó:

BEGIN
    UPDATE employees
    SET salary = 6000
    WHERE employee_id = 101;

    COMMIT;
END;
/

Exercici 4: Eliminar dades

Escriu un bloc PL/SQL que elimini un empleat amb employee_id 208.

Solució:

BEGIN
    DELETE FROM employees
    WHERE employee_id = 208;

    COMMIT;
END;
/

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.

© Copyright 2024. Tots els drets reservats