0% ont trouvé ce document utile (0 vote)
2 vues10 pages

SQL2

SQL est un langage standard pour interagir avec les bases de données relationnelles, comprenant trois sous-langages : LDD pour la définition des données, LMD pour la manipulation des données, et le langage de requêtes. Le LMD permet d'insérer, de modifier et de supprimer des données via des commandes telles que INSERT, UPDATE et DELETE, chacune ayant une syntaxe spécifique. Il est recommandé de toujours préciser les colonnes lors des insertions pour améliorer la lisibilité et la robustesse du code.

Transféré par

djalilsmara19
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues10 pages

SQL2

SQL est un langage standard pour interagir avec les bases de données relationnelles, comprenant trois sous-langages : LDD pour la définition des données, LMD pour la manipulation des données, et le langage de requêtes. Le LMD permet d'insérer, de modifier et de supprimer des données via des commandes telles que INSERT, UPDATE et DELETE, chacune ayant une syntaxe spécifique. Il est recommandé de toujours préciser les colonnes lors des insertions pour améliorer la lisibilité et la robustesse du code.

Transféré par

djalilsmara19
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

SQL

Structured Query
Language
Le langage standard pour interagir avec les bases de données relationnelles.
SQL : Trois langages en un
SQL regroupe en réalité trois sous-langages complémentaires, chacun ayant un rôle précis dans la gestion des données.

LDD — Langage de Définition de LMD — Manipulation de Données Langage de Requêtes


Données
• INSERT — insérer des tuples • SELECT … FROM … WHERE
• CREATE TABLE — créer une table • UPDATE — mettre à jour des tuples • Interrogation et extraction des données
• ALTER TABLE — modifier une table • DELETE — supprimer des tuples • Jointures, agrégations, sous-requêtes
• DROP TABLE — supprimer une table
• CREATE VIEW — créer une vue
CHAPITRE 2

SQL — Un langage de
manipulation de données
Le LMD (Langage de Manipulation de Données) permet d'insérer, de modifier et de
supprimer les données contenues dans les tables.
Les commandes DML
Le langage de manipulation de données comprend trois commandes fondamentales pour gérer le contenu des tables :

INSERT INTO UPDATE DELETE FROM


Ajouter un ou plusieurs tuples dans une Modifier les valeurs de colonnes dans des Éliminer des tuples d'une table ou d'une
table ou une vue. tuples existants, selon une condition. vue selon une condition.

Ces trois commandes modifient les données de façon permanente (sauf si vous utilisez des transactions). Vérifiez toujours votre clause
WHERE avant d'exécuter.
INSERT INTO — Syntaxe
La commande INSERT INTO permet d'ajouter un ou plusieurs enregistrements dans une table. La liste des colonnes est optionnelle si vous
fournissez les valeurs dans l'ordre de définition.

INSERT INTO {nom_table | nom_vue}


[(nom_col (, nom_col)*)]
{ VALUES (valeur (, valeur)*) | sous-requête };

Avec liste de colonnes Sans liste de colonnes Via sous-requête


Recommandé — plus lisible, ordre flexible, Toutes les colonnes doivent être fournies Insérer des données provenant d'une autre
colonnes omissibles. dans l'ordre exact de la table. table avec un SELECT.
Insertion sans préciser les colonnes
Nous travaillons sur la table Emprunteur composée de 4 colonnes : id, nom, prenom, annee_insc.

-- Insertion avec toutes les valeurs explicites


INSERT INTO Emprunteur
VALUES (1, 'Buard', 'Jeremy', '2018');

-- Utilisation de NULL pour l'id (AUTO_INCREMENT) et l'année


INSERT INTO Emprunteur
VALUES (NULL, 'Zuckerberg', 'Mark', NULL);
-- → Insère un tuple avec id=2 et annee_insc=NULL

Passer NULL pour un champ AUTO_INCREMENT demande à MySQL de générer automatiquement la prochaine valeur disponible.
Insertion en précisant les colonnes
Il est recommandé de toujours préciser les colonnes : cela rend le code plus lisible et permet d'omettre les colonnes ayant une valeur par défaut.

-- Insertion avec toutes les colonnes précisées


INSERT INTO Emprunteur (nom, prenom, annee_insc)
VALUES ('Chan', 'Priscilla', '2018');

-- Omission de annee_insc → valeur DEFAULT = 2018


INSERT INTO Emprunteur (nom, prenom)
VALUES ('Gates', 'Bill');
-- → Insère un tuple avec annee_insc = 2018

Préciser les colonnes protège votre code contre les changements de structure de la table (ajout ou réorganisation de colonnes).
Insertion multiple
MySQL permet d'insérer plusieurs tuples en une seule commande INSERT INTO, ce qui est bien plus efficace que plusieurs requêtes séparées :

INSERT INTO Emprunteur (nom, prenom, annee_insc)


VALUES
('Jobs', 'Steve', '2010'),
('Moskovitz', 'Dustin', '2011'),
('Musk', 'Elon', '2013');

L'insertion multiple est beaucoup plus performante que des INSERT individuels, car elle réduit le nombre d'allers-retours avec le serveur de
base de données. À privilégier pour les insertions en lot.
UPDATE — Mettre à jour des données
La commande UPDATE modifie les valeurs de colonnes pour les tuples qui satisfont la condition WHERE.

-- Syntaxe
UPDATE {nom_table | nom_vue}
SET nom_col = {valeur | (sous-requête)} [, ...]
WHERE condition;

-- Exemple 1 : modifier l'année d'un emprunteur spécifique


UPDATE Emprunteur
SET annee_insc = '2019'
WHERE nom = 'Musk';

-- Exemple 2 : incrémenter l'année des premiers emprunteurs


UPDATE Emprunteur
SET annee_insc = annee_insc + 2
WHERE id < 3;

Sans clause WHERE, tous les tuples de la table seront modifiés ! Toujours vérifier sa condition avant d'exécuter.
DELETE FROM — Supprimer des données
La commande DELETE FROM supprime les tuples qui satisfont la condition spécifiée.

-- Syntaxe
DELETE FROM {nom_table | nom_vue}
WHERE condition;

-- Exemple : supprimer les emprunteurs inscrits avant 2000


DELETE FROM Emprunteur
WHERE annee_insc < 2000;

Danger ! Un DELETE FROM Emprunteur sans WHERE supprime toutes les lignes de la table (la structure reste, mais les données
disparaissent). Utilisez TRUNCATE si c'est votre intention.

Vous aimerez peut-être aussi