0% ont trouvé ce document utile (0 vote)
14 vues21 pages

Commandes SQL : INSERT, UPDATE, DELETE

Le document présente les commandes SQL essentielles pour la manipulation de données, y compris l'ajout, la modification et la suppression d'enregistrements avec les commandes INSERT, UPDATE et DELETE. Il explique également comment interroger des données à l'aide de SELECT, en utilisant des clauses telles que WHERE, GROUP BY, HAVING et ORDER BY, ainsi que les opérateurs d'ensemble comme UNION, INTERSECT et MINUS. Enfin, il aborde les jointures et les sous-requêtes pour interroger plusieurs tables simultanément.

Transféré par

Rouâa Ben Hammouda
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
14 vues21 pages

Commandes SQL : INSERT, UPDATE, DELETE

Le document présente les commandes SQL essentielles pour la manipulation de données, y compris l'ajout, la modification et la suppression d'enregistrements avec les commandes INSERT, UPDATE et DELETE. Il explique également comment interroger des données à l'aide de SELECT, en utilisant des clauses telles que WHERE, GROUP BY, HAVING et ORDER BY, ainsi que les opérateurs d'ensemble comme UNION, INTERSECT et MINUS. Enfin, il aborde les jointures et les sous-requêtes pour interroger plusieurs tables simultanément.

Transféré par

Rouâa Ben Hammouda
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd

SQL

Langage de Manipulation de données


(LMD)

1
I. Ajout de données: La commande <INSERT INTO>
Permet d’insérer des valeurs pour toute une rangée
(une ligne ou un enregistrement) dans une table

Syntaxe 1:
INSERT INTO <nom_de_table> VALUES (<liste de
valeurs>);
Exemple: INSERT INTO Employee VALUES (20, 'Patrice',
‘Ing', 400);

Syntaxe 2:
INSERT INTO <nom_de_table>(<nom_de_colonne>)
VALUES (<liste_de_valeurs>);
2
Exemple: INSERT INTO Employee (Empno, Enom)
VALUES (12, 'Jon');
II. Modification de données :La commande
<UPDATE>
permet d’effectuer des modifications des données sur
une seule table. Cette modification peut porter sur une
ou plusieurs lignes.

Syntaxe :
UPDATE <nom_de _table>
SET <nom_de_colonne>=<nouvelle_valeur>;
WHERE <condition>;
Exemple:
UPDATE Employee
SET sal=1000
where EMPNO = ‘111‘;
3
III. Suppression de données : La commande <DELETE>
permet de supprimer de la base de données une ou plusieurs rangées d’une
table.
Syntaxe: DELETE FROM <nom_de _table>WHERE <condition>;

Remarque:
 Lors de la suppression des données, les contraintes d’intégrité doivent être
répétées. . Il est impossible de supprimer une valeur de la clé primaire si cette valeur
est référée par une valeur de la clé étrangère sauf si l’option ON DELETE CASCADE
est définie; dans ce cas TOUS les enregistrements de la table enfant (table de la clé
étrangère) qui réfèrent la clé primaire supprimée seront supprimer.
 Si l’option ON DELETE CASCADE n’est pas définie alors pour supprimer une clé
primaire référencée il faut opter pour une des solutions suivante :
 Supprimer d’abord les rangées de la table enfants qui référent la clé primaire, puis
supprimer la clé primaire.
 Désactiver la contrainte d’intégrité référentielle (clé étrangère). Cette action est
irréversible. Supprimer ensuite la clé primaire.
 Modifier la contrainte d’intégrité référentielle en ajoutant l’option ON DELETE
CASCADE
 Avant toute opération COMMIT, faire un SELECT afin de vérifier que nous n’avons pas
4
fait des suppressions par erreur.
III. Interrogation de données :La commande

<SELECT >:

Permet d’extraire (chercher) des données d’une ou

plusieurs tables. L’ordre SELECT possède six clauses

différentes, dont seules les deux premières sont

obligatoires.

Les clauses, quand elles sont utilisées, doivent

respecter l’ordre donné dans le syntaxe général (page


5
suivante).
Syntaxe :

SELECT <col1,…,coln>

FROM <nom_de table>

WHERE <condition>

GROUP BY <expression de groupe>

HAVING <condition de groupe>

ORDER BY <colonne>;
SELECT: spécifie les colonnes qui doivent apparaître dans les

résultats
FROM: spécifie la table ou les tables à utiliser

WHERE: filtre les lignes selon une condition donnée

GROUP BY: forme des groupes de lignes de même valeur de


6
colonne
1) Projection
Tous les attributs d’une table :
SELECT * FROM nom_table ;
Remarque : Il est possible de mettre le mot clé
facultatif DISTINCT après l’ordre SELECT. Il permet
d’éliminer les duplications : si, dans le résultat, plusieurs
lignes sont identiques, une seule sera conservée.
Exemple : Liste de tous les employées
SELECT * FROM employee ;

Quelques colonnes :
SELECT col1, col2, …
FROM nom_table ;
Exemple : Liste des noms des employées sans
duplication
7 SELECT DISTINCT Enom FROM employee ;
2) Restriction
Les restrictions se traduisent en SQL à l’aide du
prédicat « WHERE » comme suit :
SELECT col1, col2, …
FROM nom_table
WHERE condition ;
Un prédicat simple est la comparaison de deux
expressions ou plus au moyen d’un opérateur de
comparaison.

Exemple: Liste des noms des employées qui ont un


salaire>2500
SELECT empno, enom, job
FROM employee
8
WHERE SAL>2500 ;
Liste des opérateurs utilisés dans la condition :
Opérateurs de comparaison : = , >, >=, <, <=,
<>, !=
Autres opérateurs de comparaison
o between … and …
o IN, NOT IN (list)
o IS NULL, IS NOT NULL
o LIKE, NOT LIKE: (% : remplace 0 à n caractère, _
(souligné) : remplace un et un seul caractère)
o BETWEEN x AND Y , NOT BETWEEN x AND Y
o ANY, ALL
o EXISTS, NOT EXISTS
Les opérateurs logiques : AND , OR , NOT

9
3) Expression, alias et fonctions
3.1. Expression
Les expressions acceptées par SQL portent sur
des attributs, des constantes et des fonctions.
Ces trois types d’éléments peuvent être reliés
par des opérateurs mathématiques (+, -, *, /).

Les expressions peuvent figurer :


En tant que colonne résultant d’un ordre
SELECT.
Dans une clause WHERE.
Dans une clause ORDER BY.
Dans les ordres de manipulation des données

10
(INSERT, UPDATE, DELETE)
3.2. Alias
Les alias permettent de renommer des attributs ou des
tables.
Syntaxe : Pour renommer une table dans la clause FROM
ainsi que des attributs dans la clause SELECT, on utilise
l’instruction qui suit :

SELECT attribut1 AS nomalias1, attribut2 AS nomalias2, …


FROM table1 aliastab1, table2 aliasatab2;

Exemple : les noms dont le salaire >2500


SELECT enom As nom2500
FROM employee
WHERE SAL>2500 ;

Pour les attributs, l’alias correspond aux titres des colonnes


affichées dans le résultat de la requête. Il est souvent utilisé
lorsqu’il s’agit d’attributs calculés.
11
3.3. Quelques fonctions SQL:
Les fonctions agissant sur les groupes
o COUNT(*) : Nombre de lignes
o COUNT([DISTINCT] attribut) : Nombre de valeurs
non nulles [différentes] de l’attribut
o MIN, Max : minimum, Maximum
o SUM : Somme
o AVG : Moyenne

Exemple:
SELECT job, max(sal) As salMax
FROM employee
GROUP BY job;

12
MDD
4) Regroupement
4.1. La clause GROUP BY
Il est possible de subdiviser une table en groupes, chaque groupe étant
l’ensemble de lignes ayant une valeur commune.
Syntaxe :
GROUP BY exp1, exp2, …
Cette clause groupe en une seule ligne toutes les lignes pour lesquelles
exp1, exp2, … ont la même valeur.

Remarques :
 Cette clause se place juste après la clause WHERE, ou après la clause
FROM si la clause WHERE n’existe pas.
 Des lignes peuvent être éliminées avant que le groupe ne soit formé
grâce à la clause WHERE.

Exemple : Liste des employés groupés par job


SELECT enom
FROM employee
GROUP
13 BY job;
4.2. La clause HAVING

HAVING sert à préciser quels groupes doivent être sélectionnés. Elle se


place après la clause GROUP BY.
Syntaxe :
HAVING condition de groupe

Remarque : La condition de groupe suit le même syntaxe que celui de


la clause WHERE. Cependant, il ne peut porter que sur des
caractéristiques de groupe (fonctions de groupe ou expression figurant
dans la clause GROUP BY)

Exemple : Liste des fournisseurs ainsi que le nombre de leurs produits


de désignation ‘Des2’ dont le nombre de produits fournis est supérieur à
2:
SELECT num_f, COUNT(*)
FROM Article
WHERE des = ‘Des2’
GROUP BY num_f
HAVING COUNT(*) > 2 ;
14
5) Tri
Les lignes constituant le résultat d’un SELECT sont obtenues dans un
ordre indéterminé. La clause ORDER BY précise l’ordre dans lequel la
liste des lignes sélectionnées sera donnée.
Syntaxe:
ORDER BY exp1 [ASC], exp2 [DESC], …

L’option facultative DESC donne un tri par ordre décroissant. Par


défaut, l’ordre est croissant (ASC).
Le tri se fait d’abord selon la première expression, puis les lignes
ayant la même valeur pour la première expression sont triées selon la
deuxième, …
Remarque : Les valeurs nulles sont toujours en tête quel que soit
l’ordre du tri
Exemple : Liste des articles ordonnés par ordre croissant des poids
et décroissant des couleurs
SELECT *
FROM Article
ORDER BY poids, couleur Desc;
15
6) Opérateurs ensemblistes
Ces opérateurs sont l’union, la différence et l’intersection. La forme générale est :
REQUETE opérateur REQUETE
Avec : Opérateur = UNION ou INTERSECT ou MINUS
6.1. Union
L’opérateur UNION permet de fusionner deux sélections de table pour obtenir un
ensemble de lignes égal à la réunion des lignes des deux sélections. Les lignes
communes n’apparaîtront qu’une fois.

Exemple : soit la table client représentée par la relation suivante :


Client (matricule, nom, tel)
Donner les noms des clients dont le matricule est cl1 ou cl2 ou cl4 et ceux des clients
qui ont un numéro de téléphone :

SELECT nom FROM Client WHERE matricule IN (‘cl1’,’cl2’,‘cl4’)


UNION
SELECT nom FROM Client WHERE tel IS NOT NULL;

Remarques:
 Le nombre de colonnes renvoyées par SELECT 1 doit être le même que celui
renvoyé par SELECT 2
 Le type de données SELECT 1 doit être le même que celui de SELECT 2
 La clause optionnelle ORDER BY doit se faire selon un numéro de colonne et
16
non selon le nom.
[Link]érence
L’opérateur MINUS permet de retirer d’une sélection les lignes
obtenues dans une deuxième sélection.
Exemple :
Donner les noms de tous les clients sauf ceux qui n’ont pas un
numéro de téléphone

SELECT nom FROM Client


MINUS
SELECT nom FROM Client WHERE tel IS NULL;

6.3. Intersection
L’opérateur INTERSECT permet d’obtenir l’ensemble des lignes
communes à deux interrogations.
Exemple : Donner les noms des clients dont le matricule est cl1
ou cl2 ou cl4 et qui ont de numéro de tel

SELECT nom FROM Client WHERE matricule IN (‘cl1’,’cl2’,‘cl4’)


INTERSECT
17
SELECT nom FROM Client WHERE tel IS NOT NULL;
7) Interrogation sur plusieurs tables
[Link]êtes avec jointure:
Les conditions de jointure sont écrites dans la clause
WHERE
Syntaxe:
Select [Link], [Link]
From table1, table2
Where table1.colonne1 = table2.colonne2;

Exemple
Select [Link], [Link],
[Link]
From Etudiants, Programme
Where [Link] =[Link];
18
7.2 Requêtes imbriquées (sous requêtes)
Une sous requête est une requête avec la
commande SELECT imbriquée avec les autres
commandes (UPDATE, INSERT’ DELETE et
CREATE)
Une sous-requête peut être utilisée dans les
clauses suivantes :
La clause WHERE d’une instruction
UPDATE,DELETE et SELECT
La clause FROM de l’instruction SELECT
La clause VALUES de l’instruction INSERT INTO
La clause SET de l’instruction UPDATE
L’instruction CREATE TABLE.

19
Syntaxe
SELECT col1, col2, …, coln
FROM table
WHERE (col1, col2, …, coln ) opérateur (
SELECT col1, col2, …., coln
FROM table
WHERE . . . . . ) ;

Exemple :Une requête qui ramène tous les étudiants


qui n’ont pas de notes
SELECT num,nom, prenom
FROM etudiants
WHERE num NOT IN
(SELECT num FROM resultats);
20
7.3 Requêtes SELECT avec les opérateurs d’ensembles
 L’opérateur INTERSECT : cet opérateur permet de ramener
l’intersection des données entre deux tables. Les deux commandes
SELECT doivent avoir le même nombre de champs, et des champs de
même type et dans le même ordre.
 L’opérateur UNION: Cet opérateur renvoi l’ensemble des
lignes des deux tables. Si des lignes sont redondantes elles
sont renvoyées une seule fois. Pour renvoyer toutes les lignes,
utiliser l’option ALL
 L’opérateur MINUS: Cet opérateur renvoi l’ensemble des
lignes de la première table MOINS les lignes de la deuxième
table.
Remarque:
ramener tous les étudiants qui Permet de ramener tous les Permet de ramener tous
Lesen même
sont mêmes temps contraintes
des qui s’appliquent
étudiants et tous pour
les les INTERSECT
étudiants qui ne sont
enseignants.
s’appliquent pour UNION enseignants.
et MINUS Les pas des enseignants.
enseignants qui sont en
même temps des étudiants
sont ramenés une seule
fois.
SELECT NOM, PRENOM FROM SELECT NOM, PRENOM FROM SELECT NOM, PRENOM
ETUDIANTS ETUDIANTS FROM ETUDIANTS
21 INTERSECT NION MINUS
SELECT NOM, PRENOM FROM SELECT NOM, PRENOM FROM SELECT NOM, PRENOM

Vous aimerez peut-être aussi