美文网首页
8-字段约束[mysql数据库]

8-字段约束[mysql数据库]

作者: 乱弹琴给 | 来源:发表于2020-03-12 21:44 被阅读0次

数据库的范式

1,构造数据库必须遵循一定的规则,这种规则就是范式.

2,目前关系数据库有6种范式,一般情况下,只满足第三范式即可.

第一范式:原子性

1,第一范式是数据库的基本要求,不满足这一点就不是关系数据库.

2,数据表的每一列都是不可分割的基本数据项,同一列中不能有多个值,也不能存在重复的属性.

image.png

第二范式:唯一性

1,数据表中的每条记录必须是唯一的.为了实现区分,通常要为表加上一个列用来存储唯一标识,这个唯一属性列被称作主键列

image.png

第三范式:关联性 (满足第三范式意味着同时满足了第一和第二范式)

1,每列都与主键有直接关系,不存在传递依赖.

image.png

2,依照第三范式,数据可以拆分保存到不同的数据表,彼此保持关联.

3,第三范式很重要.

image.png

字段约束

image.png

不推荐使用外键约束.

主键约束

1,主键约束要求字段的值再全表必须唯一,而且不能为NULL值

2,建议主键一定要使用数字类型,因为数字的检索速度会非常快.

3,如果主键是数字类型,还可以设置自动增长

CREATE TABLE t_teacher(

id INT PRIMARY KEY AUTO_INCREMENT,

......

);

非空约束

1,非空约束要求字段的值不能为NULL值

2,NULL值是没有值,而不是""空字符串

CREATE TABLE t_teacher(

id INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(200) NOT NULL,

married BOOLEAN NOT NULL DEFAULT FALSE

);

唯一约束

1,唯一约束要求字段值如果不为NULL,那么再全表必须唯一

CREATE TABLE t_teacher(

id INT PRIMARY KEY AUTO_INCREMENT,

......

tel CHAR(11) NOT NULL UNIQUE

);

//强烈建议创建表时给表名前加 t_ 和其他虚拟表区分

外键约束

1,外键约束用来保证关联数据的逻辑关系

image.png

如果删掉部门表中的10部门,员工表中的陈浩就不符合逻辑了.

为了确保数据表中的关联数据的逻辑关系,引入外键约束.

员工表时依赖部门表,所以

外键约束的定义是写在子表上的

CREATE TABLE t_dept(

deptno INT UNSIGNED PRIMARY KEY,

dname VARCHAR(20) NOT NULL UNIQUE,

tel CHAR(4) UNIQUE

);

CREATE TABLE t_emp(

empno INT UNSIGNED PRIMARY KEY,

ename VARCHAR(20) NOT NULL,

sex ENUM("男","女") NOT NULL,

deptno INT UNSIGNED,

hiredate DATE NOT NULL,

FOREIGN KEY (deptno) REFERENCES t_dept(deptno)

);

外键约束的闭环问题

1,如果形成外键闭环,我们将无法删除任何一张表的记录

image.png

相关文章

  • 8-字段约束[mysql数据库]

    数据库的范式 1,构造数据库必须遵循一定的规则,这种规则就是范式. 2,目前关系数据库有6种范式,一般情况下,只满...

  • MySql数据库·字段高级约束

    一、高级约束分为: 主键 (primary key) 表头值不允许重复,且不允许赋NULL值 表中只能有一个主键表...

  • 查询MYSQL表注释以及字段注释

    查询MYSQL数据库所有表名以及表注释 查询MYSQL数据库所有字段名以及字段注释

  • hive日常总结

    spark sql 读取mysql 数据库和写入mysql数据库时, dataframe 字段比表字段多一个 直接...

  • MySQL基础——约束

    上篇文章我们学习了MySQL基础——函数,这篇文章我们学习MySQL基础——约束。 约束 约束是作用于表中字段上的...

  • sql注入原理

    information——schema库(MySQL>=5.0才有) select 字段,字段 from 数据库....

  • mysql字段约束操作

    字段常用约束如下表: 主键(primary key) 能唯一标识记录的字段,可以作为主键。一个表只能有一个主键。主...

  • Mysql 使用教程

    1.MySQL基础知识 E-R模型 三范式 字段类型 约束 逻辑删除-这点很重要,适用于重要数据 2.数据库基本操...

  • 2018-11-01

    关于mysql数据库字段类型,以及javabean字段类型 数据库中类型 int和integer类型相同,没有区别...

  • MySql 中的约束

    MySql 中的约束 作用:给表添加约束值,从而约束用户操作数据库的行为 数据库常见的约束值如下: 默认值约束(d...

网友评论

      本文标题:8-字段约束[mysql数据库]

      本文链接:https://www.haomeiwen.com/subject/khlgjhtx.html