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:

SELECT nom_editeur FROM 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:

SELECT nom_editeur, collections FROM editeur
Gallimardromans français et étrangers, sciences humaines, poésie
Dunodsciences gestion informatique
Khartalatourisme et poltique
Economicagestion économie statistiques
SeuilRivages -romans essais
Livre de pocheromans format poche
Minuitromans essais contemporains
Campus PressInformatique
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

SELECT * FROM editeur
1Gallimardparisromans français et étrangers, sciences humaines, poésie
2Dunodparissciences gestion informatique
9Khartalaguadeloupetourisme et poltique
4EconomicaParisgestion économie statistiques
5SeuilparisRivages -romans essais
6Livre de pocheparisromans format poche
7Minuitparisromans essais contemporains
8Campus PressParisInformatique

Listons à présent la colonne id_auteur de la table livre:

SELECT id_auteur FROM livre

SELECT id_auteur FROM livre

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.

SELECT DISTINCT id_auteur FROM livre

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

SELECT DISTINCT code, titre FROM livre

1Les Modernes
2Les désillusions du progrès
3Un plat qui se mange froid
4Moon
5Statistiques descriptives
6Introduction à la philosophie politique
7L'étranger
8La peste
9Au bonheur des dames
10Le premier aigle
11La peau de chagrin
12Eugénie grandet
13L'amant
14Un barrage contre le pacifique
15La vie devant soi
16sql
17MySQL
18La debâcle
19 Le tourisme à la Martinique : sous la plage, les conflits
20Le père Goriot
21Nana

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

SELECT DISTINCT code, titre FROM livre LIMIT 0,10

1Les Modernes
2Les désillusions du progrès
3Un plat qui se mange froid
4Moon
5Statistiques descriptives
6Introduction à la philosophie politique
7L'étranger
8La peste
9Au bonheur des dames
10Le premier aigle

A présent limitons à 8 à partir de la 6 ème ligne:

SELECT code, titre FROM livre LIMIT 5, 8

SELECT DISTINCT code, titre FROM livre LIMIT 5,8

6Introduction à la philosophie politique
7L'étranger
8La peste
9Au bonheur des dames
10Le premier aigle
11La peau de chagrin
12Eugénie grandet
13L'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

SELECT DISTINCT code, titre FROM livre ORDER BY titre LIMIT 5,8

13L'amant
18La debâcle
11La peau de chagrin
8La peste
15La vie devant soi
20Le père Goriot
10Le premier aigle
2Les désillusions du progrès

A vous

Rappel du modèle:

auteur (id_auteur, nom, prenom, pseudo, nationalite, siecle)
editeur (id_editeur, nom_edieur, 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).