做毕业设计要用到MySql数据库,并且还要用到自增主键和TEXT数据类型。为了防止忘记,先记录下TEXT数据类型长度:
- TINYTEXT: 256 bytes
- TEXT: 65,535 bytes => ~64kb
- MEDIUMTEXT: 16,777,215 bytes => ~16MB
- BIGTEXT: 4,294,967,295 bytes => ~4GB
我要建的表,主键使用自增数字,有一个数据列要使用TEXT数据类型存放文本,则可写SQL如下:
CREATE TABLE Corpus(id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,data TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,PRIMARY KEY (id))
先解释两个概念:
- 字符集是一套符号和编码。CHARACTER SET X 表示设置字符集为X。
- 校对规则是在字符集内用于比较字符的一套规则。存在校对规则命名约定:它们以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。COLLATE utf8_general_ci 表示utf8_general的不区分大小写的校对规则(貌似是utf8字符集的默认校对规则,使用“show collation like ‘utf8%’;”查看)。
其中表名为Corpus。主键为id,使用MEDIUMINT数据类型,可以表示1-999999间整数(大概值,不准确,便于记忆~);UNSIGNED表示无符号型;AUTO_INCREMENT表示自增。data列使用TEXT数据类型,并且设置该列的字符集为utf8,校对规则为utf8_general且大小写不敏感。