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

主键约束:

主键 (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不能为空

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、MySQL启动和关闭(安装及配置请参照百度经验,这里不再记录。MySQL默认端口号:3306;默认数据类型格式...
    强壮de西兰花阅读 678评论 0 1
  • 第1章 初涉MySQL 1.1 MySQL文件 (1)MySQL目录结构 (2)MySQL配置向导文件(安装后配置...
    凛0_0阅读 832评论 1 0
  • SQL语言基础 本章,我们将会重点探讨SQL语言基础,学习用SQL进行数据库的基本数据查询操作。另外请注意本章的S...
    厲铆兄阅读 5,360评论 2 46
  • “我以前是个写小说的人。”我对白果说。 她瞪了我一眼就拿着书走了。 “诶,你别走啊,有什么问题我教你啊。”她头也没...
    伊泽说阅读 329评论 0 1
  • file_put_contents() 函数把一个字符串写入文件中。 file_put_contents()在写入...
    Sund4y阅读 883评论 0 0