CHAR and VARCHAR are both ASCII character data types and almost same but they are different at the stage of storing and retrieving the data from the database. Following are some important differences between CHAR and VARCHAR in MySQL −
CHAR Data Type | VARCHAR Data Type |
Its full name is CHARACTER | Its full name is VARIABLE CHARACTER |
It stores values in fixed lengths and are padded with space characters to match the specified length | VARCHAR stores values in variable length along with 1-byte or 2-byte length prefix and are not padded with any characters |
It can hold a maximum of 255 characters. | It can hold a maximum of 65,535 characters. |
It uses static memory allocation.mysql>create table emp(name CHAR(20)); Query OK, 0 rows affected (0.25 | It uses dynamic memory allocation.mysql>create table emp1(name VARCHAR(20)); Query OK, 0 rows affected (0.21 |