Exemples de requêtes avec la fonction SELECT SQL Server.
Tutoriels pour apprendre à sélectionner les données depuis une table avec des exemples de requêtes SELECT SQL Server. C’est la requête de base car le langage SQL, pour Structured Query Language, est fait avant tout pour interroger et afficher des données à partir d’une table. La requête est du type LID pour Langage d’Interrogation de Données.
Table des matières
1. Exemples de requêtes SELECT SQL Server simples
En effet, la commande SELECT permet d’afficher et de lire les données. La requête SELECT est donc la plus utilisée et indispensable en SQL. De plus, elle permet d’afficher une seule colonne ou toutes les colonnes dans une seule requête SELECT. C’est à dire qu’il est possible de filtrer de deux manières différentes :
- Filtre horizontal : Sélectionner une ou plusieurs colonnes
- Filtre vertical : filtrer les données avec des conditions et la clause WHERE par exemple
1.1 Créer la table utilisée dans les requêtes
Premièrement, avant d’exécuter les commandes de sélection, créer au préalable la table d’exemple des ventes par mois avec ce script.
-- Tester si la table existe dans la base -- Pour la supprimer IF EXISTS( SELECT 1 FROM sys.objects WHERE object_id = object_id(N'[dbo].[VENTES]') AND type in (N'U') ) DROP TABLE [dbo].[VENTES]; GO -- Créer la table VENTES pour les exemples T-SQL CREATE table [dbo].[VENTES] ( [Mois] NVARCHAR(20), [Montant] NUMERIC(5) ) GO
1.2 Insérer des données dans la table des ventes
Deuxième étape, insérer des lignes avec les montants des ventes mensuelles pour les 12 mois de l’année.
-- Insertion des données de Ventes pour notre exemple INSERT INTO dbo.VENTES (Mois, Montant) VALUES (N'Janvier', 1000); INSERT INTO dbo.VENTES (Mois, Montant) VALUES (N'Février', 2000); INSERT INTO dbo.VENTES (Mois, Montant) VALUES (N'Mars', 3000); INSERT INTO dbo.VENTES (Mois, Montant) VALUES (N'Avril', 1000); INSERT INTO dbo.VENTES (Mois, Montant) VALUES (N'Mai', 2000); INSERT INTO dbo.VENTES (Mois, Montant) VALUES (N'Juin', 3000); INSERT INTO dbo.VENTES (Mois, Montant) VALUES (N'Juillet', 1000); INSERT INTO dbo.VENTES (Mois, Montant) VALUES (N'Aout', 2000); INSERT INTO dbo.VENTES (Mois, Montant) VALUES (N'Septembre', 3000); INSERT INTO dbo.VENTES (Mois, Montant) VALUES (N'Octobre', 1000); INSERT INTO dbo.VENTES (Mois, Montant) VALUES (N'Novembre', 2000); INSERT INTO dbo.VENTES (Mois, Montant) VALUES (N'Décembre', 3000); GO -- Sélection des résultats pour contrôle SELECT * FROM dbo.VENTES;
1.3 Requête de sélection avec une seule colonne
Dans l’exemple ci-dessous, sélectionner uniquement la colonne MOIS depuis la table des ventes.
SELECT MOIS FROM dbo.VENTES;
1.4 Requête SELECT * FROM pour afficher toutes les colonnes
D’autre part, dans cet exemple, la requête affiche toutes les colonnes de la table, soit MOIS et MONTANT.
SELECT * FROM dbo.VENTES;
2. Requête SELECT SQL Server avec la clause WHERE
La clause WHERE permet de filtrer les données en ajoutant une ou plusieurs conditions et donc de n’afficher que les lignes de la table qui correspondent à la condition. La clause WHERE en SQL est certainement la clause LMD la plus utilisée dans le domaine des bases de données. LMD signifie Langage de Manipulation des Données, soit le langage utilisé pour la manipulation des données et non les objets eux-mêmes.
2.1 Sélection avec un filtre sur la colonne Mois
Pour afficher le nom de mois et le montant de la ligne dont le nom du mois est exactement Janvier.
SELECT Mois, Montant FROM dbo.VENTES WHERE Mois = 'Janvier';
2.2 Requête de sélection avec la clause WHERE et un opérateur OR
L’opérateur OR est un OU logique. Pour afficher les mois dont le nom est Janvier ou Février. Noter que la clause OR permet de mixer des conditions sur différentes colonnes et ainsi de filtrer précisément les données de la table. Que ce soit d’une manière inclusive ou plus exclusive.
SELECT Mois, Montant FROM dbo.VENTES WHERE Mois = 'Janvier'; OR Mois = 'Février' OR Montant > 1000;
2.3 Requête MS SQL de sélection avec l’opérateur IN
De la même façon pour afficher toutes les lignes de la table dont le mois est égal à une valeur bien précise, utiliser l’opérateur SQL IN. Cette requête affichera par exemple les trois premiers mois de l’année:
- Janvier
- Février
- Mars
SELECT Mois, Montant FROM dbo.VENTES WHERE Mois IN ('Janvier', 'Février', 'Mars');
2.4 Requête SQL avec clause WHERE et opérateur différent de
Pour afficher une liste de tous les clients dont le nom est différent de MAMMADOU. Cet exemple de requête utilise le mot clef étoile : *. Le mot clef SLECT * affiche toutes les colonnes de la table. Le mot clef SELECT étoile, aussi appelé SELECT STAR en Anglais, ou permet d’afficher toutes les colonnes sans les nommer explicitement.
SELECT * FROM dbo.VENTES WHERE Mois <> 'Décembre';
Noter qu’une bonne pratique SQL Server est de ne pas utiliser le mot clef SELECT *. Surtout dans les programmes ou scripts où les colonnes évoluent. En effet, si un nom de colonne change alors le programme ne reconnait plus la colonne. Sauf si le programme gère les noms de colonnes de manière dynamique.
Il est donc recommandé de nommer explicitement toutes les colonnes pour contrôler :
- Le nombre exact de colonnes utilisées
- Le nom des colonnes
- Et aussi l’ordre des colonnes
Enfin, cet article explique et décompose des requêtes Select SQL Server, pour effectuer des sélections de données basiques. Pour aller plus loin et apprendre la gestion des tables comme la création d’une table ou encore la modification d’une colonne avec la commande Alter Column.
Soyez le premier à commenter