如果用char类型存储,其长度就是固定的。所占的空间即为创建表时指定的长度,如果数据过长,多余的数据将被丢弃。如果数据不够,剩余的将以空格补全。
如果用vchar类型存储,其长度就是动态变化的,并且其占用的空间为实际长度加1。因为该类型要用1个字节存放数据的长度, 最大长度为255.
另外,建议阅读MySQL的官方文档,因为不同的版本有的地方处理方式不同。
1. 给字段添加注释
-- alter table sc modify column 字段名 int not null comment '只能是1-8';
2.MySQL 所有的存储引擎都不支持 CHECK 约束,MySQL中可以写 CHECK 约束,但会忽略它的作用,因此 CHECK 并不起作用,因此实现对数据约束有两种方法:
在 MySQL 种约束,如使用 ENUM 类型 或者 触发器 。
CREATE TABLE person(
id tinyint(4) NOT NULL AUTO_INCREMENT,
name varchar(16) NOT NULL,
sex enum('男','女') NOT NULL
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
在应用程序里面对数据进行检查再插入。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)