数据库回顾(六) 数据库约束概述(中篇)

84 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情

大家好! 我是慕歌,一只想教你学习 后端技术的野生coder! 欢迎来到慕歌的数据库系列教程,希望通过这个教程带大家深入学习数据库技术,该教程所有知识点均来源于本人的日常学习与开发中,如有疑问请与我联系!

前言

在上一节的分享中,慕歌向大家分享关于数据库约束的知识提到了数据库约束的重要性,以及约束的分类。约束是基于现实意义而诞生的,很多情况下与数据相辅相成,数据在诞生的时候,就已经具备了某种约束。或是完整性约束,或是数据域约束,或是引用关系约束,这些约束都是在规范数据的范式执行。根据约束的不同功能,我们在开发中引入必要的约束。
这一节中,将向大家详细介绍部分约束的使用,以及规则,更加清晰的了解每个约束的价值,在表中的作用以及其不可忽视的功能。

数据约束

非空约束

**作用:**限定该列的数据不能为空值,进行字段约束

#关键字:NOT NULL
#语法
CREATE TABLE tab_name(
	col_name1 type NOT NULL,
	col_name2 type NOT NULL
);

#示例:
#建立学生表,要求学生姓名,学号不为空
CREATE TABLE student(
	sid int,
    sname varchar(20) not null,
    tel char(11) ,
    cardid char(18) not null
);

#追加约束
ALTER TABLE tab_name modify col_name type NOT NULL;

#清除约束
ALTER TABLE tab_name modify col_name type;

**特点: **

  • 所有的数据类型,都存在null 值
  • 非空约束只能约束某一列数据
  • 非空约束不能作用作用组合列
  • 一个表可同时存在多个非空约束

唯一约束

**作用:**限定某一列或者某一字段数据不能重复

#关键字:UNIQUE
#语法
CREATE TABLE tab_name(
	col_name1 type UNIQUE,
	col_name2 type UNIQUE KEY
);

#示例:
#建立学生表,要求学生手机号,学号不重复
CREATE TABLE student(
	sid int,
    sname varchar(20) not null,
    tel char(11) unique,
    cardid char(18) unique key
);

#追加单列约束
ALTER TABLE tab_name modify col_name type UNIQUE;

#追加单列约束
ALTER TABLE tab_name ADD unique key(col_name);

#组合唯一约束
ALTER TABLE tab_name ADD unique key(col_name1,col_name2);

#删除唯一约束
ALTER TABLE USER 
DROP INDEX index_name;

特点:

  • 唯一约束允许列为空值
  • 唯一约束可以存在多个'
  • 唯一约束可单行或组合进行约束
  • 唯一约束与唯一索引相关
  • 删除唯一约束需要删除唯一索引

主键约束

**作用: **主键约束用于对主键字段的特殊约束,只作用于主键字段

#关键字:PRIMARY KEY
#语法
CREATE TABLE tab_name(
	col_name1 type PRIMARY KEY
);

#示例:
#以学号作为主键,要求学生姓名不为空,电话号码唯一
CREATE TABLE student(
	sid int,
    sname varchar(20) not null,
    tel char(11) unique,
    cardid char(18) primary key
);

#追加主键约束
ALTER TABLE tab_name ADD PRIMARY KEY(col_name);

#删除主键约束
ALter TABLE tab_name drop primary key;

注意:

  • 主键约束只能存在一个
  • 主键约束同时具有非空和唯一的特性
  • 主键约束可以组合也可以单列
  • 主键约束默认建立主键索引
  • 主键约束是保证数据完整性最重要的手段

结语

这一章的分享到这里就结束了,下一节将带来数据库约束的剩余内容的分享学习!
如果您觉得本文不错,欢迎点赞支持,您的关注是我坚持的动力!