一、主键约束
它能够唯一确定一张表中的一条记录,也就是我们通过给某个字段添加约束,就可以使得该字段不重复且不为空。在该例子中,字段为id和name。
对字段id进行添加逐渐约束:
create table user(
id INT primary key,
name VARCHAR
);
insert into user values(1,"张三");
//添加主键之后,就不能添加id为1的元素了
//联合主键,只要其中一个主键元素不同便可以进行添加
//id,name都是主键
create table user2(
id INT,
name VARCHAR(20),
PRIMARY KEY(id, name)
);
二、自增约束
自增约束,通常与主键一起进行搭配使用
create table user3(
id INT PRIMARY key auto_increment,
name VARCHAR(20)
);
如果在创建表的时候忘记创建主键约束,
方法一:为指定字段添加主键约束的方法
alter table user4 add primary key(id);
删除指定字段的主键删除方式
alter table user4 drop primary key(id);
方法二:为指定字段添加主键约束方法
alter table user4 modify id int primary key;
三、外键约束
外键约束涉及到了两个表:父表与子表
1、主表classes中不存在的数据值,在副表中,是不可以使用的
2、主表中的记录被副表引用,是不可以被删除和更新的。
//classes为主表,students为子表;
//在子表的class_id中,使用了主表中的id标号
CREATE TABLE classes(
id INT PRIMARY KEY,
name VARCHAR(20)
);
CREATE TABLE students(
id INT PRIMARY KEY,
name VARCHAR(20),
class_id INT,
FOREIGN KEY(class_id) REFERENCES classes(id)
);
四、唯一约束
为变量添加唯一约束的两种方法,约束修饰字段的值不可以重复。同时也要说明的是,如果是unique(id,name)的话,只需要“组合整体“的内容不相同就可以了,不用各个部分都不相同。
CREATE TABLE user6(
id INT,
name VARCHAR(20),
unique(name)//为name变量添加唯一约束
);
CREATE TABLE user6(
id INT,
name VARCHAR(20) unique//为name变量添加唯一约束
);
alter table user6 drop index name;//删除指定字段的唯一约束
alter table user6 modify name VARCHAR(20) unique;
添加约束的方法:
方法一:建表的时候添加约束
方法二:可以使用alter .... add...
方法三:可以使用alter .... modify...
删除约束的方法:
alter ... drop...
五、非空约束
CREATE TABLE user7(
id INT,
name VARCHAR(20) not null
);
//在有not null修饰的字段中,插入值时必须给相应的字段赋值
六、默认约束
就是当我们插入字段时,如果没有传值,就是使用默认值。
CREATE TABLE user8(
id INT,
name VARCHAR(20),
age INT DEFAULT(10)//为age设置默认属性
);
//设置插入的两种方式
insert into user8 (id, name) values(1,"张三");
insert into user8 values(1,"张三",90);