Requêtes SELECT SQL Server pour sélectionner et filtrer

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.

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 :

  1. Filtre horizontal : Sélectionner une ou plusieurs colonnes
  2. 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;
Requêtes SELECT SQL Server, pour afficher le mois depuis la table des ventes
Requêtes SELECT SQL Server

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;
Requêtes SELECT SQL Server avec toutes les colonnes
Requêtes SELECT SQL Server avec toutes les colonnes

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:

  1. Janvier
  2. Février
  3. 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

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*