当前位置: 首页 > article >正文

sql使用小技巧之约束(Constraints、NOT NULL、UNIQUE、PRIMARY KEY)简单了解下

SQL 约束(Constraints)主要用于用于规定表中的数据规则,如果存在违反约束的数据行为,行为会被约束终止。约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

来看下建表的语法:

CREATE TABLE table_name
(column_name1 data_type(size) constraint_name,column_name2 data_type(size) constraint_name,column_name3 data_type(size) constraint_name,....
);

在 SQL 中,我们有如下约束:

  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。
  • DEFAULT - 规定没有给列赋值时的默认值。

在默认的情况下,表的列接受 NULL 值。但是,NOT NULL 约束强制列不接受 NULL 值 ,并且强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

其次,UNIQUE 约束唯一标识数据库表中的每条记录。它和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证,并且PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束,但是我们要注意的是,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

我们如果需要命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,可以参考下面的 SQL 语法:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)

当表已存在时,如果需要定义或者说创建单个 UNIQUE 约束的话,可以参考如下语法:

ALTER TABLE tableName ADD UNIQUE (columnName)

如果需要命名 UNIQUE 约束并且定义多个列的 UNIQUE 约束的话,可以参考如下语法:

ALTER TABLE tableName ADD CONSTRAINT uniqueName UNIQUE (column,column...)

撤销 UNIQUE 约束的话,参考如下:

ALTER TABLE tableName DROP INDEX uniqueName

PRIMARY KEY 约束唯一标识数据库表中的每条记录,同时主键必须包含唯一的值,还有就是主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。

我们如果需要命名 PRIMARY KEY 约束,并定义多个列的 PRIMARY KEY 约束,语法参考如下:

CREATE TABLE Persons
(P_Id int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)

在上面的实例中,只有一个主键 PRIMARY KEY(pk_PersonID),但是,pk_PersonID 的值是由两个列(P_Id 和 LastName)组成的。之前说的unique里面定义多个列的也是同理。

之后咱们来看下表已经建成之后如何添加和撤销这个主键约束:

单个列添加:
ALTER TABLE tableName ADD PRIMARY KEY (columnName)定义多个列的 PRIMARY KEY 约束:
ALTER TABLE tableName ADD CONSTRAINT primaryName PRIMARY KEY (columnName,columnName)撤销 PRIMARY KEY 约束:
ALTER TABLE tableName DROP PRIMARY KEY

好啦,本次记录就到这里了。

如果感觉不错的话,请多多点赞支持哦。。。

http://www.lryc.cn/news/2413221.html

相关文章:

  • CSS 高度(css height)
  • 二分法(c语言)
  • 免费PHP空间整理
  • Microsoft .NET Framework v4.7.1 离线安装包应用程序
  • html caption属性,html元素caption标签的使用方法及作用
  • 汤姆·克鲁斯 - 电影全集
  • 帧中继技术介绍-ielab
  • 塞尔达传说gba_《塞尔达传说缩小帽》是系列一年级生?,回忆众多玩友的启蒙之作...
  • IT技术的发展是创造新世纪还是毁灭这个世界?
  • 使用Eclipse开发J2EE项目详解
  • 史上最全的CentOS常用软件安装和启动步骤【包含Docker安装】_centos7
  • 电脑系统进程大解剖
  • 数字信号处理的学习资源
  • 怎么搭建自己的网站?详细教程
  • ARCGIS9.3安装
  • rk修改launcher_RK launcher V 0.41 官方版
  • Flex与java通信
  • 国内IT公司速查手册
  • php开发his软件,HIS系统(his管理系统)V3.0.1 官网版
  • tftpd32服务器软件在Windows与linux 下的文件传输
  • 【源码】二分法及MATLAB实现
  • 数学速算法64种口诀_【收藏】加减乘除速算法,为孩子打开一个神奇有趣的数学世界!...
  • 详解Wavedev2模式的音频驱动
  • 常见的十五种Java开发工具
  • unity3d_webplayer_缓存文件结构
  • 红帽linux7.2安装教程,RHEL 6.2安装(超级详细图解教程) | 系统运维
  • 网吧服务器点歌系统,网吧点歌系统_网吧语音大师_蓝宝石语音_网吧点歌系统_蓝宝石呼叫网管_hylbs.com...
  • Code Craft(编程匠艺)之代码的生命(一)
  • 【推荐】10个网站分类目录提交地址
  • 51单片机学习——非标协议外设——LCD1602液晶显示屏