Manipuler efficacement les données dans une base de données peut être complexe.
Les erreurs dans les commandes peuvent entraîner des pertes de données ou des mises à jour incorrectes.
Cet article explique comment utiliser les commandes SQL INSERT, UPDATE et DELETE pour gérer vos données efficacement.
Maîtriser le langage SQL en environnement SGBDR. SQL n'aura plus de secrets pour vous !
Dans cette section, nous abordons les commandes essentielles pour manipuler les données dans une base de données : les ordres INSERT , UPDATE et DELETE . Vous apprendrez comment insérer de nouvelles données, mettre à jour des enregistrements existants, et supprimer des données de manière efficace.
Commande SQL INSERT : Guide Essentiel
L’instruction INSERT permet d’ajouter de nouveaux enregistrements dans une table. Elle est souvent utilisée pour insérer des informations de nouveaux employés, produits, ou tout autre type de donnée, et voici la syntaxe de base pour utiliser la commande insert :
INSERT INTO VALUES ();
Voici un exemple où l’on utilise des variables pour insérer un nouvel employé dans une table appelée salaries. Le code suivant compte le nombre d’employés avant et après l’insertion pour observer l’impact de l’instruction INSERT .
SET SERVEROUTPUT ON;
DECLARE
var_numero salaries.numero_sal%TYPE := 5;
var_nom salaries.nom_sal%TYPE := 'Harabazan';
var_prenom salaries.prenom_sal%TYPE := 'Hamid';
var_fonction salaries.fonction%TYPE := 'Big Boss';
var_salaire salaries.salaire%TYPE := 7000;
var_comission salaries.comission%TYPE := null;
nbr_salarie number(5);
BEGIN
-- Compte des employés avant insertion
SELECT COUNT(*) INTO nbr_salarie FROM salaries;
DBMS_OUTPUT.PUT_LINE('Nombre de salarié avant insert : ' || nbr_salarie);
-- Insertion de l'employé
INSERT INTO salaries VALUES (var_numero, var_nom, var_prenom, var_fonction, var_salaire, var_comission);
-- Compte des employés après insertion
SELECT COUNT(*) INTO nbr_salarie FROM salaries;
DBMS_OUTPUT.PUT_LINE('Nombre de salarié après insert : ' || nbr_salarie);
END;
Explication de l’exemple
Dans cet exemple, nous déclarons des variables pour stocker les informations d’un nouvel employé (numéro, nom, prénom, fonction, salaire, commission) et utilisons la commande INSERT pour insérer cet employé dans la table salaries.
- Initialisation :Avant l’insertion, nous comptons le nombre total d’employés dans la table avec SELECT COUNT(*) INTO nbr_salarie FROM salaries; et affichons ce nombre en utilisant DBMS_OUTPUT.PUT_LINE.
- Insertion :La commande INSERT INTO salaries VALUES (…) ajoute le nouvel employé à la table en utilisant les valeurs définies dans les variables.
- Vérification :Après l’insertion, nous comptons de nouveau le nombre total d’employés. Le programme affiche alors le nombre d’employés avant et après l’insertion, permettant de vérifier que l’opération a bien ajouté une ligne.
Le code renvoie deux lignes dans la console :
Maîtriser SQL UPDATE pour Vos Données
L’instruction UPDATE permet de modifier des enregistrements existants dans une table. Elle est souvent utilisée pour mettre à jour le statut d’une commande, changer des informations personnelles, ou adapter des données suite à des changements, et voici la syntaxe de base pour utiliser la commande UPDATE :
UPDATE SET = [WHERE PREDICAT];
La clause WHERE permet de cibler précisément les enregistrements à mettre à jour. Sans elle, tous les enregistrements de la table seront modifiés.
Dans l’exemple ci-dessous, nous mettons à jour l’état et la date d’envoi d’une commande dans la table commandes. Ce code affiche également l’état de la commande avant et après la mise à jour.
SET SERVEROUTPUT ON;
DECLARE
var_num commandes.numero_cde%TYPE := 1001;
var_dateenvoi DATE := SYSDATE;
var_nouveletat commandes.etat_cde%TYPE := 'TRAITEE';
var_etatactuel commandes.etat_cde%TYPE;
BEGIN
-- Afficher l'état actuel de la commande
SELECT etat_cde INTO var_etatactuel FROM commandes WHERE numero_cde = var_num;
DBMS_OUTPUT.PUT_LINE('État actuel de la commande ' || var_num || ' : ' || var_etatactuel);
-- Mise à jour de la commande
UPDATE commandes SET etat_cde = var_nouveletat, date_envoi = var_dateenvoi WHERE numero_cde = var_num;
-- Afficher l'état après mise à jour
SELECT etat_cde INTO var_etatactuel FROM commandes WHERE numero_cde = var_num;
DBMS_OUTPUT.PUT_LINE('État de la commande ' || var_num || ' après mise à jour : ' || var_etatactuel);
END;
/
Explication de l’exemple
- Préparation des données :Nous déclarons des variables pour stocker le numéro de commande, la date d’envoi (SYSDATE), et l’état cible (TRAITEE).
- Affichage de l’état actuel :Avant la mise à jour, nous récupérons l’état actuel de la commande avec SELECT etat_cde INTO var_etatactuel et l’affichons à l’aide de DBMS_OUTPUT.PUT_LINE.
- Mise à jour de la commande :La commande UPDATE change l’état et la date d’envoi de la commande ayant le numéro var_num.
- Affichage de l’état mis à jour :Nous récupérons et affichons l’état après la mise à jour pour confirmer la modification.
Le code renvoie deux lignes dans la console :
Optimiser SQL DELETE : Techniques Clés
L’instruction DELETE permet de supprimer des enregistrements d’une table. Elle est souvent utilisée pour effacer des données obsolètes, comme des commandes expirées ou des employés ayant quitté l’entreprise, et voici la syntaxe de base pour utiliser la commande DELETE :
DELETE FROM [WHERE PREDICAT];
La clause WHERE permet de cibler précisément les enregistrements à supprimer. Sans elle, tous les enregistrements de la table seront supprimés, ce qui est souvent irréversible.
Dans cet exemple, nous supprimons tous les employés dont le salaire est supérieur à une valeur définie (4000). Le code affiche le nombre total d’employés avant et après la suppression.
SET SERVEROUTPUT ON;
DECLARE
var_salaire salaries.salaire%TYPE := 4000;
nbr_salaries NUMBER(5);
BEGIN
-- Compte des salariés avant suppression
SELECT COUNT(*) INTO nbr_salaries FROM salaries;
DBMS_OUTPUT.PUT_LINE('Nombre de salarié avant suppression : ' || nbr_salaries);
-- Suppression des salariés dont le salaire est supérieur à 4000
DELETE FROM salaries WHERE salaire > var_salaire;
-- Compte des salariés après suppression
SELECT COUNT(*) INTO nbr_salaries FROM salaries;
DBMS_OUTPUT.PUT_LINE('Nombre de salarié après suppression : ' || nbr_salaries);
END;
Explication de l’exemple
- Déclaration des variables :var_salaire est défini avec la valeur 4000, représentant le seuil de salaire. nbr_salaries stocke le nombre de salariés avant et après suppression.
- Affichage du nombre de salariés avant suppression :Avec SELECT COUNT(*) INTO nbr_salaries, nous comptons les salariés présents avant la suppression, et ce nombre est affiché avec DBMS_OUTPUT.PUT_LINE.
- Suppression des salariés :La commande DELETE FROM salaries WHERE salaire > var_salaire supprime les enregistrements de la table salaries dont le salaire est supérieur à 4000.
- Affichage du nombre de salariés après suppression :Le nombre total d’employés est recompté et affiché, confirmant que certains enregistrements ont bien été supprimés.
Le code renvoie deux lignes dans la console :
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment insérer des données avec SQL?
Comment mettre à jour des données avec SQL?
Pourquoi utiliser WHERE dans une commande UPDATE?
Comment supprimer des enregistrements avec SQL?
Pourquoi est-il important d'utiliser WHERE dans une commande DELETE?
Conclusion
En maîtrisant les commandes SQL INSERT, UPDATE et DELETE, vous pouvez gérer vos données avec précision et efficacité. Comment envisagez-vous d’appliquer ces commandes dans vos propres projets de base de données?