SQL约束详解:主键、唯一、外键等
1星 需积分: 5 183 浏览量
更新于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 上传
2020-09-09 上传
点击了解资源详情
2024-10-14 上传
2010-04-26 上传
2020-12-14 上传
2011-07-20 上传
Dhui69
- 粉丝: 0
- 资源: 10
最新资源
- rest-auth-proxy:基于Java的restful ldap-authentication微服务
- tkoopython:适用于Pythontkinter的面向对象的GUI演示的集合
- tApp:使用现代网络技术(HTML,CSS,JavaScript)构建tApp(TogaTech应用)的框架
- aabbtree-2.8.0-py2.py3-none-any.whl.zip
- acbm-predictor-senstivity-analysis:基于动物细胞的肉类(ACBM)成本预测模型的敏感性分析
- CI
- vetmanager-url-getter:通过诊所域名获取完整网址的简单包
- 西门子PLC写的超声波清洗机程序.rar
- Centric-Project:第12团队中心项目
- Python库 | django-mdeditor-widget-1.0.0.tar.gz
- Notes:使用美观的UI做笔记
- nutrition-calculator
- 行业分类-设备装置-一种造纸废水循环利用方法.zip
- tridium-eliwell-plc-webpage:Eliwell PLC的自定义网页
- gimli.units-feedstock:用于gimli.units的conda-smithy存储库
- btw-47.github.io