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éeSELECT 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éeSELECT Liste_de_selectionSélection de toute les lignes et les colonnes d’une table Exemple 1 : Liste de tous les avions
[ FROM tables_sources ]
[ WHERE condition_de_recherche ]
[ GROUP BY expression_de_groupe ]
[ HAVING condition_de_recherche ]
[ ORDER BY expression_d_ordre [ ASC | DESC ] ]
SELECT * FROM avionExemple 2: Liste de tous les pilotes
SELECT * FROM PiloteSé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 avionExemple 2: Liste des identifiants, noms et salaires des pilotes
SELECT pil#, nom, SalaireBrut FROM piloteObtenir un résultat sans doublons (lignes distinctes) Exemple 1 : Liste des marques des avions sans doublons
SELECT DISTINCT Marque FROM avionExemple 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 NomsSELECT nom, SalaireBrutExemple 2 : Noms et Salaires de pilotes dans l’ordre croissant des salaires
FROM pilote
ORDER BY nom
SELECT nom, SalaireBrutExemple 3 : Noms et Salaires de pilotes dans l’ordre croissant des noms et l’ordre décroissant de salaires
FROM pilote
ORDER BY SalaireBrut ASC
SELECT nom, SalaireBrutExemple 4 : Villes de départs sans doublons et classées dans l’ordre décroissant.
FROM pilote
ORDER BY nom ASC, SalaireBrut DESC
SELECT DISTINCT villedepart
FROM Vol
ORDER BY villedepart DESC
Sélection de premières lignes
Exemple 1 : Un pilote dont le salaire est maximalSELECT TOP(1) *Exemple 2 : Informations de 50% des pilotes
FROM pilote
ORDER BY SalaireBrut DESC
SELECT TOP 50 PERCENT * FROM piloteExemple 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