TP N° 3 - Langage SQL
Amine Chraibi
Ph.D student
Email: [email protected]
Objectifs:
►Utiliser uniquement des commandes SQL pour
insérer, modifier, supprimer des données dans une
base de données.
►Interroger des tables dans une base de données
via des requêtes SQL simples/avec critère.
Nous allons utiliser le schéma de la base de
données « VENTE » crée dans le « TP N° 2 ».
●
Suppression :
●
Modification :
●
Affichage :
Voici une liste des types de valeurs couramment utilisés dans les requêtes SQL
Microsoft Access, avec leurs représentations correspondantes :
●
Valeurs de chaîne (texte) : doivent être incluses entre des guillemets doubles (" ").
Exemple : "Bonjour".
●
Valeurs numériques (entiers, décimaux) : peuvent être incluses directement sans
guillemets, mais les décimales doivent être représentées par un point (.) plutôt
qu"une virgule (,). Exemples : 3.1415.
●
Valeurs de date :doivent être incluses entre des guillemets doubles (" "). Exemple :
"20/03/2022".
●
Valeurs de champ : peuvent être incluses sans guillemets si elles sont référencées
par leur nom de champ. Exemple : NomDuChamp.
●
Valeurs nulles : peuvent être incluses en utilisant le mot-clé NULL. Exemple :
NULL.
Pour les requêtes de mise à jour, les valeurs peuvent être incluses de la même
manière, mais il est également possible de référencer les valeurs d"autres champs
dans la même table en utilisant la syntaxe NomDuChamp.
Voici quelques exemples de requêtes INSERT:
Requête SQL Description
INSERT INTO clients (nom, prenom, age) Insère un nouveau client avec le nom
VALUES ("Doe", "John", 30) "Doe", prénom "John" et l"âge "30" dans
la table "clients".
INSERT INTO produits (nom_produit, prix_unitaire) Insère un nouveau produit avec le nom
VALUES ("Chemise", 25.99) "Chemise" et le prix unitaire de "25.99"
dans la table "produits".
INSERT INTO commandes (id_client, id_produit, quantite) Insère une nouvelle commande pour le
VALUES (1, 3, 2) client avec l"ID "1", le produit avec l"ID
"3" et la quantité "2" dans la table
"commandes".
INSERT INTO employes (nom, prenom, date_embauche) Insère un nouvel employé avec le nom
VALUES ("Doe", "Jane", "19/04/2023") "Doe", prénom "Jane" et la date
d"embauche "19 avril 2023" dans la table
"employés".
Voici quelques exemples de requêtes UPDATE:
Requête SQL Description
UPDATE Table SET Cette requête met à jour les enregistrements de la table "Table" en
Champ1="NouvelleValeur" WHERE remplaçant la valeur du champ "Champ1" par "NouvelleValeur"
Champ2=Valeur uniquement pour les enregistrements où la valeur du champ
"Champ2" est égale à "Valeur".
UPDATE Table SET Champ1=Champ1+1 Cette requête met à jour les enregistrements de la table "Table" en
ajoutant 1 à la valeur du champ "Champ1".
UPDATE Table SET Cette requête met à jour les enregistrements de la table "Table" en
Champ1=Champ1&"NouvelleValeur" ajoutant "NouvelleValeur" à la fin de la valeur du champ "Champ1".
UPDATE Table SET Champ1=Champ1*2 Cette requête met à jour les enregistrements de la table "Table" en
WHERE Champ2>10 multipliant la valeur du champ "Champ1" par 2 uniquement pour les
enregistrements où la valeur du champ "Champ2" est supérieure à 10.
UPDATE Table SET Cette requête met à jour les enregistrements de la table "Table" en
Champ1="NouvelleValeur" WHERE Champ1 remplaçant la valeur du champ "Champ1" par "NouvelleValeur"
IS NULL uniquement pour les enregistrements où la valeur du champ
"Champ1" est nulle.
Voici quelques exemples de requêtes DELETE :
Requête SQL Description
DELETE * FROM Table1 Supprime toutes les lignes de la table Table1
DELETE * FROM Table1 Supprime toutes les lignes de la table Table1 où la valeur de
WHERE Col1 = "value" la colonne Col1 est "value"
DELETE * FROM Table1 Supprime toutes les lignes de la table Table1 où la valeur de
WHERE Col1 = "value" AND Col2 = 10 la colonne Col1 est "value" et la valeur de la colonne Col2 est
10
DELETE * FROM Table1 Supprime toutes les lignes de la table Table1 où la valeur de
WHERE Col1 LIKE "A*" la colonne Col1 commence par "A"
DELETE * FROM Table1 Supprime toutes les lignes de la table Table1 où la valeur de
WHERE Col1 IS NULL la colonne Col1 est NULL
DELETE * FROM Table1 Supprime toutes les lignes de la table Table1 où la valeur de
WHERE Col1 IN ("value1", "value2", la colonne Col1 est "value1", "value2", ou "value3"
"value3")
Voici quelques exemples de requêtes SELECT :
Requête SQL Description
SELECT DISTINCT Column1 FROM Sélectionne les différentes Column1 de la table "Table1"
Table1
SELECT Column1, Column2 Sélectionne uniquement les colonnes "Column1" et
FROM Table1 "Column2" de la table "Table1"
SELECT * FROM Table1 Sélectionne toutes les colonnes de la table "Table1" où la
WHERE Column1 = "value" valeur de la colonne "Column1" est égale à "value"
SELECT * FROM Table1 Sélectionne toutes les colonnes de la table "Table1" où la
WHERE Column2 LIKE "*abc*" valeur de la colonne "Column2" contient la chaîne de
caractères "abc"
SELECT * FROM Table1 Sélectionne toutes les colonnes de la table "Table1" où la
WHERE Column3 <> 0 valeur de la colonne "Column3" n"est pas égale à zéro
SELECT SUM(Column1) Calcule la somme des valeurs de la colonne "Column1" de la
FROM Table1 table "Table1"
Opérateur Description
= Égal à
<> Différent de
< Inférieur à
> Supérieur à
<= Inférieur ou égal à
>= Supérieur ou égal à
Condition Description Exemple
AND Permet de combiner deux conditions avec SELECT Nom, Prénom, Adresse FROM Clients
l"opérateur "ET". WHERE Ville="Rabat" AND Age > 25;
OR Permet de combiner deux conditions avec SELECT Nom, Prénom, Adresse FROM Clients
l"opérateur "OU". WHERE Ville="Settat" OR Ville="Lyon";
BETWEEN Permet de sélectionner des SELECT Nom, Prénom, Adresse FROM Clients
enregistrements dont la valeur d"un champ WHERE Age BETWEEN 18 AND 30;
est comprise entre deux valeurs.
IN Permet de sélectionner des SELECT Nom, Prénom, Adresse FROM Clients
enregistrements dont la valeur d"un champ WHERE Ville IN ("Rabat", "Settat");
est égale à l"une des valeurs spécifiées.
LIKE Permet de sélectionner des SELECT Nom, Prénom, Adresse FROM Clients
enregistrements dont la valeur d"un champ WHERE Nom LIKE "D*";
correspond à un modèle de caractères
spécifié.
IS NULL Permet de sélectionner des SELECT Nom, Prénom, Adresse FROM Clients
enregistrements dont la valeur d"un champ WHERE Téléphone IS NULL;
est nulle.
IS NOT NULL Permet de sélectionner des SELECT Nom, Prénom, Adresse FROM Clients
enregistrements dont la valeur d"un champ WHERE Téléphone IS NOT NULL;
est non nulle.
d. Afficher le nombre de ventes réalisées au mois
de février 2022.
e. Afficher la quantité totale vendue.
f. Afficher la description, couleur, prix_Achat, nom et
adresse du fournisseur des articles ayant un poids
entre 100 et 250.
g. Afficher le nom du client, libelle du magasin,
description de l’article, la quantité, le prix, la valeur
totale (qte x prix de vente) et la date de vente.
Fonction Description Exemple
Year(date) Retourne l"année WHERE Year(DateNaissance) =
d"une date 1990
Month(date) Retourne le mois WHERE Month(DateEmbauche) = 3
d"une date
Day(date) Retourne le jour WHERE Day(DateNaissance) = 18
d"une date
JOINTURE
Nom de la jointure Description Exemple
Jointure interne à deux Sélectionne les SELECT * FROM table1
tables enregistrements qui ont INNER JOIN table2
une correspondance dans ON table1.num_table2 = table2.num_table2
les deux tables
Jointure interne à trois Sélectionne les SELECT * FROM (table1
tables enregistrements qui ont INNER JOIN table2
des correspondances ON table1.num_table2 = table2.num_table2)
dans les trois tables INNER JOIN table3
ON table2.num_table3 = table3.num_table3
Jointure interne à quatre Sélectionne les SELECT * FROM ((table1
tables enregistrements qui ont INNER JOIN table2
des correspondances ON table1.num_table2 = table2.num_table2)
dans les quatre tables INNER JOIN table3
ON table2.num_table3 = table3.num_table3)
INNER JOIN table4
ON table3.num_table4 = table4.num_table4