Commandes SQL de base
Par Damien, lundi 7 mars 2005 à 20:01 :: Bases de données :: #17 :: rss
Avant d'utiliser les fonctions PHP pour utiliser votre base de données, il faut au préalable avoir quelques bases de SQL. Ne vous inquiétez pas, ce n'est pas dur, il faut juste s'y mettre.
1- Avant propos
Ce tutorial suppose que vous avez accès à une base de données (vous avez par exemple installé MySQL sur votre machine, ou votre hébergeur vous propose une base MySQL).
Pour commencer, il faut créer une base de données et une table. Une base de données est constituée d'un ensemble de tables contenant les données. La base de données correspond donc en quelque sorte à un dossier, qui contient des fichiers (les tables).
La base de données
CREATE DATABASE base1;
La table
CREATE TABLE test ( id int(11) DEFAULT '0' NOT NULL auto_increment, nom varchar(20) NOT NULL, email varchar(50), dateheure datetime, PRIMARY KEY (id) );
Nous avons donc créé une table appelée test, contenant 4 champs :
- L'identifiant id qui permet de différencier les données. C'est un nombre entier qui s'auto-incrémente à chaque ajout.
- Le nom et l'email : chaînes pouvant contenir respectivement 20 et 50 caractères.
- La date et l'heure dateheure, stockée sous le format AAAA-MM-DD HH:MM:SS (par exemple 2005-03-01 22:54:03)
2- Insérer des données
Il faut insérer des données afin de pouvoir les manipuler par la suite. La commande "INSERT" permet de le faire.
Sa syntaxe simplifiée est :
INSERT INTO nom_table [(nom_col,...)]
VALUES (expression,...),(...),...
Deux exemples identiques :
INSERT INTO test(nom,email,dateheure) VALUES('damien','damien@igalaxie.com',NOW())
INSERT INTO test VALUES(0,'damien','damien@igalaxie.com',NOW())
En pratique on utilisera toujours la première méthode, car si on modifie la table il n'est pas forcément nécessaire de modifier toutes nos requêtes.
3- Manipuler des données
La commande "SELECT" permet de sélectionner des données afin de les afficher. C'est certainement la commande SQL la plus complexe, nous allons donc, dans un premier temps, simplifier sa syntaxe au maximum.
SELECT selection_col,... FROM table
[WHERE condition(s)]
[ORDER BY nom_col [ASC | DESC] ,...]
Pour afficher, par exemple, tous les enregistrements d'une table, par identifiant décroissant :
SELECT * FROM test ORDER BY id DESC
Supposons que l'on veuille seulement les enregistrements dont l'email se termine par @phpfrance.com, en les triant par email croissant, puis par date de création décroissante :
SELECT * FROM test WHERE email LIKE '%@phpfrance.com" ORDER BY email ASC, dateheure DESC
4- Effacer des données
La commande "DELETE" se charge d'effacer les données.
Sa syntaxe simplifiée est :
DELETE FROM nom_table
[WHERE condition(s)]
Pour effacer toutes les données d'une table :
DELETE FROM test
Et oui, ce n'est pas plus dur .. mais une erreur est vite arrivée, faites attention !
5- Modifier des données
La commande "UPDATE" met à jour les données dans une table.
Sa syntaxe simplifiée est :
UPDATE nom_table SET col1=expr1,col2=expr2,...
[WHERE condition(s)]
Je veux, par exemple, modifier l'adresse email de Damien :
UPDATE test SET email='damien@phpfrance.com' WHERE nom='damien'
Là encore, faites attention, il est facile de faire une erreur en oubliant la clause WHERE et en modifiant ainsi toutes les adresses email.

Commentaires
1. Le jeudi 10 mars 2005 à 12:14, par Titam
2. Le vendredi 11 mars 2005 à 12:54, par super
3. Le lundi 14 mars 2005 à 14:53, par tilde
4. Le lundi 14 mars 2005 à 18:24, par Titam
5. Le lundi 30 mai 2005 à 22:42, par yass
6. Le jeudi 10 novembre 2005 à 00:18, par Oriongu
7. Le lundi 27 mars 2006 à 15:30, par LeDébutant
8. Le lundi 10 avril 2006 à 15:55, par jojokun
9. Le mercredi 19 avril 2006 à 16:55, par lolo
10. Le samedi 22 avril 2006 à 16:49, par micka
11. Le mardi 25 avril 2006 à 21:04, par Damien
12. Le lundi 22 janvier 2007 à 14:18, par othmane
13. Le mardi 30 janvier 2007 à 17:55, par solution b3web
14. Le mercredi 25 juillet 2007 à 19:26, par sailey
15. Le dimanche 29 juillet 2007 à 17:21, par MCMic
16. Le samedi 1 mars 2008 à 00:53, par dexter
Ajouter un commentaire