Une base pour les exemples
Pour introduire les premières requêtes sur une base,
nous allons utiliser les exemples donnés dans le tutoriel
du site de SQLite dans
cette page.
La base de données utilisée ne présente qu'une seule table qui est la suivante :
| id | nom | age | adresse | salaire |
| 1 | Paul | 32 | California | 20000 |
| 2 | Allen | 25 | Texas | 15000 |
| 3 | Teddy | 23 | Norway | 20000 |
| 4 | Mark | 25 | Rich-Mond | 65000 |
| 5 | David | 27 | Texas | 85000 |
| 6 | Kim | 22 | South-Hall | 45000 |
| 7 | James | 24 | Houston | 10000 |
Vous pouvez la télécharger ici. Prenez le temps de tester chacune des requêtes proposées ci-après.
Afficher la table
Ouvrir la base
à l'aide de SQLite Manager ou sur sqliteonline (chargez la au préalable sur votre machine).
La première requête que nous allons voir est la plus simple. Elle consiste à demander d'afficher toutes les colonnes d'une table.
Entrez la commande :
SELECT * FROM COMPANY;
Vous obtenez l'affichage de toutes les lignes de la table COMPANY.
Afficher des colonnes
On utilise également SELECT pour afficher une ou des colonnes.
Afficher une colonne (projection)
La commande suivante permet de n'afficher que la colonne adresse.
SELECT adresse FROM COMPANY;
Testez !
Si l'on veut éviter les doublons:
SELECT DISTINCT adresse FROM COMPANY;
Afficher plusieurs colonnes
Pour afficher le nom et l'adresse:
SELECT nom, adresse FROM COMPANY;
La clause WHERE
Le mot clef WHERE permet de préciser des critères,
ce qui limitera l'affichage aux lignes satisfaisant ces critères.
Affichons par exemple les noms des personnes ayant au moins 25 ans:
SELECT nom FROM COMPANY WHERE age >= 25 ;
Testez !
Ou encore les lignes correspondant aux personnes ayant 32 ans :
SELECT nom FROM COMPANY WHERE age = 32 ;
Ou encore les lignes correspondant aux personnes n'ayant pas 32 ans :
SELECT nom FROM COMPANY WHERE age <> 32 ;
AND, OR
Les critères de sélection utilisés peuvent utiliser
les opérateurs de comparaison comme dans l'exemple ci-dessus
( < , = , > , <= , >= , <>) ainsi que les constructions usuelles logiques comme AND, OR.
On trouvera une liste d'opérateurs
sur cette page.
AND
Affichons par exemple les noms des personnes ayant au moins 25 ans et un salaire d'au moins 40000:
SELECT nom FROM COMPANY WHERE age >= 25 AND salaire >= 40000 ;
Testez ! Le résultat est l'ensemble des lignes satisfaisant les deux conditions.
Pour afficher les lignes des personnes ayant entre 25 et 32 ans, on peut écrire la requête suivante:
SELECT * FROM COMPANY WHERE age >= 25 AND age <= 32 ;
ou encore la requête suivante :
SELECT * FROM COMPANY WHERE age BETWEEN 25 AND 32 ;
Pour en savoir plus sur l'usage du mot clef BETWEEN, on pourra consulter cette page.
OR
Affichons par exemple les noms des personnes ayant au moins 25 ans ou un salaire d'au moins 40000 :
SELECT nom FROM COMPANY WHERE age >= 25 OR salaire >= 40000 ;
Le résultat est l'ensemble des lignes satisfaisant au moins l'une des deux conditions.
Pour afficher les lignes correspondant aux personnes ayant 25 ou 32 ans, on pourra écrire :
SELECT * FROM COMPANY WHERE age = 25 OR age = 32 ;
mais on pourra aussi écrire :
SELECT * FROM COMPANY WHERE age IN (25, 32) ;
Pour en savoir plus sur le mot clef IN, on pourra consulter cette page.
On peut également utiliser la négation et afficher les lignes des personnes n'ayant ni 25, ni 32 ans :
SELECT * FROM COMPANY WHERE age NOT IN (25, 32) ;
On pourra consulter cette page pour en savoir plus sur le mot clef NOT.
like
Affichons les noms des personnes dont le nom commence par K:
SELECT * FROM COMPANY WHERE nom LIKE 'K%';
Affichons les noms des personnes dont le nom termine par k:
SELECT * FROM COMPANY WHERE nom LIKE '%k';
Pour en savoir plus sur l'usage de LIKE, consultez cette page.
On utilisera également GLOB pour des recherches analogues. Renseignements sur cette page.
ORDER BY
On peut vouloir trier les résultats d'une requête.
Affichons les lignes par ordre croissant (ASCendant) des salaires:
SELECT * FROM COMPANY ORDER BY salaire ASC;
Affichons les lignes par ordre croissant des salaires
puis ordre croissant des âges (ainsi à salaire égal le plus jeune est affiché avant):
SELECT * FROM COMPANY ORDER BY salaire ASC, age ASC;
Affichons les lignes par ordre décroissant des salaires:
SELECT * FROM COMPANY ORDER BY salaire DESC;
Page du site SQLite concernant ORDER BY.