Vad är skillnaden mellan detta när man ska välja för att skriva SQL domänbeskrivning? En char är lika stor som den längsta strängen. I en varchar är varje värde lika stort som dess sträng plus ett.VARCHAR vs CHAR
Sv: VARCHAR vs CHAR
Om du exempelvis ska lagra Kalle, Ulrika, Lasse och Helena i en char så kommer varje sträng att ta upp 6 bytes eftersom den längsta är 6 bytes.
Använder du varchar så tar Kalle upp 6 bytes (längden plus ett), Ulrika 7, Lasse 6 och Helena 7.
I en char tar alltså dessa upp 6*4 = 24 bytes, medan en varchar kräver 6+7+6+7 = 26 bytes.
Men om du senare kommer att behöva lägga till en längre sträng, kanske Katarina så kommer varje strängs längd att anpassas efter den i en char, så varje namn tar då upp 8 bytes. I en varchar däremot behåller de gamla strängarna sin längd och bara 9 bytes tillkommer för Katarina.
char = 8*5 = 40 bytes
varchar = 26+9 = 35 bytes
Char är alltså bäst om alla strängar är lika långa (eller det skiljer lite) exempelvis postnummer, telefonnummer. Varchar är bäst när det förekommer variationer i längd, exempelvis namn och adresser.