美文网首页
MySQL基本操作(三)关于约束

MySQL基本操作(三)关于约束

作者: Q_Yuer | 来源:发表于2017-03-15 10:59 被阅读0次

主键约束:

主键 (PRIMARY KEY)是用于约束表中的一行,作为这一行的标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要。行中的主键不能有重复且不能为空。
比如我要创建一个


Paste_Image.png

该表ts_name为主键约束,暂且不管Default。
代码:

CREATE TABLE test(ts_name CHAR(20) PRIMARY KEY,ts_num INT(10));

默认值约束:

默认值约束 (DEFAULT) 规定,当有 DEFAULT 约束的列,插入数据为空时,将使用默认值。

Paste_Image.png

该图中ts_rum的Default为10,我们并没有插入数据,为什么Default的值会是10呢

CREATE TABLE test(ts_name CHAR(20) PRIMARY KEY,ts_num INT(10) DEFAULT(10));

唯一约束:

当 INSERT 语句新插入的数据和已有数据重复的时候,如果有 UNIQUE约束,则 INSERT 失败,比如:

Paste_Image.png

我把test2表的te_id设置为唯一约束,那么

Paste_Image.png

上图插入数据是正确的

Paste_Image.png

上图插入数据会报错,因为Bob的te_id跟Tom的te_id一样了,这就是唯一约束的作用
下面代码是建表是的唯一约束示例:

CREATE TABLE test2(te_name CHAR(20) PRIMARY KEY,te_id INT,UNIQUE(te_id));

外键约束:

外键 (FOREIGN KEY) 既能确保数据完整性,也能表现表之间的关系。
一个表可以有多个外键,每个外键必须 REFERENCES (参考) 另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。
[CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]
示例:

Paste_Image.png

实现外键约束的代码:

CONSTRAINT emp_fk FOREIGN KEY(in_dpt) REFERENCES department(dpt_name)
Paste_Image.png

上图出现错误,因为设置了外键约束但是在department表中dpt_name没有'dpt3'这个数据,我们要先插入这行数据

Paste_Image.png

这样在department表的dpt_name中有数据'dpt3'
那么再打一遍刚才会报错的代码

Paste_Image.png

这样就没有问题了,这就是外键约束的作用。

非空约束:
非空约束 (NOT NULL),听名字就能理解,被非空约束的列,在插入值时必须非空。在MySQL中违反非空约束,不会报错,只会有警告,5.6 版本以上的 MySQL 会报错,禁止插入不符合非空约束的数据。

salary INT(10) NOT NULL,

表示salary不能为空

相关文章

  • MySQL基本操作(三)关于约束

    主键约束: 主键 (PRIMARY KEY)是用于约束表中的一行,作为这一行的标识符,在一张表中通过主键就能准确定...

  • 索引 - MySQL / NoSQL

    文集主页 Ubuntu 安装 MySQL 和 mysqlclientMySQL 基本操作MySQL 约束与索引My...

  • 2 MySQL 基本操作 数据类型 约束条件 修改表结构

    MySQL 基本操作 数据类型 约束条件 修改表结构 MySQL基本操作 SQL指令分类 库管理命令 库类似于系统...

  • MySQL数据库操作

    数据库 MySQL 基本操作 数据库操作 表的操作 数据操作 字符集编码 数据类型(列类型) 列属性(列约束) 建...

  • mysql 学习语句

    MySQL学习笔记 登录和退出MySQL服务器 基本语法 建表约束 主键约束 唯一主键 非空约束 默认约束 外键约...

  • MySql笔记

    Mac安装并运行MySql MySql数据库、数据表的操作 MySql数据类型及常见约束 MySql表操作 MyS...

  • (转)MySQL 中 GROUP BY 基本实现原理

    之前连着写了几篇关于 MySQL 中常用操作的一些基本实现原理,如,MySQL ORDER BY,MySQL Jo...

  • MySQL基础-Linux从入门到精通第十天(非原创)

    文章大纲 一、关于数据库二、MySQL的安装与初始化三、MySQL的基本操作(难点)四、扩展五、学习资料下载六、参...

  • docker 基本命令

    一,关于docker镜像操作的基本命令 二,关于docker容器操作的基本命令 三,关于docker仓库操作的基本命令

  • mysql字段约束操作

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

网友评论

      本文标题:MySQL基本操作(三)关于约束

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