Chapter 5. SQL

Table of Contents

Manipulation des données
Lire des données dans la base : SELECT
Exemples SELECT
Gestion des données

SQL (Structured Query Language) est un langage de définition, de contrôle et de manipulation de données pour les bases de données relationnelles. Le modèle relationnel a été inventé par E.F. Codd (Directeur de recherche du centre IBM de San José) en 1970, et est devenu aujourd'hui le standart en terme de langage pour les bases de données. De fait, c'est le langage utilisé par le système de gestion de base de données MySQL.

Nous ne donnons ici qu'un aperçu du langage SQL, permettant de comprendre les grands principes du langage et de réaliser des requêtes élémentaires. Pour plus de détails, on pourra se reporter à la documentation comment ça marche.

Manipulation des données

SQL est à la fois un langage de manipulation de données et un langage de définition de données. Toutefois, la définition de données est l'oeuvre de l'administrateur de la base de données, c'est pourquoi la plupart des personnes qui utilisent le langage SQL ne se servent que du langage de manipulation de données, permettant de sélectionner les données qui les intéresse.

Lire des données dans la base : SELECT

La principale commande du langage de manipulation de données est la commande SELECT, dont la syntaxe est la suivante :

		 SELECT [ALL] | [DISTINCT] <liste des noms de colonnes> 
		              | * FROM <Liste des tables> [WHERE <condition logique>] 
     

  • L'option ALL (option par défaut) permet de sélectionner l'ensemble des lignes satisfaisant à la condition logique

  • L'option DISTINCT permet de ne conserver que des lignes distinctes, en éliminant les doublons

  • La liste des noms de colonnes indique la liste des colonnes choisies, séparées par des virgules.

  • Lorsque l'on désire sélectionner l'ensemble des colonnes d'une table il n'est pas nécessaire de saisir la liste exhaustive de ses colonnes : l'option * permet de réaliser cette tâche

  • La liste des tables indique l'ensemble des tables (séparées par des virgules) sur lesquelles on opère

  • La condition logique permet d'exprimer des qualifications complexes à l'aide d'opérateurs logiques et de comparateurs arithmétiques

[Tip]Tip

Le langage SQL n'est pas sensible à la casse (en anglais case sensitive), cela signifie que l'on peut aussi bien écrire les instructions en minuscules qu'en majuscule. Toutefois, cette insensibilité à la casse n'est que partielle dans la mesure où la différenciation entre minuscules et majuscules existe au niveau des identificateurs d'objets.

Exemples SELECT

Voyons quelques unes des possibilités de la commande SELECT. Supposons l'existence de la table suivante, recensant des lecteurs de CD vendus d'occasion. Cette table s'appelle lecteurs.

refmarquemodeleanneeprix
1PioneerCD-1201998700
2SonyPL1351999890
3PioneerCD-1401997950
4PhilipsPH34020001050
5TechnicsT6001998890

Nous pouvons lister l'ensemble de la table par

SELECT * FROM lecteurs

qui nous donne tous les enregistrements de la table (cinq lignes). Maintenant, nous pouvons restreindre la liste aux lecteurs ayant un prix inférieur ou égal à 1000F :

SELECT * FROM lecteurs WHERE prix <= 1000

refmarquemodeleanneeprix
1PioneerCD-1201998700
2SonyPL1351999890
3PioneerCD-1401997950
5TechnicsT6001998890

On peut également combiner plusieurs critères. Par exemple, les lecteurs Pioneer à moins de 1000F.

SELECT * FROM lecteurs WHERE prix < 1000 and marque='Pioneer'

On peut aussi vouloir sortir cette liste après l'avoir trié. La requête SELECT permet cela directement. Pour obtenir la liste des lecteurs classés par ordre de prix, nous demandons :

SELECT * FROM lecteurs ORDER BY prix 

Quand on ne précise pas si le tri est croissant ou décroissant, c'est un tri décroissant qui est opéré. On peut préciser de quel type est le tri à l'aide des mots clés ASC (croissant) ou DESC (décroissant).

On peut aussi utiliser plusieurs critères de tri. Il suffit alors de séparer les noms des colonnes utilisées pour le tri par des virgules. L'ordre dans lequel apparaissent les noms de colonnes indique quels critères sont prioritaires. Par exemple,

SELECT * FROM lecteurs ORDER BY prix,annee 

donne la liste suivante, où quand plusieurs prix sont identiques, le second critère (l'année) est utilisé pour déterminer l'ordre.

refmarquemodeleanneeprix
1PioneerCD-1201998700
5TechnicsT6001998890
2SonyPL1351999890
3PioneerCD-1401997950
4PhilipsPH34020001050

Gestion des données

La gestion des données comprend la création des bases et des tables, ainsi que la définition des champs des tables et leurs types. Toutes ces opérations peuvent se faire à l'aide de commandes MySQL.

Cependant, pour écourter la présentation, nous recommandons l'utilisation de l'outil phpMyAdmin . Celui-ci permet de créer la base de donnée et de l'administrer à travers une interface web (elle même écrite en PHP d'ailleurs). Par conséquent, une administration à distance ide la base devient aussi simple que si on avait accès au poste où se trouve la base.

Figure 5.1. L'interface d'administration phpMyAdmin

L'interface d'administration phpMyAdmin