Extraction simple des données.
Principe: SELECT FROM
Celle-ci s'obtient par l'intermédiaire de la commande SELECT. Le principe d'utilisation est le suivant:
SELECT nom_du_ou_des_champs FROM nom_de_la_table
Ainsi la liste du nom des éditeurs s'obtient de la manière suivante:
SELECT nom_editeur FROM editeur
Ce qui donne:
nom_editeur |
Gallimard |
Dunod |
Khartala |
Economica |
Seuil |
Livre de poche |
Minuit |
Campus Press |
Pour insérer plusieurs champs (colonnes) il suffit de préciser leurs noms, séparés par une virgule. Ainsi pour le nom de chaque éditeur et ses collections:
SELECT nom_editeur, collections FROM editeur
Pour avoir:
nom_editeur | collections |
Gallimard | romans français et étrangers, sciences humaines, poésie |
Dunod | sciences gestion informatique |
Khartala | tourisme et poltique |
Economica | gestion économie statistiques |
Seuil | Rivages -romans essais |
Livre de poche | romans format poche |
Minuit | romans essais contemporains |
Campus Press | Informatique |
Remarque: l'ordre de saisie des champs dans la requête a une incidence directe sur l'odre des colonnes.
L'extraction de toutes les colonnes s'obtient sans difficultés grâce à un caractère de substitution: *
SELECT * FROM editeur
id_editeur | nom_editeur | adresse | collections |
1 | Gallimard | paris | romans français et étrangers, sciences humaines, poésie |
2 | Dunod | paris | sciences gestion informatique |
9 | Khartala | guadeloupe | tourisme et poltique |
4 | Economica | Paris | gestion économie statistiques |
5 | Seuil | paris | Rivages -romans essais |
6 | Livre de poche | paris | romans format poche |
7 | Minuit | paris | romans essais contemporains |
8 | Campus Press | Paris | Informatique |
Listons à présent la colonne id_auteur de la table livre:
SELECT id_auteur FROM livre
id_auteur |
aron1 |
aron2 |
perr1 |
hill1 |
py1 |
aron2 |
camu1 |
camu1 |
zola1 |
hill1 |
balz1 |
balz1 |
dura1 |
dura1 |
gary1 |
fort1 |
dubo1 |
zola1 |
perr2 |
balz1 |
zola1 |
Certains noms revienent plusieurs fois puisque les auteurs correspondants ont écrit plusieurs ouvrages dans cette liste de livres. L'option DISTINCT permet d'éviter une telle répétition:
SELECT DISTINCT id_auteur FROM livre
Et là chaque nom n'apparaît qu'une seule fois.
id_auteur |
aron1 |
aron2 |
perr1 |
hill1 |
py1 |
camu1 |
zola1 |
balz1 |
dura1 |
gary1 |
fort1 |
dubo1 |
perr2 |
Limiter le nombre d'enregistrements
Listons l'id_livre et le titre de chaque livre:
SELECT code, titre FROM livre
code | titre |
1 | Les Modernes |
2 | Les désillusions du progrès |
3 | Un plat qui se mange froid |
4 | Moon |
5 | Statistiques descriptives |
6 | Introduction à la philosophie politique |
7 | L'étranger |
8 | La peste |
9 | Au bonheur des dames |
10 | Le premier aigle |
11 | La peau de chagrin |
12 | Eugénie grandet |
13 | L'amant |
14 | Un barrage contre le pacifique |
15 | La vie devant soi |
16 | sql |
17 | MySQL |
18 | La debâcle |
19 | Le tourisme à la Martinique : sous la plage, les conflits |
20 | Le père Goriot |
21 | Nana |
On n'a pas forcément besoin de la liste complète de ces ouvrages; par exemple les 10 premiers peuvent suffire. Il ne s'agit pas d'un filtre mais d'une simple limitation quantitative du nombre de lignes que la requête proposée provoque. La clause LIMIT permet cela. Celle-ci s'insère à la fin de la requête et comprend deux valeurs: LIMIT 0, 10, ce qui veut dire qu'on souhaite limiter le nmbre de réponses à 10 à partir de la première (la première ligne de réponse porte le numéro 0, la seconde le numéro 1, ...):
SELECT code, titre FOM livre LIMIT 0,10
code | titre |
1 | Les Modernes |
2 | Les désillusions du progrès |
3 | Un plat qui se mange froid |
4 | Moon |
5 | Statistiques descriptives |
6 | Introduction à la philosophie politique |
7 | L'étranger |
8 | La peste |
9 | Au bonheur des dames |
10 | Le premier aigle |
A présent limitons à 8 à partir de la 6 ème ligne:
SELECT code, titre FROM livre LIMIT 5, 8
code | titre |
6 | Introduction à la philosophie politique |
7 | L'étranger |
8 | La peste |
9 | Au bonheur des dames |
10 | Le premier aigle |
11 | La peau de chagrin |
12 | Eugénie grandet |
13 | L'amant |
C'est vraiment l'ordre des réponses et pas l'ordre des enregistrements comme les requêtes précédentes pourraient le laisser penser; exemple ci-dessous avec la même requête doté d'un tri (voir plus loin) croissant sur le titre.
SELECT code, titre FROM livre ORDER BY titre LIMIT 5, 8
code | titre |
13 | L'amant |
18 | La debâcle |
11 | La peau de chagrin |
8 | La peste |
15 | La vie devant soi |
20 | Le père Goriot |
10 | Le premier aigle |
2 | Les désillusions du progrès |
A vous
Rappel du modèle:
auteur (id_auteur, nom, prenom, pseudo, nationalite, siecle)
editeur (id_editeur, nom, adresse, collections)
genre (id_genre, type, precisions)
livre (code, titre, nb_pages, prix, #id_auteur, #id_genre, #id_editeur)
Saisir les requêtes permettant d'obtenir les informations suivantes:
1 - Noms et prénoms des auteurs
2 - Toutes les colonnes de la table genre
3 - Le titre , le prix et le nombre de pages de la table livre (on limitera le nombre de réponses à 5 à partir de la 10ème ligne).
Saisir votre requête