一、基本约束
主键约束:primary key
唯一约束:unique
非空约束:not null
1.基本语法
默认地 AUTO_INCREMENT 的开始值是 1,如果希望修改起始值,请使用下列 SQL 语法
创建表时指定起始值
CREATE TABLE 表名(
列名 int primary key AUTO_INCREMENT
) AUTO_INCREMENT=起始值;
-- 指定起始值为 1000
create table st4 (
id int primary key auto_increment,
name varchar(20)
) auto_increment = 1000;
创建好以后修改起始值
ALTER TABLE 表名 AUTO_INCREMENT=起始值;
疑问:如果一个字段设置了非空与唯一约束,该字段与主键的区别?
1 主键数在一个表中,只能有一个。不能出现多个主键。主键可以单列,也可以是多列。
2 自增长只能用在主键上
二、外键约束
1.在创建表时添加外键
1.语法
create table 表名(
....
外键列
constraint 外键名称 foreign key (外键列名称) references 主表名称(主表主键名称)
);
2.删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
3.创建表之后,添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
4.级联操作
1.级联的概念
在修改和删除主表的主键时,同时更新或删除副表的外键值,称为级联操作
重复性的操作十分烦琐,尤其是在处理多个彼此关联对象情况下,此时我们可以使用级联(Cascade)操作。
级联在关联映射中是个重要的概念,指当主动方对象执行操作时,被关联对象(被动方)是否同步执行同一操作。
2.添加级联操作
1.语法
ALTER TABLE 表名 ADD CONSTRAINT 外键名称
FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称)
ON UPDATE CASCADE --设置级联更新
ON DELETE CASCADE --设置级联删除