dimanche 3 avril 2011

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 :


  <?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)
  );
 
?>

Aucun commentaire:

Enregistrer un commentaire