对表中的数据进行限定,保证数据的正确性有效性和完整性。
1、主键约束 :primary key
2、非空约束 : not null
3、唯一约束 :unique
4、外键约束 : foreign key
1、非空且唯一
2、一张表只能有一个字段为主键
3、主键就是表中的唯一标识
4、创建表时添加主键约束
-- 创建表时设置主键
CREATE TABLE stu(
id INT PRIMARY KEY,-- 编号设置为主键
NAME VARCHAR(10)
);
-- 删除主键
ALTER TABLE stu DROP PRIMARY KEY;
创建完表后添加主键
-- 创建完表后添加主键
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
CREATE TABLE stu(
id INT PRIMARY KEY AUTO_INCREMENT,-- 编号设置为主键
NAME VARCHAR(10)
);
4.2自动添加1
INSERT INTO stu VALUE(NULL,'ccc');
4.3删除和添加自动增长
-- 删除自动增长
ALTER TABLE stu MODIFY id INT;
-- 添加自动增长‘
ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
1、创建表时添加约束
CREATE TABLE stu1(
id INT,
NAME VARCHAR(20) NOT NULL -- name 为非空
);
2、删除非空约束
-- 删除name非空约束
ALTER TABLE stu1 MODIFY NAME VARCHAR(20);
3、创建表后添加非空约束
-- 创建表后添加非空约束
ALTER TABLE stu1 MODIFY NAME VARCHAR(20) NOT NULL;
某一列的值不能重复
唯一约束可以有null值,但只有一条记录为null值
1、在创建表是添加唯一约束
-- 在创建表是添加唯一约束
CREATE TABLE stu(
id INT,
phone_number VARCHAR(11) UNIQUE-- 手机号 唯一值
);
2、删除唯一约束
-- 删除唯一约束
ALTER TABLE stu DROP INDEX phone_number;
-- 创建表之后添加唯一约束
ALTER TABLE stu MODIFY phone_number VARCHAR(11) UNIQUE;
1、创建表时可以添加外键,让表与表产生关系,从而保证数据的正确性。
-- 使用数据库db1
USE db1;
-- 创建部门表(id,dep_name,dep_location)
CREATE TABLE department(
id INT PRIMARY KEY AUTO_INCREMENT,
dep_name VARCHAR(20),
de_location VARCHAR(20)
);
-- 创建员工表(id,name,age,dep_id)
CREATE TABLE employee(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(10),
age INT,
dep_id INT, -- 外键对应主表的主键
-- 创建外键的语法
-- CONSTRAINT 外键名 FOREIGN KEY (外键列名)REFERENCE 外键所在的表(外键所在的表的主键)
CONSTRAINT emp_dept_fk FOREIGN KEY (dep_id) REFERENCES department(id)
);
-- 添加数据
-- 添加两个部门
INSERT INTO department VALUE(NULL,'研发部','广州'),
(NULL,'销售部','深圳');
-- 添加员工
INSERT INTO employee(NAME,age,dep_id)VALUE('张三',20,1);
INSERT INTO employee(NAME,age,dep_id)VALUE('李四',21,1);
INSERT INTO employee(NAME,age,dep_id)VALUE('黄五',20,1);
INSERT INTO employee(NAME,age,dep_id)VALUE('陈六',20,2);
INSERT INTO employee(NAME,age,dep_id)VALUE('吴七',21,2);
INSERT INTO employee(NAME,age,dep_id)VALUE('王八',18,2);
-- 查询数据
SELECT *FROM employee;
SELECT *FROM department;
2、删除外键
-- 删除外键
ALTER TABLE employee DROP FOREIGN KEY emp_dept_fk;
3、创建表之后添加外键
-- 创建表之后添加外键
ALTER TABLE employee ADD CONSTRAINT emp_dept_fk FOREIGN KEY (dep_id) REFERENCES department(id);