MySQL(五)数据约束
来源:互联网 发布:男鞋推荐学生知乎 编辑:程序博客网 时间:2024/06/07 11:49
1.默认值(default)
作用:当用户对使用默认值的字段,不插入值的时候,就使用默认值。
1)对默认值字段插入 NULL 是可以的
2)对默认值字段可以插入非 NULL
CREATE TABLE student(id INT,NAME VARCHAR(20),address VARCHAR(20) DEFAULT '中国' )INSERT INTO student(id,NAME) VALUES(1,'张三');INSERT INTO student(id,NAME,address) VALUES(2,'李四',NULL);
2.非空(not null)
作用:限制字段必须赋值
1)非空字符必须赋值2)非空字符不能赋 NULL
CREATE TABLE student(id INT,NAME VARCHAR(20),gender VARCHAR(2) NOT NULL)
3.唯一(unique)
作用:对字段的值不能重复
1)唯一字段可以插入null
2)唯一字段可以插入多个null
CREATE TABLE student(id INT UNIQUE,NAME VARCHAR(20))
4.主键(primary key)
作用:非空+唯一
1)通常情况下,每张表都会设置一个主键字段。用于标记表中记录的唯一性。
2)建议不要选择表中包含业务含义的字段作为逐渐,建议给每张表独立设计一个非业务含义的id字段
CREATE TABLE student(id INT PRIMARY KEY,NAME VARCHAR(20))
5.自增长(AUTO_INCREMENT)
作用:自动递增(从1开始)
INT(2) ZEROFILL代表这个整数至少有2位,若不够,则用0填充
CREATE TABLE student(id INT(2) ZEROFILL PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20));
6.外键(foreign key)
作用:约束两种表的数据
出现两种表的情况:
1)解决冗余高问题:独立出一张表
constraint 外键约束名称 foreign key(外键字段) references 引用表(字段)
CREATE TABLE employee(id INT PRIMARY KEY,empName VARCHAR(20),deptId INT,CONSTRAINT emloyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id));CREATE TABLE dept(id INT PRIMARY KEY,deptName VARCHAR(20))注意:
1)被约束的表称为副表(例如:employee),约束别人的表成为主表(例如:dept),外键设置在副表上!!!
2)主表的参考字段通常为 主键 !!!
3)添加数据的顺序:先添加主表,再添加副表数据
4)修改数据的顺序:先修改副表,再修改主表数据
5)删除数据的顺序:先删除副表,再删除主表数据
7.级联操作
当有了外键约束的时候,必须先修改或删除副表中的所有关联数据,才能修改或删除主表!
但是,我们希望直接修改或删除主表数据,从而影响副表数据。可以使用级联操作
级联修改:on update cascade
级联删除:on delete cascade
CREATE TABLE employee(id INT PRIMARY KEY,empName VARCHAR(20),deptId INT,CONSTRAINT emloyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id) ON UPDATE CASCADE ON DELETE CASCADE);CREATE TABLE dept(id INT PRIMARY KEY,deptName VARCHAR(20))
0 0
- MySQL(五)数据约束
- MySQL数据库(五)外键约束
- Mysql数据库操作(五)----约束
- MySQL(五)之DDL(数据定义语言)与六大约束
- MySQL(五)之DDL(数据定义语言)与六大约束
- 五种完整性约束分别是什么——基于MySQL数据库的数据约束实例
- mysql基础---数据约束(七)
- MySQL数据约束
- MySQL--数据约束
- mysql-(二)-数据约束
- mysql之数据约束
- MySQL数据约束
- MYSQL中数据约束
- ios 约束(五)
- mysql数据完整性和约束
- mysql数据完整性和约束
- mysql(加强篇)---数据约束
- mysql学习笔记六(数据定义表约束,分页)
- oracle一步一步学习(一)
- Java反射机制
- 每天一个linux命令:gzip命令
- FBX生成Prefab
- 初探Lambda表达式-Java多核编程【0】从外部迭代到内部迭代
- MySQL(五)数据约束
- 利用opencv将两张图像在同一窗口上显示,并在图片上显示文字
- 栈与队列(五)链队列(链式结构)
- AngularJS学习笔记
- Plugin with id 'com.android.application' not found.
- 如何使用CSDN的MARKDOWN编辑器写博客
- Android的生命周期
- vim不会自动高亮
- Python/Basemap绘制美国人口分布示意图