Effectuer des requêtes SQL dans une base de données

Faire des requêtes SQL dans une base de données

Table des matières

I. Introduction

Dans ce guide, nous allons explorer la manière d’effectuer des requêtes SQL dans une base de données afin d’obtenir des informations sur le contenu de ses tables. Nous commencerons par des requêtes simples pour ensuite les complexifier.

À lire aussi  Location de Voiture à l’Aéroport International de Montréal-Trudeau

Les requêtes seront effectuées dans la base de données utilisée pour tous nos tutoriels SQL. Vous pouvez trouver le tutoriel pour créer le script SQL de cette base de données en cliquant sur ce lien, et le tutoriel pour ajouter des valeurs à cette base de données ici.

Pour rappel, voici le modèle physique de données (MPD) de cette base de données :

MPD

Pour exécuter les requêtes, accédez à PhpMyAdmin, puis dans l’arborescence, cliquez sur la base de données (dans notre cas “implementation_switchs”), et enfin, dans le menu, sélectionnez “SQL”.

II. Structure de base d’une requête SQL

La structure de base d’une requête SQL comprend les éléments suivants :

SELECT champ1, champ2 FROM table1 WHERE champ1 = 0
  • SELECT : sélectionne les noms des champs correspondant aux informations à afficher.
  • FROM : indique à partir de quelle(s) table(s) extraire ces informations.
  • WHERE : spécifie les conditions à respecter pour obtenir les résultats, séparées par “and” ou “or” lorsque plusieurs conditions sont nécessaires.

III. Requêtes sur une seule table (table T_Switchs)

A. Afficher le modèle de chaque switch (champ Sw_Modele dans la table T_Switchs)

SELECT Sw_Modele FROM T_Switchs

B. Afficher le modèle de chaque switch avec le nombre de ports Mbit/s (champs Sw_Modele et Sw_NbPortsMb)

SELECT Sw_Modele, Sw_NbPortsMb FROM T_Switchs

C. Afficher le modèle de chaque switch avec le nombre de ports Mbit/s, triés par ordre croissant

SELECT Sw_Modele, Sw_NbPortsMb FROM T_Switchs ORDER BY Sw_NbPortsMb

D. Afficher le modèle de chaque switch avec le nombre de ports Mbit/s, triés par ordre décroissant

SELECT Sw_Modele, Sw_NbPortsMb FROM T_Switchs ORDER BY Sw_NbPortsMb DESC

E. Combien avons-nous de switchs ?

SELECT COUNT(*) FROM T_Switchs

F. Combien de switchs avons-nous pour chaque modèle ?

SELECT Sw_Modele, COUNT(*) FROM T_Switchs GROUP BY Sw_Modele

G. Combien avons-nous de ports Mbit/s au total ?

SELECT SUM(Sw_NbPortsMb) FROM T_Switchs

H. Quel est le nombre de ports Mbit/s en moyenne par switch ?

SELECT AVG(Sw_NbPortsMb) FROM T_Switchs

I. Quel est le nombre maximum de ports Mbit/s par switch ?

SELECT MAX(Sw_NbPortsMb) FROM T_Switchs

J. Quel est le nombre minimum de ports Mbit/s par switch ?

SELECT MIN(Sw_NbPortsMb) FROM T_Switchs

IV. Requêtes sur deux tables (tables T_Switchs et T_Fabricants)

Dans une requête SQL portant sur plusieurs tables, il est nécessaire d’effectuer une jointure entre les tables pour les mettre en relation. Cette jointure se fait en comparant l’égalité des valeurs d’un champ d’une table avec un champ d’une autre table.

À lire aussi  Comment démarrer un ordinateur de bureau Mac

Sans jointure, on obtient un produit cartésien, c’est-à-dire toutes les combinaisons possibles entre les deux tables.

A. Afficher le modèle de chaque switch et son fabricant

SELECT F_Nom, Sw_Modele FROM T_Fabricants, T_Switchs WHERE T_Fabricants.F_Num = T_Switchs.Sw_NumFabr

B. Afficher le modèle et le fabricant des switchs Cisco uniquement

SELECT F_Nom, Sw_Modele FROM T_Fabricants, T_Switchs WHERE T_Fabricants.F_Num = T_Switchs.Sw_NumFabr AND T_Fabricants.F_Nom = 'Cisco'

C. Afficher le modèle et le fabricant des switchs Cisco ou HP

SELECT F_Nom, Sw_Modele FROM T_Fabricants, T_Switchs WHERE T_Fabricants.F_Num = T_Switchs.Sw_NumFabr AND (T_Fabricants.F_Nom = 'Cisco' OR T_Fabricants.F_Nom = 'HP')

D. Combien y a-t-il de switchs pour chaque fabricant ?

SELECT F_Nom, COUNT(*) FROM T_Fabricants, T_Switchs WHERE T_Fabricants.F_Num = T_Switchs.Sw_NumFabr GROUP BY T_Fabricants.F_Nom

V. Requêtes sur trois tables (tables T_Switchs, T_Fabricants et T_Batiments)

La réalisation de requêtes sur trois tables se fait de la même manière que pour deux tables, en effectuant une jointure entre les tables à l’aide des clés étrangères.

A. Afficher les switchs (modèle et fabricant) implantés dans les différents bâtiments

SELECT F_Nom, Sw_Modele, Bat_Nom FROM T_Fabricants, T_Switchs, T_Batiments WHERE T_Fabricants.F_Num = T_Switchs.Sw_NumFabr AND T_Batiments.Bat_Num = T_Switchs.Sw_NumBat

B. Afficher les switchs HP implantés dans le bâtiment B et qui ont 44 ports Mbit/s

SELECT F_Nom, Sw_Modele, Bat_Nom FROM T_Fabricants, T_Switchs, T_Batiments WHERE T_Fabricants.F_Num = T_Switchs.Sw_NumFabr AND T_Batiments.Bat_Num = T_Switchs.Sw_NumBat AND T_Fabricants.F_Nom = 'HP' AND T_Switchs.Sw_NbPortsMb = 44 AND T_Batiments.Bat_Nom = 'Batiment B'

C. Afficher les switchs implantés dans tous les bâtiments sauf le Bâtiment C

SELECT F_Nom, Sw_Modele, Bat_Nom FROM T_Fabricants, T_Switchs, T_Batiments WHERE T_Fabricants.F_Num = T_Switchs.Sw_NumFabr AND T_Batiments.Bat_Num = T_Switchs.Sw_NumBat AND T_Batiments.Bat_Nom NOT IN ('Batiment C')

D. Afficher les switchs du bâtiment B qui ont plus de 24 ports Mbit/s

SELECT F_Nom, Sw_Modele, Bat_Nom FROM T_Fabricants, T_Switchs, T_Batiments WHERE T_Fabricants.F_Num = T_Switchs.Sw_NumFabr AND T_Batiments.Bat_Num = T_Switchs.Sw_NumBat AND T_Batiments.Bat_Nom = 'Batiment B' AND T_Switchs.Sw_NbPortsMb > 24

Note: Les opérateurs “<” (inférieur), “>” (supérieur) et “<>” (différent) peuvent être utilisés pour filtrer les résultats selon des conditions spécifiques.

À lire aussi  SEO – Un guide ultime pour optimiser votre site web

N’oubliez pas d’adapter ces requêtes en fonction de votre propre base de données.