I know the differnce between CHAR and VARCHAR,
CHAR - Fixed length
VARCHAR - Variable length (size + 1 byte)
But I wanted to know what was the purpse of the having the option for a varchar length e.g. VARCHAR(50)
, VARCHAR(100)
, VARCHAR(255)
This seems pointless to me because the actual space used depends on the value stored in the database.
So my questions are:
1) It is fine to set all my varchar's to 255 2) Why would you want to specify any other lenght?
1) If you dont want to limit the maximum size of a stored varchar, then yes it is fine. That being said...
2) In many cases you want to set an upper limit for the size of a varchar. Lets say you are storing a mailing list, and have a limited amount of space for an address line. By setting an upper limit for your address field, you now allow the database to enforce a maximum address line length for you.