SQL约束详解:主键、唯一、外键等
1星 需积分: 5 15 浏览量
更新于2024-07-31
收藏 75KB DOC 举报
"这篇文档主要介绍了SQL中的六种约束语句,包括创建约束、检查约束、主键约束、惟一性约束、外部键约束和默认约束以及空值约束,这些都是确保数据库完整性和数据准确性的关键机制。"
在SQL中,约束是一种规则,用于限制表中的数据类型和值,以维护数据的准确性和一致性。以下是每种约束类型的详细说明:
1. 创建约束:这是定义所有类型约束的基础,可以为特定列或整个表设置约束。约束名是可选的,如果未指定,系统会自动生成。
2. 检查约束 (CHECK constraint):允许设置条件,确保插入或更新的数据满足指定的逻辑表达式。例如,你可以设定一个年龄列的最小值和最大值,确保输入的年龄在合理的范围内。
示例:
```sql
CREATE TABLE 我的会员
(
会员编号 smallint NOT NULL CONSTRAINT MemberNoChk CHECK (会员编号 > 0)
)
```
3. 主键约束 (PRIMARY KEY constraint):主键是表中的一个或一组列,其值必须是唯一的,并且不允许为空。主键用于标识表中的每一行,并且可以用于与其他表建立关联。
示例:
```sql
CREATE TABLE Customers
(
CustomerID int PRIMARY KEY,
Name varchar(50)
)
```
4. 惟一性约束 (UNIQUE constraint):与主键类似,惟一性约束确保列中的每个值都是唯一的,但不强制非空。这可以用于那些不需要作为主键但仍然需要唯一性的列。
示例:
```sql
ALTER TABLE Customers
ADD UNIQUE (Email)
```
5. 外部键约束 (FOREIGN KEY constraint):外部键约束用于关联两个表,确保引用的值存在于被引用表的主键或唯一键中。这有助于维护数据的一致性,防止出现“孤儿”记录。
示例:
```sql
CREATE TABLE Orders
(
OrderID int PRIMARY KEY,
CustomerID int,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
)
```
6. 默认约束 (DEFAULT constraint):允许为列设置默认值,当插入新记录时,如果未提供该列的值,系统将自动使用默认值。
示例:
```sql
CREATE TABLE Employees
(
EmployeeID int PRIMARY KEY,
HireDate datetime DEFAULT GETDATE()
)
```
7. 空值约束 (NULL | NOT NULL constraint):定义列是否允许包含NULL值。NOT NULL约束要求列中的每个值都必须存在,不允许为空。
示例:
```sql
CREATE TABLE Products
(
ProductID int PRIMARY KEY,
ProductName varchar(50) NOT NULL
)
```
这些约束在SQL中扮演着至关重要的角色,它们确保了数据的准确性和完整性,防止了无效或不合法的数据输入,从而维护了数据库的健康状态。在设计数据库时,正确地应用这些约束是确保数据质量的关键步骤。
2018-03-31 上传
2024-10-14 上传
2023-03-28 上传
2023-07-08 上传
2024-10-19 上传
2024-09-20 上传
2023-10-07 上传
Dhui69
- 粉丝: 0
- 资源: 10
最新资源
- 明日知道社区问答系统设计与实现-SSM框架java源码分享
- Unity3D粒子特效包:闪电效果体验报告
- Windows64位Python3.7安装Twisted库指南
- HTMLJS应用程序:多词典阿拉伯语词根检索
- 光纤通信课后习题答案解析及文件资源
- swdogen: 自动扫描源码生成 Swagger 文档的工具
- GD32F10系列芯片Keil IDE下载算法配置指南
- C++实现Emscripten版本的3D俄罗斯方块游戏
- 期末复习必备:全面数据结构课件资料
- WordPress媒体占位符插件:优化开发中的图像占位体验
- 完整扑克牌资源集-55张图片压缩包下载
- 开发轻量级时事通讯活动管理RESTful应用程序
- 长城特固618对讲机写频软件使用指南
- Memry粤语学习工具:开源应用助力记忆提升
- JMC 8.0.0版本发布,支持JDK 1.8及64位系统
- Python看图猜成语游戏源码发布