{"id":331,"date":"2011-08-20T08:25:09","date_gmt":"2011-08-20T08:25:09","guid":{"rendered":"http:\/\/www.extradrm.com\/?p=331"},"modified":"2011-08-20T08:25:09","modified_gmt":"2011-08-20T08:25:09","slug":"mysql-char-et-varchar","status":"publish","type":"post","link":"http:\/\/www.extradrm.com\/?p=331","title":{"rendered":"Mysql : CHAR et VARCHAR"},"content":{"rendered":"<h3>\u00a0Les types <code>CHAR<\/code> et <code>VARCHAR<\/code><\/h3>\n<p>Les types <code>CHAR<\/code> et <code>VARCHAR<\/code> sont similaires, mais diff\u00e8rent dans la mani\u00e8re dont ils sont stock\u00e9s et r\u00e9cup\u00e9r\u00e9s.<\/p>\n<p>La longueur d&#8217;une colonne <code>CHAR<\/code> est fix\u00e9e \u00e0 la longueur que vous avez d\u00e9fini lors de la cr\u00e9ation de la table. La longueur peut \u00eatre n&#8217;importe quelle valeur entre 1 et 255. (Dans la version 3.23 de MySQL, la longueur est comprise entre 0 et 255.) Quand une valeur <code>CHAR<\/code> est enregistr\u00e9e, elle est compl\u00e9t\u00e9 \u00e0 droite avec des espaces jusqu&#8217;\u00e0 atteindre la valeur fix\u00e9e. Quand une valeur de <code>CHAR<\/code> est lue, les espaces en trop sont retir\u00e9s.<\/p>\n<p>Les valeurs contenues dans les colonnes de type <code>VARCHAR<\/code> sont de tailles variables. Vous pouvez d\u00e9clarer une colonne <code>VARCHAR<\/code> pour que sa taille soit comprise entre 1 et 255, exactement comme pour les colonnes <code>CHAR<\/code>. Par contre, contrairement \u00e0 <code>CHAR<\/code>, les valeurs de <code>VARCHAR<\/code> sont stock\u00e9es en utilisant autant de caract\u00e8res que n\u00e9cessaire, plus un octet pour m\u00e9moriser la longueur. Les valeurs ne sont pas compl\u00e9t\u00e9es. Au contraire, les espaces finaux sont supprim\u00e9s avant stockage (ce qui ne fait pas partie des sp\u00e9cifications ANSI SQL).<\/p>\n<p>Si vous assignez une cha\u00eene de caract\u00e8res qui d\u00e9passe la capacit\u00e9 de la colonne <code>CHAR<\/code> ou <code>VARCHAR<\/code>, celle ci est tronqu\u00e9e jusqu&#8217;\u00e0 la taille maximale du champ.<\/p>\n<p>Le tableau suivant illustre les diff\u00e9rences entre les deux types de colonnes en montrant les diff\u00e9rences entre l&#8217;enregistrement dans une colonne <code>CHAR(4)<\/code> ou <code>VARCHAR(4)<\/code>\u00a0:<\/p>\n<div>\n<table border=\"1\">\n<colgroup>\n<col \/>\n<col \/>\n<col \/>\n<col \/>\n<col \/> <\/colgroup>\n<tbody>\n<tr>\n<td><strong>Valeur<\/strong><\/td>\n<td><code>CHAR(4)<\/code><\/td>\n<td><strong>Espace requis<\/strong><\/td>\n<td><code>VARCHAR(4)<\/code><\/td>\n<td><strong>Espace requis<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>''<\/code><\/td>\n<td><code>'\u00a0\u00a0\u00a0\u00a0'<\/code><\/td>\n<td>4 octets<\/td>\n<td><code>''<\/code><\/td>\n<td>1 octet<\/td>\n<\/tr>\n<tr>\n<td><code>'ab'<\/code><\/td>\n<td><code>'ab\u00a0\u00a0'<\/code><\/td>\n<td>4 octets<\/td>\n<td><code>'ab'<\/code><\/td>\n<td>3 octets<\/td>\n<\/tr>\n<tr>\n<td><code>'abcd'<\/code><\/td>\n<td><code>'abcd'<\/code><\/td>\n<td>4 octets<\/td>\n<td><code>'abcd'<\/code><\/td>\n<td>5 octets<\/td>\n<\/tr>\n<tr>\n<td><code>'abcdefgh'<\/code><\/td>\n<td><code>'abcd'<\/code><\/td>\n<td>4 octets<\/td>\n<td><code>'abcd'<\/code><\/td>\n<td>5 octets<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Les valeurs lues dans les colonnes de type <code>CHAR(4)<\/code> et <code>VARCHAR(4)<\/code> seront les m\u00eames dans tous les cas, car les espaces finaux sont retir\u00e9s des valeurs issues de colonnes de type <code>CHAR<\/code> lors de la lecture.<\/p>\n<p>Les valeurs dans les colonnes <code>CHAR<\/code> et <code>VARCHAR<\/code> sont class\u00e9es et compar\u00e9es sans tenir compte de la casse, \u00e0 moins que l&#8217;attribut <code>BINARY<\/code> n&#8217;ai \u00e9t\u00e9 sp\u00e9cifi\u00e9 lors de la cr\u00e9ation de la table. L&#8217;attribut <code>BINARY<\/code> signifie que les valeurs sont class\u00e9es et tri\u00e9es en tenant compte de la casse, suivant l&#8217;ordre des caract\u00e8res ASCII de la machine ou est install\u00e9 le serveur MySQL. <code>BINARY<\/code> n&#8217;affecte pas les m\u00e9thodes de lecture et de stockage des valeurs.<\/p>\n<p>L&#8217;attribut <code>BINARY<\/code> se propage dans une expression\u00a0: il suffit qu&#8217;une seule colonne, utilis\u00e9e dans une expression, ait l&#8217;attribut <code>BINARY<\/code> pour que toute l&#8217;expression ne tienne plus compte de la casse.<\/p>\n<p>MySQL peut changer automatiquement le type d&#8217;une colonne <code>CHAR<\/code> ou <code>VARCHAR<\/code> lors de la cr\u00e9ation de la table.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0Les types CHAR et VARCHAR Les types CHAR et VARCHAR sont similaires, mais diff\u00e8rent dans la mani\u00e8re dont ils sont stock\u00e9s et r\u00e9cup\u00e9r\u00e9s. La longueur d&#8217;une colonne CHAR est fix\u00e9e \u00e0 la longueur que&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":2845,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[35,25],"tags":[],"youtube_video":null,"_links":{"self":[{"href":"http:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/posts\/331"}],"collection":[{"href":"http:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.extradrm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=331"}],"version-history":[{"count":0,"href":"http:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/posts\/331\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/media\/2845"}],"wp:attachment":[{"href":"http:\/\/www.extradrm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.extradrm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=331"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.extradrm.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}