|
|
Il y a actuellement 301 tutoriaux sur Aidoforum. Toute reproduction, partielle ou complète, est interdite.
Retour aux tutoriaux.
|
| PHP / MySQL -> Les bases du SQL |
Je vous explique dans ce tutorial les bases du SQL , le SQL étant un domaine très vaste et qui peut devenir très compliqué.
Sur le Web, on utilise MySql , MySql ne contient pas ce que d'autres bases de données ont, c'est a dire , avec MySql il est impossible de faire :
- Des Triggers
- Des procédures stockées
Commençons par l'essentiel :
La création de table, ici je vous mets un exemple assez simple d'une table d'utilisateurs.
Create table Users{
Id int(10) not null,
Pseudo varchar(30) not null,
Password varchar(10) not null,
Pays varchar(25) not null,
Code postale int(9),
Email varchar(40) not null};
|
Voilà, ici nous avons une simple table d'utilisateurs, je vais vous expliquer un minimum la syntaxe :
- Create Table Users , Users étant le nom de votre table.
- id int(10) not null , id est le nom du champ , int(10) le type et sa taille , not null est une contrainte qui vous permet de spécifier que une insertion ne peut pas être faite si le champ est vide.
int(10) : integer(nombre entier) de longueur 10 maximum (Attention pas de Valeur 10 mais de longueur 10 ex : 1111111111 )
varchar(30) : varchar(caractère) toujours la longueur maximum entre parentheses.
Il existe beaucoup d'autres types que je n'expliquerai pas ici car la plupart d'entre vous utiliserons PHPMyAdmin qui donne une liste déroulante de types.
Insertions de données dans la table.
insert into Users (Id,Pseudo,Password,Pays,Code,Email) values (1,'Seb','123456f','Belgique','1440','machin@truc.com');
|
Explications de la syntaxe :
insert into[inserer dans] Users[la table Users] [dans les champs](.......) values[les valeurs] (......);[toujours un point virgule pour terminer une requete]
Attention les champs de caractéres doivent etre inserer entre deux ' mais pas les nombres.
Quand vous faites une insertions vous n'etes pas obliger d'inclure les champs qui n'ont pas etes defini comme not null.
Le Select , vous permet de selectionner une table ou certains champs d'une table ou meme de faire une jointure entre deux tables pour en affiché le resultat ! Et oui avec le select on fais ce qu'on veut :)
La plus simple des commandes est : Select * from Users;
Cela vous selectionne toute la table Users.
Vous pouvez aussi ne selectionner que certains champs de cette table : Select Pseudo,Email from Users;
Vous n'aurez la que les champs Pseudo et Emails de selectionnés.
Vous pouvez aussi y ajouter un ou des critéres de sélection : Select Pseudo,Email from Users where Pays='Belgique';
Il selectionnera le Pseudo et l'Email de toutes les personnes residant en Belgique.
Ou encore : Select Pseudo,Email from Users where Pays='Belgique' and Code=1440;
Il vous selectionnera alors le Pseudo et L'Email de toutes les personnes residant en belgique et plus precisement ayant le code postale 1440.
Maintenant la Jointure ! hehe du tout bon ca :)
Je vous presente deux tables :
1ère table , notre table Users :
Id Pseudo Password Pays Code Email
1 Seb 123456f Belgique 1440 machin@truc.com
...
|
2ème table, une table d'avatars qui se nomme Avatars :
IdUsers NomAvatar UrlAvatar
1 Linux http://www.truc.com/linux.jpg
...
|
Maintenant nous allons joindre ces deux tables pour les avoir dans un seul Select !
Select * from Users join Avatars where Users.id=Avatars.idUser;
|
Quelques précisions, pour pouvoir joindre ces deux tables il faut qu'elles aient un champ commun , il s'agit ici de Id et IdUsers , si il n'y pas de champs communs , il y auras pas de jointure possible!
Donc ici nous obtenons dans notre Select ceci :
Id Pseudo Password Pays Code EMail NomAvatar UrlAvatar
...
...
|
Voila je vais m'arrêter la car les possibilités du select sont infinies.
La commande update, elle sert a mettre a jour un tuple(une ligne) d'une table.
exemple : Update Users set Pseudo='Seba' where Id=1;
Grace a cette commande nous venons de changer le Pseudo de Seb en Seba, la syntaxe est assez simple comme vous pouvez le voir,
Update [nomtable] set [nomchamp] where [le champ utilisé pour identifier le tuple]
Vous pouvez bien sûr changer plusieurs champs en une seule commande :
Update Users set Pseudo='Seba' and Pays='France' where Id=1;
La commande Delete a une syntaxe très très simple :
Delete From Users where Id=1;
Cette commande supprimera le ou les tuples où l'id est égale a 1.
Vous en savez grâce a ce tuto un minimum pour faire des requetes SQL , mais attention , je n'aborde ici que les requetes simples de base ! Vous pouvez trouver des livres de 200 pages rien que sur le SQL :)
PS: Ceci est un texte d'aide et non un texte à copier-coller sur d'autres sites ou Forums
|
| Par Ken, le 01 Aout 2004 à 08h08 |
| Commentaire de TRENT le 05 Septembre 2006 à 10h14 | Pas très complet, tu n'explique que les Users join niveau Jointures, tu ne présise pas de quelle manière faire en sorte de lié 2 tables avec des champs en commun, etc...
Le tutoriel est relativement bien expliqué mais manque cruellement d'informations.
|
| /!\ Vous devez être inscrit pour pouvoir commenter ce tutoriel, ou demander du support. /!\ |
|
|
|
|
|