mysql的数据约束
数据约束是指对用户插入的数据进行规范,
1、默认值
CREATE TABLE student(
id INT,
NAME VARCHAR(20),
address VARCHAR(20) DEFAULT '山东淄博'
)
当用户对使用默认值的字段不插入值的时候,就使用默认值。
注意:
1)对默认值字段插入null是可以的。
2)对默认值字段可以插入非null
2.、非空
CREATE TABLE student(
d INT,
NAME VARCHAR(20),
gender VARCHAR(2) NOT NULL
)
限制字段必须赋值
注意:
1)非空字符必须赋值
2)非空字符不能赋null
3、唯一
CREATE TABLE student(
id INT UNIQUE,
NAME VARCHAR(20)
)
对字段的值不能重复
注意:
1)唯一字段可以插入null
2)唯一字段可以插入多个null
4、主键
CREATE TABLE student(
id INT PRIMARY KEY,
NAME VARCHAR(20)
)
作用: 非空+唯一
注意:
1)通常情况下,每张表都会设置一个主键字段。用于标记表中的每条记录的唯一性。
2)建议不要选择表的包含业务含义的字段作为主键,建议给每张表独立设计一个非业务含义的id字段。
5、自增长
CREATE TABLE student(
id INT(4) ZEROFILL PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)
)
自动增加,只能加在int类型及主键上
-- 不能影响自增长约束
DELETE FROM student;
-- 可以影响自增长约束
TRUNCATE TABLE student;
6、外键
-- 部门表(主表)
CREATE TABLE dept(
id INT PRIMARY KEY,
deptName VARCHAR(20)
)
-- 修改员工表(副表/从表)
CREATE TABLE employee(
id INT PRIMARY KEY,
empName VARCHAR(20),
deptId INT,-- 把部门名称改为部门ID
-- 声明一个外键约束
CONSTRAINT emlyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id)
-- 外键名称 外键 参考表(参考字段)
)
注意:
1)被约束的表称为副表,约束别人的表称为主表,外键设置在副表上的!!!
2)主表的参考字段通用为主键!
3)添加数据: 先添加主表,再添加副表
4)修改数据: 先修改副表,再修改主表
5)删除数据: 先删除副表,再删除主表
-- 不能影响自增长约束
DELETE FROM student;
-- 可以影响自增长约束
TRUNCATE TABLE student;