Blog de Laurent Valente

Responsable technique Microsoft , Akka technologies

Laurent Valente

moi

Consulatnt technique, Expert Microsoft chez AKKA Technologie.

J'accompagne les équipes sur les différents projets Microsoft.

Ma carte de visite Microsoft

Mon CV

Mon transcript

[SQL Server]Saga transact-SQL Episode 3 : Retrouver les données avec un SELECT

 

La commande qui permet de trouver des données est le SELECT  sa syntaxe générique est la suivante :

SELECT [ ALL | DISTINCT ] <liste de colonne>

 

FROM {<table >} [,...n]

 

[ WHERE <condition de recherche> ]

 

Le SELECT va retourner les lignes et les colonnes demandées c'est-à-dire les colonnes spécifiées dans le liste des colonnes et qui sont présentent dans la ou les tables spécifiées dans la clause FROM et les lignes de cette ou ces tables qui correspondent au filtre indiqué dans la clause WHERE.

 

Pour spécifier des colonnes :

Untitled

On peut renommer les colonnes en utilisant ce que l’on appelle un alias :

1

Comme vous pouvez le voir le mot clé AS est optionnel.

Si on veut avoir toutes les colonnes de la tables il suffit de remplacer les noms de colonne par * mais à ce moment là bien sûr il n’est plus possible de renommer les colonnes.  Il faut aussi savoir qu’en termes de performance le fait d’énoncer chaque colonne est plus performant que d’utiliser *.

 2

Utilisez la clause WHERE pour filtrer les lignes.

Voici les différentes possibilités pour filtrer

Opérateurs de comparaisons                                       =, >, <, >=, <=, and <>

 

Comparateur de chaine                                                LIKE and NOT LIKE

 

Opérateurs logique: combinaison de condition AND, OR

 

Opérateur logique: négations                            NOT

 

Echelle de valeur                                             BETWEEN et NOT BETWEEN

 

Liste de valeurs                                                           IN et NOT IN

 

Valeurs inconnues                                            IS NULL et IS NOT NULL

Opérateur de comparaison

image

Comparateur de chaine

image

Filtre sur une chaine de caractère qui commence par « lau » (c’est la lettre % qui dit « peut importe la suite »).

Expression Returns

 

LIKE ’BR%’                          commence par BR

 

LIKE ’Br%’                            commence par Br

 

LIKE ’%een’                         finit par een

 

LIKE ’%en%’                       contient en

 

LIKE ’_en’                            mots de 3 lettres finissant par en

 

LIKE ’[CK]%’                        tout les mots qui commence par la lettre C ou K

 

LIKE ’[S-V]ing’                     Tout les mots de 4 lettres qui finissent par ing et qui commence par une lettre entre S et V

 

LIKE ’M[^c]%’                       tout les mots qui commence par M et qui n’ont pas la lettre c en deuxième

Opérateurs logique: combinaison de condition

5

On utilisera l’opérateur And pour retrouver les lignes qui correspondent à tous les critères et l’opérateur OR pour celle qui correspondent au moins à un des critères.

Opérateur logique: négations

6

On utilise Not pour renvoyer les lignes qui ne correspondent pas à la condition qui suit.

Echelle de valeur

7

On a toutes les lignes dont l’id est compris entre 1 et 3.

8

On a toutes les lignes dont l’id n’est pas compris entre 1 et 2.

Liste de valeurs

image

On a toutes les lignes dont la colonne spécifiée possède une des valeurs entre parenthèse.

Valeurs inconnues

image

Toutes les lignes où le prénom est NULL.

11

Toutes les lignes où le prénom n’est pas NULL.

Formater les résultats.

Ordonner les résultats

La clause ORDER BY permet d’ordonner les résultats de façon croissante (ASC) ou décroissante (DESC).

Attention :

-          SQL Server ne garantit pas un ordre dans le jeu de résultat, sauf si l'ordre est spécifié avec une clause ORDER BY.

 

-          SQL Server trie dans l'ordre croissant par défaut.

 

-          Les colonnes qui sont incluse dans la clause ORDER BY ne doivent pas apparaître obligatoirement  dans la liste sélectionnée.

 

-          Vous pouvez trier par nom de colonne, colonne de valeurs calculées, ou des expressions.

 

-          Vous ne pouvez pas utiliser de colonnes texte, image ou nText dans la clause ORDER BY.

 

-          Utiliser des index appropriés peut optimiser la clause ORDER BY.

 

 

 12

Le même résultat aurait pus être obtenu avec la requête suivante :

 

SELECT ProductID,[Name],ProductSubcategoryID, Color, ListPrice, [Size]

 

FROM Production.Product

 

ORDER BY 3 ,1, 4 DESC

 

Eliminer les lignes dupliquées

Si vous voulez avoir une liste de valeurs unique, utilisez la clause DISTINCT pour éliminer les lignes dupliquées dans votre Ensemble de résultats.

Attention :

-          La combinaison de valeur dans un ensemble de résultats peut déterminer des lignes distinctes donc les lignes qui contiennent  une combinaison unique seront retournées dans l’ensemble de résultat.

Exemple :

SELECT distinct ProductSubcategoryID, Color, ListPrice, [Size]

 

FROM Production.Product

 

Sans la clause DISTINCT on a 504 lignes, Avec on a 286 lignes.

 

Changer les noms de colonnes ou utiliser des littéraux

On peut avoir un ensemble de résultat plus lisible lorsqu’on utilise la possibilité de renommer des colonnes ou que l’on insère une colonne non nommée dans laquelle on met un littéral.

Exemple :

image

Ici ‘Mon Nom  : ‘ est un littéral qui permet de présenter chaque ligne. On a renommé les colonnes « Prenom » et  « Employeur »  permettant ainsi l’utilisation d’accent et de majuscule qui sont rarement utilisés pour des noms de colonnes dans une base.

Posted: Jan 12 2009, 21:12 by laurentv | Comments (2) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Privé | SQL Server

Comments

Jules said:

Sympa cette saga !!

# January 13 2009, 08:44

fast cash loans said:

I like what I see. keep it going

# October 23 2009, 17:39

Add comment




biuquote
  • Comment
  • Preview
Loading

captcha

*