0% ont trouvé ce document utile (0 vote)
9 vues83 pages

Introduction au LMD en SQL

Transféré par

Amr Cady
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)
9 vues83 pages

Introduction au LMD en SQL

Transféré par

Amr Cady
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

‫عي الشق‬ ‫كلية العلوم ن‬

FACULTE DES SCIENCES AIN CHOCK


‫ن‬
UNIVERSITE HASSAN II DE CASABLANCA ‫الثان بالدار البيضاء‬
‫ي‬ ‫جامعة الحسن‬

SQL
STRUCTURED QUERY LANGUAGE

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 1


SQL : Définition
• SQL (Structured Query Language) ou Langage de requête structuré
• Langage commun et standardisé, implémenté par tous les SGBD pour la
manipulation des bases de données.
• Il est composé de quatre sous ensembles:
• LDD: Langage de Définition de Données (CREATE, DROP, ALTER)
• LMD: Langage de Manipulation de Données (SELECT, UPDATE, INSERT, DELETE)
• LCD: Langage de Contrôle de Données (GRANT, REVOKE)
• LCT: Langage de Contrôle de Transaction (COMMIT, SAVEPOINT, ROLLBACK)

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 2


LMD - Définition
• LMD (Langage de Manipulation de Données) : Permet la recherche, l'insertion, la mise
à jour et la suppression du contenu des tables.
• Le LMD est basé sur les opérateurs relationnels, auxquels sont ajoutés des fonctions de
calcul d'agrégats et des instructions pour réaliser les opérations d'insertion, mise à jour
et suppression.
• INSERT : insérer des lignes (enregistrements) dans une table.
• UPDATE : modifier des enregistrements existants dans une table.
• DELETE : supprimer des enregistrements existants dans une table.
• SELECT : rechercher des informations en interrogeant une ou plusieurs tables.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 3


LMD – Sélection de données
➢ L’instruction SELECT
• Rechercher des informations en interrogeant une ou plusieurs tables.
• Permet de sélectionner et afficher des données.
• Récupérer les informations stockées dans la base de manière structurée.
• Sélection de données répondant à certaines conditions.
• Tri des données en affichage.
• Elimination des données en double.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 4


LMD – Sélection de données
➢ L’instruction SELECT
• Syntaxe de base:

SELECT colonne1, colonne2, …


FROM nom_table

La clause SELECT : Permet de récupérer des données depuis une table.


colonne1, colonne2, ... : les noms des colonnes que vous souhaitez récupérer. Utilisez *
pour sélectionner toutes les colonnes.
La clause FROM : Permet de spécifier la table à partir de laquelle vous récupérez les
données.
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 5
LMD – Sélection de données
➢ L’instruction SELECT
• Exemple: Extraction simple (Projection)
=> Sélectionner le nom et le prénom
PersonneId Nom Prenom Age Nom Prenom

1 Einstein Albert 64 Einstein Albert


SELECT Nom, Prenom
2 Dupont Marie 25 FROM Personne Dupont Marie

3 Eiffel Gustave 65 Eiffel Gustave

4 Cage Nicolas 45 Cage Nicolas

5 Martin Marie 40 Martin Marie

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 6


LMD – Sélection de données
➢ L’instruction SELECT
• Exemple: Extraction simple (Sélection)
=> Sélectionner toutes les colonnes
PersonneId Nom Prenom Age PersonneId Nom Prenom Age

1 Einstein Albert 64 SELECT * 1 Einstein Albert 64

2 Dupont Marie 25 FROM Personne 2 Dupont Marie 25

3 Eiffel Gustave 65 3 Eiffel Gustave 65

4 Cage Nicolas 45 4 Cage Nicolas 45

5 Martin Marie 40 5 Martin Marie 40

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 7


LMD – Sélection de données
➢ L’instruction SELECT
• Exemple: Extraction simple
=> Sélectionner les prénoms
PersonneId Nom Prenom Age Prenom

1 Einstein Albert 64 SELECT Prenom Albert


FROM Personne
2 Dupont Marie 25 Marie

3 Eiffel Gustave 65 Gustave

4 Cage Nicolas 45 Nicolas

5 Martin Marie 40 Marie

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 8


LMD – Sélection de données
➢ L’instruction SELECT
• Syntaxe : la clause WHERE

SELECT colonne1, colonne2, …


FROM nom_table
WHERE condition

La clause WHERE : ("où" en anglais) permet de restreindre les résultats selon des critères
de recherche.
=> Permet de spécifier quelle ligne à sélectionner.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 9


LMD – Sélection de données
➢ L’instruction SELECT
• Exemple: Extraction simple (Sélection)
=> Sélectionner toutes les colonnes des personnes dont le prénom est Marie
PersonneId Nom Prenom Age

1 Einstein Albert 64 SELECT * PersonneId Nom Prenom Age


FROM Personne
2 Dupont Marie 25 WHERE Prenom = "Marie" 2 Dupont Marie 25
3 Eiffel Gustave 65 5 Martin Marie 40
4 Cage Nicolas 45

5 Martin Marie 40

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 10


LMD – Sélection de données
➢ L’instruction SELECT
• Exemple: Extraction simple
=> Sélectionner toutes les colonnes des personnes dont l’âge est inférieur à 48
PersonneId Nom Prenom Age

1 Einstein Albert 64 SELECT * PersonneId Nom Prenom Age


FROM Personne
2 Dupont Marie 25 2 Dupont Marie 25
WHERE age < 48
3 Eiffel Gustave 65 4 Cage Nicolas 45
4 Cage Nicolas 45 5 Martin Marie 40
5 Martin Marie 40

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 11


LMD – Sélection de données
➢ L’instruction SELECT
• Exemple: Extraction simple
=> Sélectionner le nom et le prénom des personnes dont l’âge est inférieur à 48
PersonneId Nom Prenom Age

1 Einstein Albert 64 SELECT nom, prenom Nom Prenom


FROM Personne
2 Dupont Marie 25 Dupont Marie
WHERE age < 48
3 Eiffel Gustave 65 Cage Nicolas
4 Cage Nicolas 45 Martin Marie
5 Martin Marie 40

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 12


LMD – Sélection de données
➢ L’instruction SELECT
• Les opérateurs de comparaison
• Les opérateurs de comparaison sont les symboles que l'ont utilise pour définir les
critères de recherche.
• Les opérateurs simples : Opérateur Signification
= égal
< inférieur
<= inférieur ou égal
> supérieur
>= supérieur ou égal
<> ou != différent
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 13
LMD – Sélection de données
➢ L’instruction SELECT
• Opérateurs logiques
• Les opérateurs de logiques sont les symboles que l'ont utilise pour combiner plusieurs
critères de recherche.

Opérateur Signification
AND ( && ) ET
OR ( || ) OU
XOR OU exclusif
NOT ( ! ) NON

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 14


LMD – Sélection de données
➢ L’instruction SELECT
• Opérateurs logiques
• L’opérateur AND: L'opérateur AND est utilisé pour combiner deux conditions. Il renvoie
vrai (TRUE) si les deux conditions sont vraies.
• Exemple:
SELECT *
FROM Personne
WHERE Prenom = "Marie" AND age < 48

Cette requête sélectionne toutes les personnes dont le prénom est "Marie" et dont l'âge
est inférieur à 48 ans.
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 15
LMD – Sélection de données
➢ L’instruction SELECT
• Opérateurs logiques
• L’opérateur OR: L'opérateur OR est utilisé pour combiner deux conditions. Il renvoie
vrai (TRUE) si au moins l'une des deux conditions est vraie.
• Exemple:
SELECT *
FROM Personne
WHERE Prenom = "Marie" OR Prenom = "Albert"

Cette requête sélectionne toutes les personnes dont le prénom soit "Marie" soit
"Albert" .
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 16
LMD – Sélection de données
➢ L’instruction SELECT
• Opérateurs logiques
• L’opérateur NOT: L'opérateur NOT est utilisé pour inverser une condition. Il renvoie vrai
(TRUE) si la condition est fausse, et faux (FALSE) si la condition est vraie.
• Exemple:
SELECT *
FROM Personne
WHERE NOT Prenom = "Marie"

Cette requête sélectionne toutes les personnes qui n’ont pas comme prénom "Marie".

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 17


LMD – Sélection de données
➢ L’instruction SELECT
• Opérateurs logiques
• L’opérateur XOR: L'opérateur XOR renvoie vrai (TRUE) lorsque seulement l'une des deux
expressions est vraie, mais pas les deux en même temps.
• Exemple:
SELECT *
FROM Personne
WHERE Prenom = "Marie" XOR age < 48

Cette requête sélectionne les personnes qui ont soit le prénom "Marie" soit un âge
inférieur à 48 mais pas les deux à la fois.
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 18
LMD – Sélection de données
➢ L’instruction SELECT
• Opérateurs logiques
• Tables de vérité C1 C2 C1 OR C2
VRAI VRAI VRAI
C1 C2 C1 AND C2 VRAI FAUX VRAI C1 C2 C1 XOR C2
VRAI VRAI VRAI FAUX VRAI VRAI VRAI VRAI FAUX
VRAI FAUX FAUX FAUX FAUX FAUX VRAI FAUX VRAI
FAUX VRAI FAUX FAUX VRAI VRAI
C1 NOT C1
FAUX FAUX FAUX FAUX FAUX FAUX
VRAI FAUX
FAUX VRAI

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 19


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
Dans ce MLD :
• animalId est l'identifiant unique de l'animal, et il est défini comme une clé primaire (PK)
de type entier (INT).
• nom est le nom de l'animal, de type VARCHAR (chaîne de caractères variable).
• espece est l'espèce de l'animal, de type VARCHAR.
• age est l'âge de l'animal, de type entier (INT).
• poids est le poids de l'animal en kg, de type décimal (DECIMAL).
• sexe est le sexe de l'animal, de type VARCHAR.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 20


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
Exemple de données :
• 1,, 'Fido’,, 'Chien’,, 5,, 10.5,, 'Mâle'), (
• 2,, 'Whiskers’,, 'Chat’,, 3,, 4.2,, 'Femelle'), (
• 3,, 'Rex’,, 'Chien’,, 2,, 8.7,, 'Mâle'), (
• 4,, 'Mittens’,, 'Chat’,, 7,, 5.9,, 'Femelle’);
• 5,, 'Charlie’,, 'Lion’,, 4,, 180.3,, 'Mâle’
• 6,, 'Tweety’,, 'Oiseau’,, 2,, 0.1,, 'Femelle'

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 21


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner tous les animaux de l'espèce "chien" :
SELECT *
FROM animal
WHERE espece = 'chien';

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 22


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner les noms et les âges des animaux de plus de 5 ans :
SELECT nom, age
FROM animal
WHERE age > 5;

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 23


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner les noms et les espèces des animaux mâles pesant plus de 10 kg :
SELECT nom, espece
FROM animal
WHERE sexe = 'mâle' AND poids > 10;

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 24


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner les noms et les âges des animaux femelles de l'espèce "chat" :
SELECT nom, age
FROM animal
WHERE sexe = 'femelle' AND espece = 'chat';

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 25


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner tous les animaux qui sont soit de l'espèce "chien", soit de l'espèce
"chat".
SELECT *
FROM animal
WHERE espece = 'chien' OR espece = 'chat';

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 26


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner tous les animaux qui ne sont pas de l'espèce "chien":

SELECT *
FROM animal
WHERE NOT espece = 'chien';

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 27


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner tous les animaux qui sont de l'espèce "chien", "chat" ou "oiseau":

SELECT *
FROM animal
WHERE espece = 'chien' OR espece = 'chat' OR espece = 'oiseau';

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 28


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner les animaux qui sont des chats et qui ont un âge supérieur à 3 ans
ou un poids inférieur à 5 kg.
SELECT *
FROM animal
WHERE espece = 'Chat' AND (age > 3 OR poids < 5);

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 29


LMD – Sélection de données
➢ L’instruction SELECT
• Alias sur une colonne : AS
• Les alias permettent de renommer des colonnes à l’affichage ou des tables dans
la requête.
SELECT colonne_original AS alias
FROM nom_table

• Exemples:
SELECT prenom AS p SELECT prenom AS 'prénom de la personne'
FROM personne FROM personne

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 30


LMD – Sélection de données
➢ L’instruction SELECT
• La clause DISTINCT
• La clause DISTINCT est utilisée dans les requêtes SQL pour supprimer les
doublons des résultats.
• Elle renvoie uniquement des valeurs uniques dans la colonne spécifiée ou dans
les colonnes spécifiées.

SELECT DISTINCT Colonne


FROM nom_table

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 31


LMD – Sélection de données
➢ L’instruction SELECT
• La clause DISTINCT
=> Sélectionner les prénoms sans les doublons
PersonneId Nom Prenom Age
Prenom
1 Einstein Albert 64 SELECT DISTINCT Prenom Albert
2 Dupont Marie 25 FROM Personne
Marie
3 Eiffel Gustave 65
Gustave
4 Cage Nicolas 45
Nicolas
5 Martin Marie 40

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 32


LMD – Sélection de données
➢ L’instruction SELECT
• Élargir les possibilités de la clause WHERE
La clause WHERE offre bien d'autres possibilités parmi lesquelles :
• la comparaison avec un intervalle de valeurs (entre 2 et 5 par exemple) ;
• la comparaison avec un ensemble de valeurs (comparaison avec 5, 6, 10 ou 12 par
exemple);
• la comparaison avec une valeur incomplète (chercher les animaux dont le nom
commence par une certaine lettre par exemple).

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 33


LMD – Sélection de données
➢ L’instruction SELECT
• L’opérateur IN
• L'opérateur IN permet de spécifier une liste de valeurs à comparer avec une colonne. Il
renvoie vrai (TRUE) si la valeur de la colonne est égale à l'une des valeurs de la liste.
Exemple:
SELECT *
FROM Personne
WHERE Prenom IN ( "Marie" , "Albert" , "Ahmad" )

Cette requête sélectionne les personnes qui ont comme prénom "Marie", "Albert" ou
"Ahmad".
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 34
LMD – Sélection de données
➢ L’instruction SELECT
• L’opérateur BETWEEN
• L'opérateur BETWEEN est utilisé pour spécifier un intervalle de valeurs. Il renvoie vrai
(TRUE) si la valeur de la colonne est comprise dans cet intervalle.
• Exemple:
SELECT *
FROM Personne
WHERE age BETWEEN 25 AND 48 ;

Cette requête sélectionne les personnes dont l’âge est compris entre 25 et 48 ans.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 35


LMD – Sélection de données
➢ L’instruction SELECT
• L'opérateur LIKE:
• L'opérateur LIKE est utilisé pour effectuer des recherches de motifs dans les données
textuelles.
• Il est souvent utilisé avec des caractères génériques "jokers" pour rechercher des
chaînes de caractères correspondant à un modèle spécifique.
• Deux jokers existent pour LIKE :
• '%' : qui représente n'importe quelle chaîne de caractères, quelle que soit sa
longueur (y compris une chaîne de longueur 0) ;
• '_' : qui représente un seul caractère (ou aucun).

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 36


LMD – Sélection de données
➢ L’instruction SELECT
• L'opérateur LIKE:
• Exemples:
• 'b%' cherchera toutes les chaînes de caractères commençant par 'b' ('brocoli', 'bouli',
'b', ...)
• 'b_' cherchera toutes les chaînes de caractères contenant une ou deux lettres dont la
première est 'b' ('ba’, 'bf', 'b', ...)
• '%ch%ne' cherchera toutes les chaînes de caractères contenant 'ch' et finissant par 'ne'
('chne', 'chine’, 'échine', 'le pays le plus peuplé du monde est la Chine', ...)
• '_ch_ne' cherchera toutes les chaînes de caractères commençant par 'ch',
éventuellement précédées d'une seule lettre, suiviees de zéro ou un caractère au choix
puis se terminant par 'ne' ('chine', 'chne', 'echine', ...)
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 37
LMD – Sélection de données
➢ L’instruction SELECT
• L'opérateur LIKE:
• Exemples:
PersonneId Nom Prenom Age
SELECT *
FROM Personne 1 Einstein Albert 64
WHERE nom LIKE ’E%’ 3 Eiffel Gustave 65

Cette requête sélectionne toutes les colonnes de la table personne pour


lesquelles le nom commence par la lettre 'E'.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 38


LMD – Sélection de données
➢ L’instruction SELECT
• L'opérateur LIKE:
• Exemples:
PersonneId Nom Prenom Age
SELECT * 2 Dupont Marie 25
FROM Personne
3 Eiffel Gustave 65
WHERE prenom LIKE ’%e’
5 Martin Marie 40

Cette requête sélectionne toutes les colonnes de la table Personne pour


lesquelles le prénom se termine par la lettre 'e'.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 39


LMD – Sélection de données
➢ L’instruction SELECT
• L'opérateur LIKE:
• Exemples:
PersonneId Nom Prenom Age
SELECT *
FROM Personne 1 Einstein Albert 64
WHERE nom LIKE ’_i%’ 3 Eiffel Gustave 65

Cette requête sélectionne toutes les colonnes de la table Personne pour


lesquelles le nom commence par n'importe quel caractère, suivi de la lettre 'i',
suivie de zéro ou plusieurs caractères supplémentaires.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 40


LMD – Sélection de données
➢ L’instruction SELECT
• L'opérateur IS NULL / IS NOT NULL:
• L'opérateur IS NULL est utilisé pour vérifier si une valeur dans une colonne est NULL.
Un champ NULL indique qu'aucune valeur n'est présente dans ce champ.
• L'opérateur IS NOT NULL est l'opposé de IS NULL. Il est utilisé pour vérifier si une valeur
dans une colonne n'est pas NULL.
• Exemples:

SELECT * SELECT *
FROM Personne FROM Personne
WHERE nom IS NULL WHERE nom IS NOT NULL

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 41


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner tous les animaux qui sont de l'espèce "chien", "chat" ou "oiseau":
SELECT *
FROM animal
WHERE espece = 'chien' OR espece = 'chat' OR espece = 'oiseau';
SELECT *
FROM animal
WHERE espece IN ('chien', 'chat' , 'oiseau');
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 42
LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner les animaux dont le nom commence par "F":

SELECT *
FROM animal
WHERE nom LIKE 'F%';

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 43


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner les animaux dont le nom contient "at" quelque part:

SELECT *
FROM animal
WHERE nom LIKE '%at%';

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 44


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner les animaux dont le nom se termine par "y":

SELECT *
FROM animal
WHERE nom LIKE '%y';

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 45


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner les animaux dont le nom a exactement 6 lettres et commence par
"M":
SELECT *
FROM animal
WHERE nom LIKE 'M_____';

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 46


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner les animaux dont le nom contient "ie" et qui sont des chiens:

SELECT *
FROM animal
WHERE nom LIKE '%ie%' AND espece = 'Chien';

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 47


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner toutes les colonnes de la table Animal pour lesquelles la valeur
dans la colonne nom est NULL.
SELECT *
FROM animal
WHERE nom IS NULL;

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 48


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table animal:
Animal (animalId, nom, espece, age, poids, sexe)
En se basant sur cette table:
• Sélectionner toutes les colonnes de la table Animal pour lesquelles la valeur
dans la colonne nom est non NULL.
SELECT *
FROM animal
WHERE nom IS NOT NULL;

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 49


LMD – Sélection de données
➢ L’instruction SELECT
• Syntaxe : la clause ORDER BY
SELECT colonne1, colonne2, …
FROM nom_table
WHERE condition
ORDER BY colonne1
La clause ORDER BY : Permet de classer le résultat d’une requête. Elle est utilisée dans
une requête SQL pour trier les résultats selon une ou plusieurs colonnes.
ORDER BY colonne1 : Indique la colonne ou les colonnes selon lesquelles vous voulez
trier les résultats. Vous pouvez spécifier plusieurs colonnes de tri séparées par des
virgules.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 50


LMD – Sélection de données
➢ L’instruction SELECT
• Syntaxe : la clause ORDER BY (Tri croissant / Tri décroissant )

SELECT colonne1, colonne2, …


FROM nom_table
WHERE condition
ORDER BY colonne1 [ASC | DESC]

Par défaut, le tri se fait par ordre croissant (ASC), mais vous pouvez également spécifier
un tri descendant (DESC) pour trier par ordre décroissant.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 51


LMD – Sélection de données
➢ L’instruction SELECT
• La clause ORDER BY
• Exemples:
=> Sélectionner toutes les personnes et trier les résultats par ordre croissant des valeurs dans
la colonne age : PersonneId Nom Prenom Age
SELECT * 2 Dupont Marie 25
FROM Personne
ORDER BY age 5 Martin Marie 40
OU
4 Cage Nicolas 45
SELECT *
FROM Personne 1 Einstein Albert 64
ORDER BY age ASC 3 Eiffel Gustave 65
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 52
LMD – Sélection de données
➢ L’instruction SELECT
• La clause ORDER BY
• Exemples:
=> Sélectionner toutes les personnes et trier les résultats par ordre décroissant des valeurs
dans la colonne age : PersonneId Nom Prenom Age

3 Eiffel Gustave 65
SELECT * 1 Einstein Albert 64
FROM Personne
4 Cage Nicolas 45
ORDER BY age DESC
5 Martin Marie 40

2 Dupont Marie 25
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 53
LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions d’agrégation
• Les fonctions d'agrégation, ou de groupement, sont des fonctions qui vont regrouper
les lignes.
• Elles agissent sur une colonne, et renvoient un résultat unique pour toutes les lignes
sélectionnées.
• Elles servent majoritairement à faire des statistiques (compter des lignes, connaître
une moyenne, trouver la valeur maximale d'une colonne,...).

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 54


LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions d’agrégation : COUNT()
• La fonction COUNT() permet de savoir combien de lignes sont sélectionnée par la
requête.
• Exemple:
• Combien de chiens avons-nous ?
SELECT COUNT(*) AS nb_chiens
FROM animal
WHERE espece = ‘chien’

=> COUNT(*) : signifie que l'on compte toutes les lignes, sans se soucier de ce qu'elles
contiennent.
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 55
LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions d’agrégation : COUNT()
• La fonction COUNT() permet de savoir combien de lignes sont sélectionnée par la
requête.
• Exemple:
• Combien d’espèces avons-nous ?

SELECT COUNT(espece) AS nb_espece


FROM animal

=> COUNT(colonne), seules les lignes dont la valeur de colonne n'est pas NULL seront
prises en compte.
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 56
LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions d’agrégation : COUNT()
• La fonction COUNT() permet de savoir combien de lignes sont sélectionnée par la
requête.
• Exemple:
• Combien d’espèces avons-nous ?

SELECT COUNT(DISTINCT espece) AS nb_espece


FROM animal

=> On peut utiliser le mot-clé DISTINCT pour ne pas prendre en compte les doublons.
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 57
LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions d’agrégation : MIN() et MAX()
• La fonction MIN() retourne la plus petite valeur de la colonne spécifiée.
• La fonction MAX() retourne la plus grande valeur de la colonne spécifiée.
• Exemple:
• La valeur minimale et maximale de la colonne "age" de la table "Animal"

SELECT MIN(age) AS age_min, MAX(age) AS age_max


FROM animal

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 58


LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions d’agrégation : SUM()
• La fonction SUM() permet de calculer la somme des valeurs dans une colonne
numérique spécifiée.
• Exemple:
•La somme totale des montants de vente enregistrés dans la table
"Ventes"?

SELECT SUM(montant) AS total_ventes


FROM ventes

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 59


LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions d’agrégation : AVG()
• La fonction AVG() permet de calculer la moyenne des valeurs dans une colonne
numérique spécifiée.
• Exemple:
• La moyenne des scores enregistrés dans la table "Scores"?

SELECT AVG(score) AS score_moyen


FROM scores

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 60


LMD – Sélection de données
➢ L’instruction SELECT
• La clause GROUP BY
• La clause GROUP BY permet de définir des regroupements qui sont projetés dans la
table résultat (un regroupement correspond à une ligne).
• Elle permet d’effectuer des calculs statistiques définis par les fonctions d’agrégation
pour chacun des regroupements.

=> Un SELECT avec une clause GROUP BY produit une table résultat comportant une
ligne pour chaque groupe.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 61


LMD – Sélection de données
➢ L’instruction SELECT
• La clause GROUP BY
• Syntaxe:

SELECT colonne1, fonction_agrégation(colonne2)


FROM nom_table
GROUP BY colonne1

• colonne1: est la colonne sur laquelle vous souhaitez regrouper les données.
• fonction_agrégation: est une fonction d'agrégation telle que SUM, COUNT, AVG, etc.,
que vous pouvez utiliser pour calculer des valeurs basées sur les données regroupées.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 62


LMD – Sélection de données
➢ L’instruction SELECT
• La clause GROUP BY
• Exemple:
• Supposant qu’on a la table suivante:

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 63


LMD – Sélection de données
➢ L’instruction SELECT
• La clause GROUP BY
• Exemple:
• Compter les animaux, groupés par espèce
espece nb_animaux
SELECT espece, COUNT(*) AS nb_animaux Chat 2
FROM animal Chien 2
GROUP BY espece
Lion 1
Oiseau 1

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 64


LMD – Sélection de données
➢ L’instruction SELECT
• La clause GROUP BY
• Exemple:
• Compter les animaux mâles, groupés par espèce

SELECT espece, COUNT(*) AS nb_mâles espece nb_animaux


FROM animal Chat 1
WHERE sexe = ‘mâle' Chien 2
GROUP BY espece Lion 1

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 65


LMD – Sélection de données
➢ L’instruction SELECT
• La clause GROUP BY
• Syntaxe: on peut aussi utiliser 2 colonnes pour faire le regroupement

SELECT colonne1, colonne2, fonction_agrégation(colonne3)


FROM nom_table
GROUP BY colonne1, colonne2

• GROUP BY colonne1, colonne2: signifie que les données seront d'abord regroupées par
les valeurs uniques de la colonne1, puis par les valeurs uniques de la colonne2.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 66


LMD – Sélection de données
➢ L’instruction SELECT
• La clause GROUP BY
• Exemple:
• Compter le nombre de mâles et de femelles pour chaque espèce

SELECT espece, sexe, COUNT(*) AS nb_anim_especeETsexe


FROM animal
GROUP BY espece, sexe

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 67


LMD – Sélection de données
➢ L’instruction SELECT
• La clause GROUP BY
• Exemple:
• Compter le nombre de mâles et de femelles pour chaque espèce

SELECT espece, sexe, COUNT(*) AS nb_anim_especeETsexe


FROM animal espece sexe nb_anim_especeETsexe
GROUP BY espece, sexe
Chat Femelle 1
Chat Mâle 1
Chien Mâle 2
Lion Mâle 1
Oiseau
AZBEG KEBIRA - INFORMATIQUEFemelle
: BASE DE DONNÉES - BCG - S2 - (2023/2024) 1 68
LMD – Sélection de données
➢ L’instruction SELECT
• La clause HAVING
• Syntaxe:
• La clause HAVING est utilisée pour filtrer les résultats d'une requête qui contient une
clause GROUP BY.
SELECT colonne1, fonction_agrégation(colonne2)
FROM nom_table
GROUP BY colonne1
HAVING condition
• La condition peut être n'importe quelle expression valide qui évalue à vrai ou faux.
Habituellement, elle implique une fonction d'agrégation.
AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 69
LMD – Sélection de données
➢ L’instruction SELECT
• La clause HAVING
Clause WHERE vs Clause HAVING :
1. La clause WHERE est utilisée pour filtrer les lignes de données avant que les
fonctions d'agrégation soient appliquées.
2. La clause HAVING est utilisée pour filtrer les résultats après que les fonctions
d'agrégation ont été appliquées sur les groupes de lignes.

=> Contrairement à la clause WHERE, qui filtre les lignes avant le regroupement, la
clause HAVING filtre les groupes de lignes après le regroupement.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 70


LMD – Sélection de données
➢ L’instruction SELECT
• La clause HAVING
• Exemple:
• Compter le nombre d'animaux pour chaque espèce, puis filtrer les
résultats pour inclure uniquement les espèces pour lesquelles le nombre
d'animaux est supérieur ou égal à 2.

SELECT espece, COUNT(*) AS nb_animaux espece nb_animaux


FROM animal Chat 2
GROUP BY espece Chien 2
HAVING COUNT(*) >=2

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 71


LMD – Sélection de données
➢ L’instruction SELECT
• La clause HAVING
• Exemple:
• Compter le nombre d'animaux pour chaque espèce, puis filtrer les
résultats pour inclure uniquement les espèces pour lesquelles le nombre
d'animaux est supérieur ou égal à 2.

SELECT espece, COUNT(*) AS nb_animaux espece nb_animaux


FROM animal Chat 2
GROUP BY espece Chien 2
HAVING nb_animaux >=2

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 72


LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions pour manipuler les chaînes de caractères:
• CONCAT(chaîne1, chaîne2): renvoie la chaîne en concaténant chaîne1 et
chaîne2.
• LOWER(chaîne): Renvoie la chaîne en ayant mis toutes les lettres en minuscules.
• UPPER(chaîne): Renvoie la chaîne en ayant mis toutes les lettres en majuscules.
• LENGTH(chaîne): Renvoie la longueur de la chaîne.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 73


LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions pour manipuler les chaînes de caractères:
• Exemples:

SELECT CONCAT(nom, prenom) AS 'Nom & prénom'


FROM personne

SELECT CONCAT(nom, ' ', prenom) AS 'Nom & prénom'


FROM personne

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 74


LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions pour manipuler les chaînes de caractères:
• Exemples:

SELECT UPPER(nom) AS NOM_Maj, LOWER(prenom) AS prenom_Min


FROM personne

=> Cette requête affiche la liste de noms en majuscules et de prénoms en


minuscules pour chaque enregistrement de la table "personne".

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 75


LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions pour manipuler les chaînes de caractères:
• Exemples:

SELECT nom, prenom


FROM personne
WHERE LENGTH(nom) >= 5

=> Cette requête affiche la liste de noms et prénoms des personnes dont le nom comporte au moins
5 caractères.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 76


LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions pour manipuler les dates:
• NOW(), SYSDATE() : obtenir la date du jour.
• MONTH(date) : donne le numéro du mois (nombre de 1 à 12).
• MONTHNAME(date) : donne le nom du mois.
• YEAR(date) : extrait l'année.

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 77


LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions pour manipuler les dates:
• DAY(date) ou DAYOFMONTH(date) : donne le jour du mois (sous forme de nombre
entier de 1 à 31).
• DAYOFWEEK(date) : donne l'index du jour de la semaine (nombre de 1 à 7 avec 1 =
dimanche, 2 = lundi, ... 7 = samedi).
• DAYNAME(date) : donne le nom du jour de la semaine.
• DAYOFYEAR(date) : retourne le numéro du jour par rapport à l'année (de 1 à 366 donc).

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 78


LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions pour manipuler les dates:
• Exemples:

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 79


LMD – Sélection de données
➢ L’instruction SELECT
• Fonctions pour manipuler les dates:
• Exemples:

SELECT nom, date_naissance, MONTHNAME(date_naissance), DAYNAME(date_naissance),


YEAR(date_naissance)
FROM etudiant;

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 80


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table étudiant:
etudiant (CodeEtudiant, nom, prenom, date_naissance)
En se basant sur cette table:
• Sélectionner le nombre d'étudiants nés chaque année.

SELECT YEAR(date_naissance) AS Annee, COUNT(*) AS NombreEtudiants


FROM etudiant
GROUP BY YEAR(date_naissance);

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 81


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table étudiant:
etudiant (CodeEtudiant, nom, prenom, date_naissance)
En se basant sur cette table:
• Sélectionner les années où le nombre d'étudiants nés est supérieur à 5.

SELECT YEAR(date_naissance) AS Annee, COUNT(*) AS NombreEtudiants


FROM etudiant
GROUP BY YEAR(date_naissance)
HAVING COUNT(*) > 5;

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 82


LMD – Sélection de données
➢ L’instruction SELECT
• Exercice d’application : On a le MLD qui définit la structure de la table étudiant:
etudiant (CodeEtudiant, nom, prenom, date_naissance)
En se basant sur cette table:
• Sélectionner le nombre d'étudiants nés chaque mois de l'année 2000 .

SELECT MONTH(date_naissance) AS Mois, COUNT(*) AS NombreEtudiants


FROM etudiant
WHERE YEAR(date_naissance) = 2000
GROUP BY MONTH (date_naissance)

AZBEG KEBIRA - INFORMATIQUE : BASE DE DONNÉES - BCG - S2 - (2023/2024) 83

Vous aimerez peut-être aussi