Citat:
Ursprungligen postat av
KaninenSnuffe
Skillnaden mellan VARCHAR och CHAR är att CHAR upptar max antal bytes i kolumnen. Ex: CHAR(255) tar alltså alltid 255 bytes utrymme per post medan en VARCHAR(255) bara tar upp den mängd bytes som motsvarar antal tecken i kolumnen per post.
Ok, här handlar det om att väga orden..
- Siffran inom parentes anger för CHAR hur många
tecken som får plats i fältet. Oavsett innehåll så blir fältet alltid lika stort. Dvs att lagra 'Hej' i CHAR(200) är inte effektivt(197 teckenplatser outnyttjade) och en bra anledning till att titta på VARCHAR när storleken på fältets innehåll kan väntas variera "stort".
- Siffran inom parentes anger för VARCHAR hur många
tecken som
maximalt får plats i fältet. Dvs att lagra 'Hej' i VARCHAR(200) tar upp 3 tecken+
några få bytes för innehållets längd - databasen måste ju fortfarande på nåt vis veta hur långt datat är. Dvs och som sagts ovan så kan storleken på ett VARCHAR-fält skilja mellan olika rader.
- Siffran inom parentes anger för INT(och SMALLINT, MEDIUMINT osv) hur många siffror som fältets innehåll ska visas med, det har gåtts igenom i tråden. Den påverkar inte hur stora tal fältet kan innehålla. T.ex så tar INT(11), INT(3) och INT(5) alla upp lika stort lagringsutrymme, men kan visas på olika sätt även om de skulle innehålla samma tal(exempel ovan).