SQL六大约束:


昨天看到这个题,那么什么是SQL约束???我来给大家详细介绍一下SQL六大约束,希望对大家有所帮助!

SQL 约束:

约束
是数据库中保证数据完整性 的方法。
约束用于限制加入表的数据的类型。

可以在创建表时规定约束(通过 CREATE TABLE 语句),
或者在表创建之后也可以(通过 ALTER TABLE 语句)。

什么是数据完整性?

1.实体完整性
例如:每个表中有一个必须要指定的字段
2.区域完整性
针对表中的某个字段进行特殊化限制
3.参照完整性
表与表之间的一种特殊化关联限制

SQl约束主要有以下6种:


> 1.NOT NULL——非空约束
> 2.UNIQUE——唯一约束
> 3.PRIMARY KEY——主键约束
> 4.FOREIGN KEY——外键约束
> 5.CHECK——检查约束
> 6.DEFAULT——默认约束

1.NOT NULL 约束

NOT NULL 约束强制列不接受 NULL 值。
NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

下面的 SQL 语句强制 “Id_P” 列和 “LastName” 列不接受 NULL 值:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

2.UNIQUE 约束:

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

下面的 SQL 在 “Persons” 表创建时在 “Id_P” 列创建 UNIQUE 约束:

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

当表已被创建时,如需在 “Id_P” 列创建 UNIQUE 约束,请使用下列 SQL:

ALTER TABLE Persons
ADD UNIQUE (Id_P)

撤销 UNIQUE 约束

如需撤销 UNIQUE 约束,请使用下面的 SQL:

ALTER TABLE Persons
DROP INDEX uc_PersonID

3.PRIMARY KEY 约束:

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

下面的 SQL 在 “Persons” 表创建时在 “Id_P” 列创建 PRIMARY KEY 约束:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)

撤销 PRIMARY KEY 约束

如需撤销 PRIMARY KEY 约束,请使用下面的 SQL:

ALTER TABLE Persons
DROP PRIMARY KEY

4.FOREIGN KEY 约束:

一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
让我们通过一个例子来解释外键。请看下面两个表:

“Orders” 中的 “Id_P” 列指向 “Persons” 表中的 “Id_P” 列。

“Persons” 表中的 “Id_P” 列是 “Persons” 表中的 PRIMARY KEY。

“Orders” 表中的 “Id_P” 列是 “Orders” 表中的 FOREIGN KEY。

FOREIGN KEY 约束用于预防破坏表之间连接的动作。

FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

下面的 SQL 在 “Orders” 表创建时为 “Id_P” 列创建 FOREIGN KEY:


CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)

5.SQL CHECK 约束:

CHECK 约束用于限制列中的值的范围。
如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。

下面的 SQL 在 “Persons” 表创建时为 “Id_P” 列创建 CHECK 约束。CHECK 约束规定 “Id_P” 列必须只包含大于 0 的整数。

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
)

如果在表已存在的情况下为 “Id_P” 列创建 CHECK 约束,请使用下面的 SQL:

ALTER TABLE Persons
ADD CHECK (Id_P>0)

如需撤销 CHECK 约束,请使用下面的 SQL:

ALTER TABLE Persons
DROP CHECK chk_Person

6.DEFAULT 约束:

DEFAULT 约束用于向列中插入默认值。

如果没有规定其他的值,那么会将默认值添加到所有的新记录。

下面的 SQL 在 “Persons” 表创建时为 “City” 列创建 DEFAULT 约束:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)

如果在表已存在的情况下为 “City” 列创建 DEFAULT 约束,请使用下面的 SQL:

ALTER TABLE Persons
ALTER City SET DEFAULT 'SANDNES'

如需撤销 DEFAULT 约束,请使用下面的 SQL:

ALTER TABLE Persons
ALTER City DROP DEFAULT

SQL六大约束!!一点就通相关推荐

  1. mysql种default约束的语句_sql语句大全之SQL DEFAULT 约束

    SQL DEFAULT约束 DEFAULT 约束用于向列中插入默认值. 如果没有规定其他的值,那么会将默认值添加到所有的新纪录. SQL DEFAULT Constraint on CREATE TA ...

  2. 数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)

    1. 数据库有六大约束 主键(primary key) 外键(foreign key):被参照的键必须有唯一约束或是主键 非空(not null) 默认(default) 检查(check):orac ...

  3. sql唯一约束怎么设置_20200923 SQL UNIQUE 约束

    SQL UNIQUE 约束 UNIQUE 约束唯一标识数据库表中的每条记录. UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证. PRIMARY KEY 拥有自动定义的 ...

  4. java jmx 配置_Java JMX远程调优一点就通

    原标题:Java JMX远程调优一点就通 java远程调优可采用两种方式进行连接,jmx与jstatd,此文演示如何配置jmx进行连接调优. 配置指南 配置 功能 值 备注 -Dcom.sun.man ...

  5. 九、MySQL常见约束相关知识总结 学习笔记 + 强化复习(六大约束)

    常见约束: 一.含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性 二.分类:六大约束 1.NOT NULL:非空,用于保证该字段的值不能为空 比如姓名.学号等 2.DEFAULT: ...

  6. MySQL之数据类型、建表和六大约束

    前言:昨天跟大家分享了MySQL的账号管理.建库及四大引擎,今天与大家分享的知识是MySQL之数据类型.建表和六大约束. 一.数据类型介绍 1.作用:MySQL中定义数据字段的类型对你数据库的优化是非 ...

  7. SQL CHECK 约束

    SQL CHECK 约束 CHECK 约束用于限制列中的值得范围. 如果对单个定于的CHECK 约束,那么该列只允许特定的值. 如果对一个表定于CHECK 约束,那么此约束会基于行中其他列的值在特定的 ...

  8. SQL CHECK约束

    SQL CHECK约束 一. 说明 本文主要讲一下SQL的CHECK约束有关的内容. 二. 所用工具 SQL 数据库 三. 内容 1.CHECK 约束说明 用于限制列中的值的范围.如果对单个列定义 C ...

  9. CREATE TABLE 时的 SQL UNIQUE 约束

    CREATE TABLE 时的 SQL UNIQUE 约束 下面的 SQL 在 "Persons" 表创建时在 "P_Id" 列上创建 UNIQUE 约束: M ...

最新文章

  1. Oracle10g安装中遇到的错误及解决办法
  2. 公开课报名 | 基于自定义模板的OCR结果的结构化处理技术
  3. linux吃鸡游戏下载,沙雕糖豆人吃鸡战场
  4. FTP服务器的搭建及简单应用
  5. HTML5拖放(drag and drop)与plupload的懒人上传
  6. (23)逆向分析 MmIsAddressValid 函数(XP系统 10-10-12分页)
  7. 怎么才能钓到产品经理妹子?|PMCAFF
  8. CSS之Multi-columns的跨列
  9. 最近很喜欢Hello World啊,这次来Groovy的Hello World啦
  10. oracle—新建用户
  11. linux下思维导图软件,三款适合linux系统的超好用思维导图软件
  12. The overload Pattern
  13. 国稻种芯百团计划行动 丰收节贸促会·黎志康:惠及亚非18国家
  14. 欢迎使用CSDN-markdown编辑器萨达所大所大所大所
  15. Unity ML-Agents 之 环境的搭建,以及的 demo 测试
  16. linux 原路返回路由,linux – 根据服务将返回流量路由到正确的网关
  17. 「镁客·请讲」小小牛曹翔:Creative AR让孩子们成为21世纪的“神笔马良”
  18. src 漏洞平台 应急响应中心 提交漏洞 简介
  19. PAT 甲级1003 Emergency 题解
  20. 如何在Eclipse 中将隐藏的包给显示出来

热门文章

  1. 时间序列分析(TSA)
  2. 阿里云搭建wordpress生产级CMS网站实践
  3. 说说视频号最近有趣的事
  4. 普元 AppServer在window2019中无法启动server,也没有报错信息
  5. [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(三) —— 数据的持久化——使用MongoDB存储爬取的数据
  6. HTC VIVE 禁用头盔定位与角度旋转
  7. Kafka的命令行操作
  8. 实验任务(五)---综合渗透
  9. H3C设置下次启动的配置文件
  10. 中国宠物用品品牌“Touchdog它它”完成数千万元Pre-A 轮融资...