Contrairement à la croyance populaire, écrire :
create table eleve ( id_eleve tinyint(2) unsigned NOT NULL PRIMARY KEY )
ne fera pas en sorte que vous vous retrouviez avec des nombres inférieurs à 99. Ce 2 entre parenthèses n’est utile que lorsque vous utilisez l’option ZEROFILL (littéralement « remplir avec des zéros »). La preuve, insérez donc 255, qui est la limite haute d’un tinyint non signé :
insert into eleve values (255);
Si vous faites :
select * from eleve;
Vous verrez bien 255 s’afficher ! Si par contre vous utilisez l’option ZEROFILL, comme suit :
create table eleve ( id_eleve tinyint(2) unsigned ZEROFILL NOT NULL PRIMARY KEY )
Alors en insérant 1 :
insert into eleve values (1);
Vous verrez, après un nouveau select, que ce chiffre a été complété (sur la gauche, évidemment…) par autant de zéros qu’il faut pour satisfaire votre longueur d’affichage (display length), qui est de 2 !