常见六大约束:
- not null 非空
- default :默认值,用于保证该字段的默认值 ; 比如年龄
- primary key : 主键,用于保证该字段的值具有唯一性,并且非空
- unique : 唯一约束,保证该字段的值可以为空,具有唯一性
- foreign key : 外键约束; 用于限制两个表的关系, 用于保证该字段的值必须来自于主表的关联列的值;
在从表中添加外键约束,用于引用主表中的某列的值;
比如: 学生表的专业编号,员工表的部门编号,员工表的工种编号; - check : 检查约束[mysql不支持,不报错,没有实际效果]
一般都在创建表或者修改表时添加约束
- 主键约束 primary key
-
将一个字段设置为主键:
第一种:
create table ta_tmp2(id int(11) primary key,name varchar(22));----单一主键第二种:
create table ta_tmp3(id int(11),name varchar(22),primary key(id));-----称之为联合主键 -
使用主键完成自增长
格式:
字段名 数据类型 primary key auto_increment设置主键后,没一条数据不能有重复数据,不能为空,在自己手动插入数据时,会导致操作的失效,此时可以使用自增长的方式,无需手动控制,insert into 就不用写这个字段,默认自增长
-
外键约束
外键使用在两个表数据之间的建立连接,可以对一个表设置一个或者多个外键特点:
是表中的一个字段,可以不是表的主键, 一个表中的外键可以为空值,如果不为空,每一个外键必须等于另外一张表的主键的某一个值作用:
保证数据在引用时的完整性,不允许删除在另外一张表中具有关联关系的行创建外键的语法规则:
consreaint 外键名 foreign key 字段名1,字段名2…references 主表名 主键列1,主键列名2…外键名---->外键约束的名称,一个表中不能有相同名称的外键
字段名---->表示从表中需要添加外键约束的字段列
主表名-----》被从表外键所依赖的表的名称
主键列----》表示主表中定义的主键列例如:
创建部门表-----设置为主键—》主表
create table ta_dept1(id int(11) primary key,name varchar(22));创建员工表----》设置外键-----》从表
create table ta_emp1(
id int(11) primary key auto_increment,name varchar(22),deptid int(11),consreaint fk_emp_dept1 foreign key(deptid) references ta_dept1(id),) -
非空约束
非空约束----》字段中的值不能为空
格式:
字段名 数据类型 not null
create table second(id int(11) not null,name varchar(22),age int(22)); -
唯一约束
唯一约束的要求----列唯一(允许为空(只能出现一次))作用:
保证一列或者多列的值唯一格式:
字段名 数据类型 uniqueunique和primary key之间的区别:
一个表可以有多个字段设置为唯一约束,但是只有一个字段声明为主键
主键不允许为空,但是unique可以为空 -
默认约束
默认约束—》指定某一列的默认值
语法:
字段名 数据类型 default 默认值
create table pid(id INT(11) primary key auto_increment,name varchar(25),pid int(33) defalut 1111);