SQL六大约束!!一点就通
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六大约束!!一点就通相关推荐
- mysql种default约束的语句_sql语句大全之SQL DEFAULT 约束
SQL DEFAULT约束 DEFAULT 约束用于向列中插入默认值. 如果没有规定其他的值,那么会将默认值添加到所有的新纪录. SQL DEFAULT Constraint on CREATE TA ...
- 数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)
1. 数据库有六大约束 主键(primary key) 外键(foreign key):被参照的键必须有唯一约束或是主键 非空(not null) 默认(default) 检查(check):orac ...
- sql唯一约束怎么设置_20200923 SQL UNIQUE 约束
SQL UNIQUE 约束 UNIQUE 约束唯一标识数据库表中的每条记录. UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证. PRIMARY KEY 拥有自动定义的 ...
- java jmx 配置_Java JMX远程调优一点就通
原标题:Java JMX远程调优一点就通 java远程调优可采用两种方式进行连接,jmx与jstatd,此文演示如何配置jmx进行连接调优. 配置指南 配置 功能 值 备注 -Dcom.sun.man ...
- 九、MySQL常见约束相关知识总结 学习笔记 + 强化复习(六大约束)
常见约束: 一.含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性 二.分类:六大约束 1.NOT NULL:非空,用于保证该字段的值不能为空 比如姓名.学号等 2.DEFAULT: ...
- MySQL之数据类型、建表和六大约束
前言:昨天跟大家分享了MySQL的账号管理.建库及四大引擎,今天与大家分享的知识是MySQL之数据类型.建表和六大约束. 一.数据类型介绍 1.作用:MySQL中定义数据字段的类型对你数据库的优化是非 ...
- SQL CHECK 约束
SQL CHECK 约束 CHECK 约束用于限制列中的值得范围. 如果对单个定于的CHECK 约束,那么该列只允许特定的值. 如果对一个表定于CHECK 约束,那么此约束会基于行中其他列的值在特定的 ...
- SQL CHECK约束
SQL CHECK约束 一. 说明 本文主要讲一下SQL的CHECK约束有关的内容. 二. 所用工具 SQL 数据库 三. 内容 1.CHECK 约束说明 用于限制列中的值的范围.如果对单个列定义 C ...
- CREATE TABLE 时的 SQL UNIQUE 约束
CREATE TABLE 时的 SQL UNIQUE 约束 下面的 SQL 在 "Persons" 表创建时在 "P_Id" 列上创建 UNIQUE 约束: M ...
最新文章
- Oracle10g安装中遇到的错误及解决办法
- 公开课报名 | 基于自定义模板的OCR结果的结构化处理技术
- linux吃鸡游戏下载,沙雕糖豆人吃鸡战场
- FTP服务器的搭建及简单应用
- HTML5拖放(drag and drop)与plupload的懒人上传
- (23)逆向分析 MmIsAddressValid 函数(XP系统 10-10-12分页)
- 怎么才能钓到产品经理妹子?|PMCAFF
- CSS之Multi-columns的跨列
- 最近很喜欢Hello World啊,这次来Groovy的Hello World啦
- oracle—新建用户
- linux下思维导图软件,三款适合linux系统的超好用思维导图软件
- The overload Pattern
- 国稻种芯百团计划行动 丰收节贸促会·黎志康:惠及亚非18国家
- 欢迎使用CSDN-markdown编辑器萨达所大所大所大所
- Unity ML-Agents 之 环境的搭建,以及的 demo 测试
- linux 原路返回路由,linux – 根据服务将返回流量路由到正确的网关
- 「镁客·请讲」小小牛曹翔:Creative AR让孩子们成为21世纪的“神笔马良”
- src 漏洞平台 应急响应中心 提交漏洞 简介
- PAT 甲级1003 Emergency 题解
- 如何在Eclipse 中将隐藏的包给显示出来
热门文章
- 时间序列分析(TSA)
- 阿里云搭建wordpress生产级CMS网站实践
- 说说视频号最近有趣的事
- 普元 AppServer在window2019中无法启动server,也没有报错信息
- [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(三) —— 数据的持久化——使用MongoDB存储爬取的数据
- HTC VIVE 禁用头盔定位与角度旋转
- Kafka的命令行操作
- 实验任务(五)---综合渗透
- H3C设置下次启动的配置文件
- 中国宠物用品品牌“Touchdog它它”完成数千万元Pre-A 轮融资...