字符型数据主要是指离散的类别型数据,并且这些数据以字符串的形式呈现,如用户的姓名、性别、汽车的型号、产品的名称等。在MySQL数据库中,关于常用的字符型数据可以参考表所示的内容。
1)如果变量的数据类型为ENUM时,表示该变量所对应的每一个观测值最多可以在65,535个不同的值中选择一个(例如每一个用户的性别只能从男或女中挑选一个,类似于单选问题),并且这些数值必须提前通过ENUM类型指定,即(‘男','女')。关于该类型数据需要强调一点,如果枚举值为字符型的1,2,3三种值,即ENUM(‘1','2','3'),则在筛选查询时,必须使用字符型的1,2,3,千万不要丢掉引号,否则查询结果将会有误。
2)如果变量的数据类型为SET时,表示该变量所对应的每一个观测值最多可以在65个不同的值中选择多个(例如每一个用户的兴趣爱好可以从多个不同的值中挑选几个,类似于多选问题),并且这些值需通过SET类型指定,即ENUM('篮球','足球','乒乓球','游泳','骑行')。
3)如果变量的数据类型为CHAR(n)或VARCHAR(n),表示该变量的每一个观测值最多可以存储n个长度的字符;如果实际长度超过指定长度,它们均会将超过的部分截断。所不同的是,如果实际的字符长度小于指定的长度:对于前者CHAR(n)来说,会以空格填满;而对于后者VARCHAR(n)来说,该是多少的长度就是多少的长度,并不会用空格补齐。需要强调的是,对于MySQL 5.0及以后的版本来说,类型中的n代表的是字符长度,而非字节个数,所以每一个中文也是代表一个字符长度。