Requêtes SQL

La requête de création de table

Comme l'on a déjà dit dans le chapitre précédent, les requêtes SQL sont des moyens d'interrogation de la base de données. Concrètement, c'est via les requêtes SQL que l'utilisateur passe ses commandes à la base de données en lui disant ce qu'il veut avoir :

Une requête traduite en langage humain serait quelque chose du genre "Donnez-moi s'il vous plait la liste de tous les élèves qui se trouvent dans la table eleve".

Ainsi le SGBDR est là pour nous servir. On peut lui demander de nous remettre une liste de données, d'insérer une liste de données, etc.

Précédemment, on a créé la table manuellement via l'interface phpMyadmin, mais il y a aussi un autre moyen pour créer une table. Nous pouvons nous même dire directement au système de créer la table à l'aide d'une requête SQL.

CREATE TABLE `ecole`.`eleve` (
`numero` INT( 5 ) NOT NULL ,
`nom` VARCHAR( 30 ) NOT NULL ,
`prenom` VARCHAR( 30 ) NOT NULL ,
`datenaissance` DATE NOT NULL ,
`adresse` TINYINT NOT NULL ,
PRIMARY KEY ( `numero` )
)

 

Dans cet exemple ecole est la base de données et eleve est le nom de la table. Le mot clé à retenir pour la création de table est CREATE TABLE. Il ne faut pas oublier de séparer la définition de chaque champ par une virgule.

Insertion de données dans un table : INSERT INTO

En spécifiant le nom de la table, la commande INSERT INTO permet d'insérer des données sous forme d'enregistrements dans une table. Les valeurs à insérer sont listées dans la clause values et séparées par des virgules.

INSERT INTO `eleve` (
`numero` ,
`nom` ,
`prenom` ,
`adresse`
)
VALUES (
'1', 'Cassidy', 'Hope', 'Appartement 4 21000 Rue de la charité Pays'
);

 

Sélection de données : SELECT

On peut avoir la liste de tous les élèves de la table élève en utilisant le mot clé SELECT, suivie de la clause FROM, puis du nom de la table.

La requête associée est donc :

SELECT * FROM `eleve` ;

 

L'utilisation du signe * veut dire que l'on veut avoir tout les enregistrements. Dans le cas où on veut seulement avoir les enregistrements répondant à certains critères, on emploie le mot clé WHERE.

On spécifie une certaine condition dans la clause where :

SELECT * FROM `eleve` WHERE `numero` =1.

Cette requête demande à la base de données de sélectionner l'élève numéro 1, et de nous retourner le résultat.

Il peut y avoir plusieurs conditions :

SELECT *
FROM `eleve`
WHERE `nom` LIKE 'Cassidy'
AND `prenom` LIKE 'Hope'

 

Traduite en langage humain, cela signifie qu'il faut sélectionner et afficher tout les élèves dont le nom est "Cassidy" et dont le prénom est "Hope"

Modification de données : UPDATE

Le mot clé utilisé pour la modification des données est UPDATE. En l'associant à la clause WHERE, il est possible de rechercher des données ayant certains critères et les modifier.

Pour modifier le prénom de l'élève numéro 1 par exemple on utilisera la syntaxe suivante :

UPDATE `eleve` SET `prenom` = 'Vanessa' WHERE `eleve`.`numero` =1 ;

 

Il est aussi possible de modifier plusieurs champs d'un seul coup avec cette syntaxe :

UPDATE `eleve` SET `nom` = 'Paradis', `prenom` = 'Vanessa' WHERE `eleve`.`numero` =1 ;

 

Ici, on modifiera le nom et le prénom à la fois. Il ne faut pas oublier que les champs sont toujours séparés par des virgules, contrairement aux conditions, qui sont séparées par des opérateurs booléens (AND, OR, ...)

Suppression de données : DELETE

On peut procéder de la même façon pour supprimer un (ou plusieurs) enregistrement(s) sauf que cette fois ci on utilisera les mots clé DELETE FROM.

DELETE FROM `eleve` WHERE `numero` =1 ;

 

La requête signifie qu'il faut supprimer de la table eleve l'élève dont 'numéro' = '1'.

A propos de l'auteur

Nicolas Galle

Nicolas Galle est développeur web sénior pour l'agence SEO Aseox.