Vous êtes ici Tutoriel > Create , Alter et Drop

 
 

MySQL - Create , Alter et Drop

Tutoriel écrit par KOogar et Phreakman
Ecrit le 20 Sep 2005 - Dernière modification le 13 Jan 2007

Création d'une table, modification et suppression des champs .

Toute ces commandes peuvent s'executer en ligne !! Je vous ai mis un exemple avec la commande CREATE pour vous montrez une des nombreuses possibilité du couple PHP-MySQL


Sommaire :



MySQL - Create , Alter et Drop

 
Mysql - Création d'une table: CREATE TABLE

Pour créer une table, utiliser la commande CREATE

Synthaxe de la requête


CREATE table nomdetable(
nomattribut1 type[not null][AUTO_INCREMENT]
nomattribut2 type[not null]
.
.
nomattributN type[not null]
.
primary key (nomattribut1,...,nomattributN)
;

Exemple

2 exemples ci-dessous, le premier se fait à partir de votre admin (phpMyAdmin par ex)et le second se fait à partir d'un fichier PHP directement hosté sur le serveur.

.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
.25
.26
.27
.28
.29
.30
.31
.32
.33
.34
.35
.36
.37
.38
    <?php

// 1° Exemple
// Création d'un table

CREATE TABLE membres (
 
id tinyint(4) unsigned NOT NULL auto_increment,
 
email varchar(80) NOT NULL,
 
motdepasse varchar(32),
 
PRIMARY KEY (id)
);

// 2° Exemple
// Pour créer une table à partir d'un fichier

$link = mysql_connect('localhost', 'root', 'mdp');
if (!
$link) {
  die(
'Impossible de se connecter : ' . mysql_error());
}

// Rendre la base de données foo, la base courante
$db_selected = mysql_select_db('nombase', $link);
if (!
$db_selected) {
  die (
'Impossible de sélectionner la base de données : ' . mysql_error());
}

 
$sql = "CREATE TABLE if not exists VOTRETABLE (
    id tinyint(4) unsigned NOT NULL auto_increment,
    email varchar(80) NOT NULL,
    motdepasse varchar(32),
    PRIMARY KEY (id)
    )"
;

mysql_query($sql,$link);
mysql_close();

?>

Mysql - Les différents types de données.

- smallint: entiers 16 bits
- int: entiers 32 bits
- decimal(n,m): m chiffres dont n après le point decimal
- float
- char(n): chaîne de caractères de longueur fixe égale à n
- varchar(n): chaîne de caractères d'au plus n caractères (n<=256)
- longvarchar(n): idem avec (n<=32768)

[NOT NULL] implique que le champ ne peut pas être nul.
[AUTO_INCREMENT] l'entier sera augmenté de 1 à chaque nouvelle insertion.

Utilisation de la clause default pour mettre une valeur par défaut dans un champ

exemple : pays varchar(20) default "France"
si l'utilisateur ne précise pas de valeur pour pays alors le champ recevra la valeur France.

La clef de la table

primary key (nomattribut1,...,nomattributN)
nomattribut1,...,nomattributN designe le nom des attributs consituant la clef.

La clef secondaire

foreign key (nomattribut1,...,nomattributN) références (nomdetable);
nomattribut1,...,nomattributN designe le nom des attributs consituant la clef étrangère. Le mot clé reference permet d'indiquer le nom de la table qui contient ces attributs.
Si la table comporte plusieurs clefs étrangères, il faut reéditer l'étape précèdente.

fleche php source Quelques notions supplementaires concernant les clefs secondaires afin de conserver une cohérence dans la base de données, on peut rajouter des conditions lorsque l'on declare une clef étrangère.
exemples:
on delete cascade
on delete set null
on update cascade

fleche php source Ces options permettent de conserver une cohérence car lorsque l'on supprime une clef referencée (ou lorsque l'on modifie cette clef) on propage les répercutions grâce à ces options.
déclaration de table1: foreign key (nom1) références table2 on delete set null : si l'on supprime une ligne de la table1, alors les lignes qu'elle référence dans table2 seront mise à nul
declaration de table1: foreign key (nom1) références table2 on update cascade : si l'on modifie la clef d'une ligne de table1 alors les modifications seront repercutées sur table2.

Exemple :
.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
    <?php
  create table Client
(
 
id tinyint(3) unsigned not null AUTO_INCREMENT,
 
nom varchar(10) not null default '',
 
prenom varchar(10) not null default '',
 
adresse varchar(50) not null default '',
 
primary key (id)
  );
 
?>

Mysql - Modification d'une table avec : ALTER

ALTER TABLE NomTable RENAME AS NouveauNom


La condition peut-être de plusieurs formes. Voici quelque exemples


add( attribut type [null/notnull]) : permet d'ajouter un champ de nom "attribut" de type "type"
ou
DROP attribut1,attribut2...,attributN : permet de supprimer un ou des attributs
ou
MODIFY (attribut nouveau_type [null/not null]) : permet de modifier le type d'un attibut

Mysql - Suppression d'une table : DROP


Pour supprimer une table on utilise l'instruction DROP

DROP table nomdetable [restrict/cascade];

Les clauses optionnelles


restrict : (clause par default, elle vérifie que la destruction de la table n'intervient pas dans la cohérence de la table.
cascade : détruit la table concernée et toutes ses dépendances.


Rappel


Attribut


Correspond au titre de la colonne dans une table.

Notion de clef


la clef est l'attribut (ou groupe d'attributs) qui est le plus petit possible, et qui désigne et définie, de manière unique, un élement de la relation.
Les clefs sont par convention souligné.

Notion de clef étrangère


Correspond à un ensemble d'attributs d'une relation qui designe la clef primaire d'une autre relation.
Les clefs étrangères ont par convention un '#' devant leur nom.

Une instruction SQL se termine toujours par un point virgule.




© Copyright: Les tutoriels sont exclusifs et sont la propriétés des auteurs.
    Reproduction interdite.