Syntaxe de l’ordre SELECT

L’ordre SELECT extrait des lignes de la base de données et permet de sélectionner une ou plusieurs lignes ou colonnes d'une ou de plusieurs tables. Ci-après une syntaxe simplifiée
SELECT Liste_de_selection
[ FROM tables_sources ]
[ WHERE condition_de_recherche ]
[ GROUP BY expression_de_groupe ]
[ HAVING condition_de_recherche ]
[ ORDER BY expression_d_ordre [ ASC | DESC ] ]

Syntaxe de l’ordre SELECT

L’ordre SELECT extrait des lignes de la base de données et permet de sélectionner une ou plusieurs lignes ou colonnes d'une ou de plusieurs tables. Ci-après une syntaxe simplifiée
SELECT Liste_de_selection
[ FROM tables_sources ]
[ WHERE condition_de_recherche ]
[ GROUP BY expression_de_groupe ]
[ HAVING condition_de_recherche ]
[ ORDER BY expression_d_ordre [ ASC | DESC ] ]
Sélection de toute les lignes et les colonnes d’une table Exemple 1 : Liste de tous les avions
SELECT * FROM avion
Exemple 2: Liste de tous les pilotes
SELECT * FROM Pilote
Sélection de toute les lignes et quelques colonnes d’une table Exemple 1 : Liste des marques, types et capacités des avions
SELECT Marque, TypeAvion, Capacite FROM avion
Exemple 2: Liste des identifiants, noms et salaires des pilotes
SELECT pil#, nom, SalaireBrut FROM pilote
Obtenir un résultat sans doublons (lignes distinctes) Exemple 1 : Liste des marques des avions sans doublons
SELECT DISTINCT Marque FROM avion
Exemple 2: Liste des marques et types d’avions sans doublons
select DISTINCT  marque, TypeAvion from avion

Mise en Ordre du résultat

Exemple 1 : Noms et Salaires de pilotes dans l’ordre alphabétique des Noms
SELECT  nom, SalaireBrut
FROM pilote
ORDER BY nom
Exemple 2 : Noms et Salaires de pilotes dans l’ordre croissant des salaires
SELECT  nom, SalaireBrut
FROM pilote
ORDER BY SalaireBrut ASC
Exemple 3 : Noms et Salaires de pilotes dans l’ordre croissant des noms et l’ordre décroissant de salaires
SELECT nom, SalaireBrut
FROM pilote
ORDER BY nom ASC, SalaireBrut DESC
Exemple 4 : Villes de départs sans doublons et classées dans l’ordre décroissant.
SELECT DISTINCT villedepart
FROM Vol
ORDER BY villedepart DESC

Sélection de premières lignes

Exemple 1 : Un pilote dont le salaire est maximal
SELECT TOP(1) * 
FROM pilote
ORDER BY SalaireBrut DESC
Exemple 2 : Informations de 50% des pilotes
SELECT TOP 50 PERCENT * FROM pilote
Exemple 3 : 25% des pilotes en commançant par ceux ayant le plus petit salaire:
SELECT TOP 25 PERCENT *
FROM pilote
ORDER BY SalaireBrut

Opérateurs arithmétiques

Opérateur Description
+ Addition
- Soustraction
* Multiplication
/ Division
% Retourne le reste entier d'une division. 13 % 4 = 1.

Exemple 1 :Noms et Salaires prévues des pilotes si on fait une augmentation de 8% des salaires actuels:

SELECT Nom, SalaireBrut +  SalaireBrut*(8.0/100)
From Pilote

Renommer la nouvelle colonnes (ALIAS)

SELECT Nom, SalaireBrut +  SalaireBrut*(8.0/100) [Salaire prévu]
From Pilote

ou

SELECT Nom, SalaireBrut +  SalaireBrut*(8.0/100) AS [Salaire prévu]
FROM Pilote
Opérateur Description
= Égal à
> Supérieur à
< Inférieur à
>= Supérieur ou égal à
<= Inférieur ou égal à
<> Différent de

Exemple 1: Liste des pilotes dont le salaire est inférieur à 20000:

SELECT * FROM pilote
WHERE SalaireBrut < 20000

Exemple 2: Pilotes dont le salaire est différent de 10000

SELECT * FROM pilote
WHERE SalaireBrut <> 10000

Opérateurs logiques

Exemple 1: Liste des vols qui partent de Paris et arrivent à Nice:

SELECT * FROM Vol
WHERE villedepart ='Paris' AND villearrivee ='Nice‘

Exemple 2 :Liste des vols qui partent de Paris ou de Nice

SELECT * FROM Vol
WHERE villedepart ='Paris' OR villedepart ='Nice'

Exemple 3: Liste des pilotes dont le salaire est compris entre 10000 et 25000 (les cas des bornes 10000 et 25000 sont compris dans le résultat)

SELECT * FROM pilote
WHERE SalaireBrut BETWEEN 10000 AND 25000

ou

SELECT * FROM pilote
WHERE SalaireBrut >= 10000 AND SalaireBrut <= 25000

Exemple 4: Liste des pilotes dont la date de fin d’activité n’est pas renseignée

SELECT * FROM pilote
WHERE DateFinActivite IS NULL

Exemple 5: Liste des pilotes dont la date de fin d’activité est renseignée

SELECT * FROM pilote
WHERE DateFinActivite IS NOT NULL

Exemple 6: Liste des vols qui partent d’une des villes suivantes: Paris, Nice ou Lyon

SELECT * FROM Vol
WHERE villedepart IN ('Paris', 'Nice', 'Lyon')

Ou

SELECT * FROM Vol
WHERE villedepart = 'Paris'
OR villedepart = 'Nice'
OR villedepart = 'Lyon'

Caractères génériques de l’opérateur LIKE

Caractère générique Description
% Toute chaîne de zéro caractère ou plus
_ (Under score) N'importe quel caractère à cet emplacement
[ ] Tout caractère de l'intervalle ([a-k]) ou de l'ensemble spécifié ([most])
[^] Tout caractère en dehors de l'intervalle ([^a-k]) ou de l'ensemble spécifié ([^most]). ^ représente le NOT

L’opérateur LIKE est utilisé pour la recherche de chaines respectant un modèle donnée.

Exemple 1: Liste des pilotes dont le nom commence par la lettre ‘R’

SELECT * FROM pilote
WHERE nom LIKE 'r%'

Exemple 2: Liste des pilotes dont le nom se termine par la lettre ‘E’

SELECT * FROM pilote
WHERE nom LIKE '%e'

Exemple 3: Liste des pilotes dont le nom contient la chaine ‘RA’

SELECT * FROM pilote
WHERE nom LIKE '%ra%'

Exemple 4: Liste des pilotes dont le nom ne contient pas la chaine ‘RA’

SELECT * FROM pilote
WHERE nom NOT LIKE '%ra%'

Exemple 5: Liste des pilotes dont la troisième lettre dans le nom est la lettre ‘R’:

SELECT * FROM pilote
WHERE nom LIKE '__r%‘

Exemple 6: Liste des pilotes dont l’avant dérnière lettre du nom est un ‘R’

SELECT * FROM pilote
WHERE nom LIKE '%r_'

Exemple 7: Liste des pilotes dont le nom commence par une des lettre B, R ou S.

SELECT * FROM pilote
WHERE nom LIKE '[brs]%'

Exemple 8: Liste des pilotes dont le nom ne commence pas par une des lettre B, R ou S.

SELECT * FROM pilote
WHERE nom LIKE '[^brs]%'

Exemple 9: Liste des pilotes dont le nom commence par une des lettres A, B, C, D, E, F, G, H, I, J.

SELECT * FROM pilote
WHERE nom LIKE '[a-j]%'

Exemple 10: Liste des pilotes dont le nom commence par une lettre autre que A, B, C, D, E, F, G, H, I, J.

SELECT * FROM pilote
WHERE nom LIKE '[^a-j]%'
Pour plus comprendre : TP + correction

Aucun commentaire :

Enregistrer un commentaire