mysql> CREATE TABLE chartest ( -> charval1 CHAR(10) NOT NULL, -> charval2 CHAR(10) NOT NULL, -> varcharval VARCHAR(30) NOT NULL -> ); Query OK, 0 rows affected (0.03 sec) mysql> INSERT INTO chartest VALUES ('aaa','aaa','aaa'); Query OK, 1 row affected (0.02 sec) mysql> INSERT INTO chartest -> VALUES ('aaaaaa ','aaa','aaa'); -- should truncate to 'aaaaaa ' Query OK, 1 row affected (0.02 sec) mysql> INSERT INTO chartest -> VALUES ('aaaaaaaaaaaa','aaa','aaa'); -- should throw error Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM chartest; -- should show two rows +------------+----------+------------+ | charval1 | charval2 | varcharval | +------------+----------+------------+ | aaa | aaa | aaa | | aaaaaa | aaa | aaa | | aaaaaaaaaa | aaa | aaa | +------------+----------+------------+ 3 rows in set (0.02 sec) mysql> DELETE FROM chartest WHERE charval1='aaaaaa'; Query OK, 1 row affected (0.01 sec) mysql> SELECT * FROM chartest; -- shoud show one row +------------+----------+------------+ | charval1 | charval2 | varcharval | +------------+----------+------------+ | aaa | aaa | aaa | | aaaaaaaaaa | aaa | aaa | +------------+----------+------------+ 2 rows in set (0.00 sec) mysql> SELECT * FROM chartest WHERE charval1=varcharval; +----------+----------+------------+ | charval1 | charval2 | varcharval | +----------+----------+------------+ | aaa | aaa | aaa | +----------+----------+------------+ 1 row in set (0.00 sec) mysql> SELECT CONCAT(charval1,'X') AS res FROM chartest; +-------------+ | res | +-------------+ | aaaX | | aaaaaaaaaaX | +-------------+ 2 rows in set (0.00 sec) mysql> SELECT CHAR_LENGTH(CONCAT(charval1,charval2)) AS res FROM chartest; +-----+ | res | +-----+ | 6 | | 13 | +-----+ 2 rows in set (0.01 sec) mysql> SELECT CHAR_LENGTH(charval1) + CHAR_LENGTH(charval2) -> AS res -> FROM chartest; +-----+ | res | +-----+ | 6 | | 13 | +-----+ 2 rows in set (0.00 sec)