7.Mes premières requêtes SQL
7.1.Introduction
7.2.Création d'une table [CREATE TABLE]
La création d'une table se fait via la commande
CREATE TABLE suivi du nom de la table (ici matable) et des paramètres de la table. Ces paramètres consistent en, au minimum, la liste des noms des champs de la table accompagnés du
type de champ[en savoir plus] (entier, date, chaîne de caractères, etc.). Ainsi pour créer une table contenant
- le nom d'une personne sur au maximum 128 caractères
- l'année de naissance
- la taille
|
on pourra utiliser la requête suivante
CREATE TABLE matable (nom VARCHAR(128), annee_naissance INTEGER, taille FLOAT)
|
- Selon le serveur de base de données et le client utilisé vous devrez peut-être ajouter un point-virgule à la fin de la requête (ce qui est le cas si vous utilisez la commande en ligne MySQL).
|
7.3.Liste des tables contenues dans la base de données
Pour visualiser l'effet de la commande précédente vous devez lister les tables de la base de données. Il n'existe pas de requête SQL standard pour ce type d'opération. La façon de faire dépend de la nature de la base de données.
- avec MySQL: Cela se fait via la commande
- avec PostgreSQL: Tapez la commande \d
|
- Si vous utilisez un client web de type phpMyAdmin ou PhpPgAdmin, la liste des tables apparait automatiquement dans le descriptif de la base
|
7.4.Lister les champs d'une table
La façon de lister les champs d'une table (baptisée ici matable) dépend aussi de la nature de la base de données.
- avec MySQL: Cela se fait via la commande
- avec PostgreSQL: Tapez la commande \d matable
|
- Si vous utilisez un client web de type phpMyAdmin ou PhpPgAdmin, il suffit de sélectionner la table et l'onglet "structure" pour obtenir la liste et nature des champs qui la compose
|
7.5.Enregistrement d'une donnée dans une table [INSERT INTO]
L'ajout (ou insertion) d'une donnée dans une table se fait via l'instruction SQL INSERT INTO suivi du nom de la table et des valeurs à insérer.
Il existe plusieurs façons de l'utiliser. La version la plus courte qui n'est pas la plus sure et ne convient pas à toutes les situations consiste à seulement préciser les valeurs (dans l'ordre des champs tels qu'ils ont été créés) après le mot clé
VALUES:
INSERT INTO matable VALUES ('Jean DUPONT', 1970, 1.80)
Il est toutefois préférable de préciser (avant le mot clé
VALUES) le nom des champs dont vous précisez les valeurs (ce qui permet de ne pas avoir à se préoccuper de l'ordre dans lequel les champs ont été créés)
INSERT INTO matable (taille, annee_naissance, nom) VALUES (1.80, 1970, 'Jean DUPONT')
|
- Les valeurs de type chaîne de caractères doivent être mise entre apostrophes (quotes). Si ces chaines de caractères contiennent des apostrophes il faut que celle-ci doivent être "échappées" en les faisant précéder d'un caractère particulier, généralement un anti-slash '\' (pour certaines bases de données il faut la faire précéder d'une apostrophe). Ex:
INSERT INTO matable VALUES ('Pierre D\'arvors', 1926, 1.70)
|
7.6.Lecture des données d'une table [SELECT ... FROM]
Pour lire le contenu d'une table (baptisée ici matable) vous pouvez faire appel à la requête SQL
Cette requête listera tous les champs de tous les enregistrement de la table
7.7.Filtrer les résultats d'une requête [WHERE]
Pour limiter, sur critères, la liste des enregistrements retournés ou affectés par la requête vous pouvez utiliser l'instruction
WHERE suivi de la condition (éventuellement une combinaison de conditions avec des opérateurs AND et/ou OR)
SELECT * FROM matable WHERE annee_naissance<1950
Cette requête listera tous les champs de tous les enregistrement de la table pour lesquels le champ "annee_naissance" contient une valeur strictement inférieure à 1950
7.8.Suppression d'enregistrement(s) dans une table [DELETE FROM]
Pour supprimer un ou plusieurs enregistrements d'une table, il existe l'instruction
DELETE FROM qui devra être suivie du nom de la table (puis généralement d'une clause
WHERE permettant de retrouver le -ou les- enregistrements a supprimer). Exemple pour supprimer les enregistrements correspondant à des personnes nommées 'Jean DUPONT':
DELETE FROM matable WHERE nom='Jean DUPONT'
En l'absence de clause
WHERE se sont l'ensemble des enregistrements de la table qui sont effacés.
7.9.Mise à jour d'enregistrement(s) dans table [UPDATE]
A compléter
7.10.Suppression d'une table
Pour supprimer de la base de données une table (matable) il faut utiliser à la requête SQL
7.11.Conclusion
Ceci n'est qu'un bref aperçu des commandes SQL, nous allons par la suite les présenter plus en détail.