日期:2025/04/03 16:03来源:未知 人气:56
约束
约束,就是“限制”,就是“条件”
——是对数据的限制,是对数据设定的需要满足的条件!
也可以说,约束,就是对数据设定的规则。
有如下几种约束:
唯一约束:
unique key(字段名...)
主键约束:
primary key(字段名...)
外键约束:
foreign key(字段名 ... ) references 其他表(对应字段名 .... )
非空约束:
就是属性设定时的“not null”
默认约束:
就是属性设定时的“default 默认值”设置;
检查约束:
就是使用一个判断表达式来对某字段的值进行“检查”,比如:
check( age >= 0 and age <=60) #保险公司对用户的年龄的要求!!!
不过:
该语法,在mysql中,目前并不生效——但认可该语法,而不报错。
实际上:
所谓约束,就是前面在设定那几个主键索引的时候,也就同时具备了“约束能力”。
即:该代码,既是创建索引,也是创建(设定)约束!
示意性举例:
create table 表名(
id int auto_increment ,
f1 varchar(10) not null, #这就是非空约束
f2 tinyint default 18, #这就是默认约束
f3 datetime,
f4 int,
primary key (id), #主键约束,也是主键索引,自然,id还是“主键”
unique key(f1), #唯一约束,也是唯一索引
foreign key(f4) references 表名2(id2), #外键约束,也是外键索引,
check ( f2 >= 18 and f2 <= 60) #检查约束
);
表选项设定
create table 表名( ...... ) 选项1,选项2,选项3,.....;
是指,对一个表的总体进行的设置,有如下几项:
表引擎:
engine = 引擎名
常用的引擎名只有这几个:InnoDB(这是默认的),MyIsam, BDB, Memory, Archive
引擎,就是将“海量数据”,存储到硬盘的内部机制——有不同的存储方式,会有不同的存储性能和相应的可用的数据功能。
我们只是根据自己应有的需要,选用合适的某个存储引擎。
自增长初值:
auto_increment = 初值
字符集(编码):
charset = 字符编码名
排序规则:
collate = 排序规则名
表说明:
comment = ‘说明文字’
实际上,字符集,都是“下级继承上级”的机制,大体是:
字段没有设定字符集,就用表的字符集;
表没有设定字符集,就用库的字符集;
库没有设定字符集,就用系统的字符集;——系统字符集是在安装的时候设定的
存储引擎有:
上一篇:MySQL的驱动表与被驱动表