Oracle PL / SQL Insérer, mettre à jour, supprimer & Sélectionner dans (exemple)

Table des matières:

Anonim

Dans ce tutoriel, nous allons apprendre à utiliser SQL en PL / SQL. SQL est le composant réel qui prend en charge la récupération et la mise à jour des données dans la base de données, tandis que PL / SQL est le composant qui traite ces données. En outre, dans cet article, nous discuterons également de la manière de combiner le SQL dans le bloc PL / SQL.

Dans ce didacticiel, vous apprendrez-

  • Insertion de données
  • Mise à jour des données
  • Suppression de données
  • Sélection des données

Transactions DML en PL / SQL

DML signifie Data Manipulation Language . Ces instructions sont principalement utilisées pour effectuer l'activité de manipulation. Il traite des opérations ci-dessous.

  • Insertion de données
  • Mise à jour des données
  • Suppression de données
  • Sélection des données

En PL / SQL, nous ne pouvons faire la manipulation des données qu'en utilisant les commandes SQL.

Insertion de données

En PL / SQL, nous pouvons insérer les données dans n'importe quelle table à l'aide de la commande SQL INSERT INTO. Cette commande prendra le nom de la table, la colonne de la table et les valeurs de colonne comme entrée et insérera la valeur dans la table de base.

La commande INSERT peut également prendre les valeurs directement d'une autre table en utilisant l'instruction 'SELECT' plutôt que de donner les valeurs pour chaque colonne. Grâce à l'instruction 'SELECT', nous pouvons insérer autant de lignes que la table de base contient.

Syntaxe:

BEGININSERT INTO 
(,,… )VALUES(,… :);END;
  • La syntaxe ci-dessus montre la commande INSERT INTO. Le nom et les valeurs de la table sont des champs obligatoires, tandis que les noms de colonnes ne sont pas obligatoires si les instructions d'insertion ont des valeurs pour toutes les colonnes de la table.
  • Le mot-clé 'VALUES' est obligatoire si les valeurs sont données séparément comme indiqué ci-dessus.

Syntaxe:

BEGININSERT INTO 
(,,… ,)SELECT ,,…  FROM 
;END;
  • La syntaxe ci-dessus montre la commande INSERT INTO qui prend les valeurs directement de à l'aide de la commande SELECT.
  • Le mot-clé 'VALUES' ne doit pas être présent dans ce cas car les valeurs ne sont pas données séparément.

Mise à jour des données

La mise à jour des données signifie simplement une mise à jour de la valeur de n'importe quelle colonne du tableau. Cela peut être fait à l'aide de l'instruction «UPDATE». Cette instruction prend le nom de la table, le nom de la colonne et la valeur comme entrée et met à jour les données.

Syntaxe:

BEGIN UPDATE 
SET =,=,=WHERE ;END;
  • La syntaxe ci-dessus montre la mise à jour. Le mot-clé "SET" indique au moteur PL / SQL de mettre à jour la valeur de la colonne avec la valeur donnée.
  • La clause «WHERE» est facultative. Si cette clause n'est pas donnée, la valeur de la colonne mentionnée dans l'ensemble du tableau sera mise à jour.

Suppression de données

La suppression des données signifie supprimer un enregistrement complet de la table de la base de données. La commande 'DELETE' est utilisée à cet effet.

Syntaxe:

BEGINDELETEFROM
WHERE ;END;
  • La syntaxe ci-dessus montre la commande DELETE. Le mot-clé «FROM» est facultatif et avec ou sans clause «FROM», la commande se comporte de la même manière.
  • La clause «WHERE» est facultative. Si cette clause n'est pas donnée, alors la table entière sera supprimée.

Sélection des données

La projection / extraction de données signifie pour récupérer les données requises de la table de base de données. Ceci peut être réalisé en utilisant la commande «SELECT» avec la clause «INTO». La commande 'SELECT' récupérera les valeurs de la base de données et la clause 'INTO' affectera ces valeurs à la variable locale du bloc PL / SQL.

Vous trouverez ci-dessous les points à prendre en compte dans l'instruction «SELECT».

  • L'instruction 'SELECT' ne doit renvoyer qu'un seul enregistrement lors de l'utilisation de la clause 'INTO' car une variable ne peut contenir qu'une seule valeur. Si l'instruction 'SELECT' renvoie plus d'une valeur que 'TOO_MANY_ROWS', une exception sera déclenchée.
  • L'instruction 'SELECT' affectera la valeur à la variable dans la clause 'INTO', elle doit donc obtenir au moins un enregistrement de la table pour remplir la valeur. S'il n'a obtenu aucun enregistrement, l'exception 'NO_DATA_FOUND' est déclenchée.
  • Le nombre de colonnes et leur type de données dans la clause 'SELECT' doivent correspondre au nombre de variables et leurs types de données dans la clause 'INTO'.
  • Les valeurs sont extraites et remplies dans le même ordre que celui mentionné dans l'instruction.
  • La clause 'WHERE' est facultative et permet d'avoir plus de restriction sur les enregistrements qui vont être récupérés.
  • L'instruction 'SELECT' peut être utilisée dans la condition 'WHERE' d'autres instructions DML pour définir les valeurs des conditions.
  • L'instruction 'SELECT' lors de l'utilisation des instructions 'INSERT', 'UPDATE', 'DELETE' ne doit pas avoir de clause 'INTO' car elle ne remplira aucune variable dans ces cas.

Syntaxe:

BEGINSELECT ,…  INTO ,… FROM 
WHERE ;END;
  • La syntaxe ci-dessus montre la commande SELECT-INTO. Le mot-clé «FROM» est obligatoire et identifie le nom de la table à partir de laquelle les données doivent être extraites.
  • La clause «WHERE» est facultative. Si cette clause n'est pas donnée, les données de la table entière seront récupérées.

Exemple 1 : Dans cet exemple, nous allons voir comment effectuer des opérations DML en PL / SQL. Nous allons insérer les quatre enregistrements ci-dessous dans la table emp.

EMP_NAME EMP_NO UN SALAIRE DIRECTEUR
BBB 1000 25 000 AAA
XXX 1001 10 000 BBB
YYY 1002 10 000 BBB
ZZZ 1003 7500 BBB

Ensuite, nous allons mettre à jour le salaire de 'XXX' à 15000, et nous allons supprimer l'enregistrement d'employé 'ZZZ'. Enfin, nous allons projeter les coordonnées de l'employé «XXX».

DECLAREl_emp_name VARCHAR2(250);l_emp_no NUMBER;l_salary NUMBER;l_manager VARCHAR2(250);BEGIN INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘BBB’,1000,25000,’AAA’);INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES('XXX',1001,10000,’BBB);INSERT INTO emp(emp_name,emp_no,salary,managedVALUES(‘YYY',1002,10000,'BBB');INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘ZZZ',1003,7500,'BBB'):‭COMMIT;Dbms_output.put_line(‘Values Inserted');UPDATE EMPSET salary=15000WHERE emp_name='XXX';COMMIT;Dbms_output.put_line(‘Values Updated');DELETE emp WHERE emp_name='ZZZ';COMMIT:Dbms_output.put_line('Values Deleted );SELECT emp_name,emp_no,salary,manager INTO l_emp_name,l_emp_no,l_salary,l_manager FROM emp WHERE emp_name='XXX';Dbms output.put line(‘Employee Detail’);Dbms_output.put_line(‘Employee Name:‘||l_emp_name);Dbms_output.put_line(‘Employee Number:‘||l_emp_no);Dbms_output.put_line(‘Employee Salary:‘||l_salary);Dbms output.put line(‘Emplovee Manager Name:‘||l_manager):END;/

Production:

Values InsertedValues UpdatedValues DeletedEmployee DetailEmployee Name:XXXEmployee Number:1001Employee Salary:15000Employee Manager Name:BBB

Explication du code:

  • Ligne de code 2-5 : déclaration de la variable.
  • Ligne de code 7-14 : Insertion des enregistrements dans la table emp.
  • Ligne de code 15 : validation des transactions d'insertion.
  • Ligne de code 17-19 : Mise à jour du salaire de l'employé 'XXX' à 15000
  • Ligne de code 20 : validation de la transaction de mise à jour.
  • Ligne de code 22 : Suppression de l'enregistrement de 'ZZZ'
  • Ligne de code 23 : validation de la transaction de suppression.
  • Ligne de code 25-27 : Sélection de l'enregistrement de 'XXX' et saisie dans la variable l_emp_name, l_emp_no, l_salary, l_manager.
  • Ligne de code 28-32 : affichage de la valeur des enregistrements extraits.