javascript, javascripts, js, jscript, scripts, script, html, dhtml, dynamic, cookies, menu, frames, formulaire, source, code, gratuit, exemple, developper, html, php4, php3, php, mysql, liens, php2, forum, livre d'or, pages, web, dynamiques, programmation, webmasters, webmestres, tutorial, tutoriel, annuaires, espace, membres, banniéres, caddies, chats, compteurs, formulaires, forums, gestion, documentations, news, mailing, list, newsletter, moteurs, recherche, sondages, votes, statistiques, autres, agendas, calendriers, mail, annonces, audio, outils, réseaux, graphique, recommandation, site, sécurité, portail, creation, actualité, moteur de recherche, moteur, trucs, astuces, services, flash, action script, actionscript Tutoriaux : Php/MySQL
Script Masters : Javascript, Php, Mysql, html pour Webmasters!
 
    Script Masters
 
    Espace membre
 
    Langages
 
    Autres ressources
 
    Ressources graphiques
 
    Recherche
 
    Kit graphique
 
    Liens
 
    Statistiques


 


Télécharger cet article au format PDF


Untitled Document
Notions MySQL – Partie 1 : les tables


Tutorial écrit par : Daniel Fabien - Script Masters

 

   Introduction

 

 

Cette première partie présente rapidement la création de table avec MySQL. Le but n’étant pas d’entrer dans le détail, vous trouverez ici les commandes dont vous êtes le plus susceptible d’avoir besoin.
Chaque situation est illustrée d’un exemple. Ceux-ci ont été testés à l’aide phpMyAdmin 2.2.6. Vous pouvez télécharger la dernière version de phpMyAdmin à cette adresse : http://www.phpmyadmin.net/ .

 

Création d’une table



Syntaxe de la commande

La commande CREATE TABLE permet de créer une nouvelle table dans la base de données. Voici sa syntaxe simplifiée :

Script :
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] nom_table
(
nom_colonne1 TYPE ATTRIBUTS,
nom_colonne2 TYPE ATTRIBUTS,
...
nom_colonneN TYPE ATTRIBUTS,
);

Notée que les mots clefs TEMPORARY et IF NOT EXISTS sont optionnels (entourés de crochet dans la syntaxe) et permettent la création d’une table temporaire pour le premier alors que le second permet d’empêcher une erreur si on tente de créer une table existant déjà.

 

Attributs pour une colonne

Attributs :
AUTO_INCREMENT Quand l'enregistrement est créé, un numéro unique est attribué. Il prend la valeur du dernier élément ajouter et l’incrémente d’une unité.

NOT NULL Le champ doit être obligatoirement comporter une valeur.

NULL Une valeur n'est pas obligatoire.

PRIMARY KEY La colonne est une clé primaire. Définir une clé primaire permet d’indexer un champ identifiant à une table. Il ne peut y en avoir qu’une par table. Par la suite, les accès à une table seront bien plus rapides en passant par le champ identifié en tant que clef primaire.

UNIQUE La colonne est unique (on ne peut retrouver sa valeur dans deux enregistrements de la table).

UNSIGNED Pour les types numériques entiers, indique que l'entier est non négatif.

ZEROFILL Pour les types numériques entiers et réels, sert à compléter avec 0 pour afficher la taille maximale autoriser (exemple : 00012515).

BINARY Pour les types chaînes CHAR et VARCHAR, indique que les valeurs des colonnes sont sensibles à la casse pour les opérations de tri, comparaison.

DEFAULT "uneValeur" Le champ prendra « uneValeur » comme valeur par défaut.


Types pour une colonne

Types numériques :
TYNYINT

Très petit nombre entier.
-128<=N<=127 si signé.
0<=N<=255 si non signé (UNSIGNED).

1 octet
SMALLINT Petit nombre entier.
-32 768<=N<= 32 767 si signé.
0<=N<=65 535 si non signé.

2 octets
MEDIUMINT Nombre entier moyen.
-8 388 608<=N<=8 388 607 si signé.
0<=N<=16 777 215 si non signé.

3 octets
INT Nombre entier.
-2 147 483 648<=N<=2 147 483 647 si signé.
0<=N<= 4 294 967 295 si non signé.

4 octets
BIGINT Grand nombre entier.
round(-(2^(8*8))/2)<=N<=round((2^(8*8))/2)
0<=N<=2^(8*8)
Je vous laisse le soin de faire les calculs :) (mais c'est très grand) .

8 octets
FLOAT Petit nombre à virgule flottante signé.

4 octets
DOUBLE Nombre à virgule flottante signé.

8 octets
DECIMAL Nombre à virgule flottante signé où les nombres sont enregistrés sous forme de chaine de caractères.

variables

 

Types chaînes :
CHAR(taille) Chaine de caractères de longueur fixe"taille".
Compris entre 1 et 255 caractères.

taille octets
VARCHAR(taille) Chaine de caractères de longueur variable. Mais de "taille" max.
Compris entre 1 et 255 caractères.

taille octets
TINYBLOB, TINYTEXT BLOB ou TEXT de 255 caractères au maximum.

variable
BLOB, TEXT BLOB ou TEXT de 65 535 caractères au maximum.

variable
MEDIUMBLOB, MEDIUMTEXT

BLOB ou TEXT de 16 777 215 caractères au maximum. variable
LONGBLOB, LONGTEXT

BLOB ou TEXT de 4 294 967 295 caractères au maximum. variable
ENUM('value1','value2',...) La valeur de la colonne doit obligatoirement être une des valeurs de l'énumération. 1 ou 2 octets
SET('value1','value2',...) la valeur de la colonne est aucune, une ou plusieurs valeurs de l'ensemble. 1,2,3,4 ou 8 octets

 

Types de dates :
DATE Date.
ex : '2003-11-28'

3 octets
DATETIME

Date et heure.
ex : '2003-11-28 23:56:53'

8 octets
TIMESTAMP Tampon horaire UNIX.

4 octets
TIME Heure.
ex : '23:58:43'

3 octets
YEAR

Année.
ex : '2003'

1 octets

 

Exemple

Voici un exemple de table que nous utiliserons dans la suite de ce tutorial.

Script :
CREATE TABLE news (
id int(11) NOT NULL auto_increment,
date date NOT NULL DEFAULT '0000-00-00',
titre text NOT NULL,
lien text NOT NULL,
PRIMARY KEY (id)
);

Cet exemple permet d’obtenir la table suivante (capture d’écran de phpMyAdmin) :


 

Optimisation d’une table
 

L’optimisation d’une table intervient lorsque plusieurs données ont été manipulées. Utile notamment en cas de nombreuses suppressions sur les champs (DELETE).

Script :
OPTIMIZE TABLE nom_table

Ce qui donne sur l’exemple de ce tutorial :

Script :
OPTIMIZE TABLE news;

Cette requête exécutée sous phpMyAdmin retourne :

Dans notre cas, la table venant d’être créée, elle ne nécessite pas d’optimisation. D’où le message « Table is already up to date ».

 

Modifier une table
 


Syntaxe de la commande

La commande ALTER TABLE permet de modifier la structure d’une table existante.

Script :
ALTER [IGNORE] TABLE nom_table modification

Modification peut prendre différentes valeurs selon les modifications que vous souhaitez apporter. Nous détaillons ci-dessous les plus important d’entre eux.


Ajouter une colonne

Voici la syntaxe d’ajout d’une colonne :

Script :
ADD nom_colonne1 TYPE ATTRIBUTS [FIRST | AFTER nom_colonne2]

Cette commande ajoute une colonne de nom « nom_colonne1 ». Les TYPES et ATTIBUTS sont à préciser comme nous l’avons vu dans le premier paragraphe lors de la création d’une table.

Voici un exemple complet de la commande sur la table créée au début de tutorial :

Script :
ALTER TABLE news
ADD clic int(11) AFTER lien;

On obtient alors la table suivante :

Modifier le nom et le type d’une colonne

Syntaxe de modification du nom et du type d’une colonne

Script :
CHANGE ancien_nom_colonne nouveau_nom_colonne TYPE ATTRIBUTS

Ce qui permet de changer ancien_nom_colonne par nouveau_nom_colonne et de lui affecter de nouveaux TYPE et ATTRIBUTS.
Dans notre exemple, nous allons modifier le champ « clic » par « hit » et nous allons lui donner la valeur 0 par défaut :

Script :
ALTER TABLE news
CHANGE clic hit int(11) DEFAULT '0';

On obtient la table suivante :


Supprimer une colonne

Syntaxe de suppression d’une colonne :

Script :
DROP nom_colonne

Sur notre exemple, nous exécutons alors la requête :

Script :
ALTER TABLE news
DROP hit;

Ce qui permet de retrouver sur notre exemple le schéma initial implémenter au début du tutorial :

Changer le nom d’une table

Script :
ALTER TABLE permet également de modifier le nom d’une table. En voici la syntaxe :
RENAME AS nouveau_nom_table

Ainsi sur notre exemple nous allons renommer notre table « news » en « nouvelles ».

Script :
ALTER TABLE news
RENAME AS nouvelles;

 

Suppression d’une table
 

La commande DROP TABLE peut-être utilisée pour supprimer une ou plusieurs tables.

Script :
DROP TABLE [IF EXISTS] nom_table1 [, nom_table2, ..., nom_tableN]

Le mot clef IF EXISTS permet d’éviter à MySQL de générer une erreur en tentant de supprimer une table inexistante.
Pour supprimer la table nouvelles, nous exécutons donc la commande suivante :

Script :
DROP TABLE IF EXISTS nouvelles;

 

Conclusion
 

Vous êtes à présent prêt à créer des tables avec MySQl. Le prochain tutorial portera sur l’insertion, la modification et la suppression de données dans vos tables. Puis, nous étudierons l’interfaçage de vos bases de données avec Php afin de commencer à développer des applications dynamiques pour votre site.

 

- Un problème? Posez vos questions sur le forum Php/MySQL!
- Ce tutorial a été consulté 25528 fois


Script Masters © Ce texte est la propriété de son auteur.
Toute reproduction est interdite.

 




 
Votre nom de domaine est-il libre?
 
Fabien Daniel - fd-web.net © 2001-2008 | Hebergement : OVH | CNIL : 796128