SQL Server 约束创建与图解:主键、外键、唯一及默认检查约束

晚来风
晚来风
发布时间:2026-10-13| 3人浏览过
原创

在数据库设计中,约束是保障数据完整性和准确性的关键机制。SQL Server 提供了五种主要约束类型,通过图形化界面(SSMS)可直观地为主键、外键、唯一性、默认值和检查条件进行配置,从而有效规范表中数据的录入与关联关系。

结果与目标

掌握在 SQL Server 中利用图形化工具定义表结构的方法,实现以下目标:

  • 实体完整性:通过主键唯一标识每一行记录。
  • 参照完整性:通过外键确保表与表之间的数据逻辑关联。
  • 域完整性:通过唯一、默认和检查约束,限制列值的输入范围和格式。

准备条件

  1. 已安装 SQL Server 数据库服务及 Management Studio (SSMS)。
  2. 拥有目标数据库表的修改权限(即在设计视图下编辑权限)。
  3. 明确需设置约束的列名及其业务规则(如:“是否允许为空”、“是否需要唯一值”、“取值范围”等)。

真实操作顺序

第1步:配置 Primary Key(主键)约束

目的:指定一个或多个列作为每行的唯一标识符,系统会自动为该列创建唯一索引。

操作步骤:

  1. 入口:在 SSMS 对象资源管理器中右键点击目标表,选择 “设计”(Design)进入表设计器。
  2. 动作:选中作为主键的单列或多列组合(按住 Ctrl 多选)。
  3. 执行:点击工具栏顶部的 “钥匙”图标(Set Primary Key)。
  4. 备用方法:右键点击选中的列,在上下文菜单中点击 “设置主键”。
  5. 完成状态:选中列左侧出现钥匙图标,表示该列已被设为主键。注意:主键列自动视为 NOT NULL。

第2步:配置 Foreign Key(外键)约束

目的:建立从表与主表(通常是主键所在表)的连接,防止无效的引用数据插入。

操作步骤:

  1. 入口:打开作为“从表”的表设计器。
  2. 动作:右键点击设计器空白处或特定区域,选择 “关系”(Relationships)。
  3. 配置:点击 “添加” 按钮,展开 “表和列规范” 选项。
  4. 关联设置:点击省略号按钮 (...) 进入详细信息窗口。在 “主键表”**和“主键列”**中选择被引用的主表及字段;在 “外键表”**和“外键列”**中确认当前表及对应字段。
  5. 完成状态:保存设置并关闭窗口,从表与该列之间建立关联逻辑。

第3步:配置 Unique(唯一)约束

目的:确保某列或非主键组合列中的数据不重复,但允许存在空值(NULL)。

操作步骤:

  1. 入口:在表设计器中,右键点击需要设为唯一的列(或组合),选择 “索引/键…”(Indexes/Keys)。
  2. 动作:点击 “添加”**,在右侧属性面板中将 “类型”**修改为 “唯一键”(Unique Key)。
  3. 列选择:点击 “列”** 下拉框,选择具体的列名,可以是单列或多列组合。
  4. 完成状态:保存表结构。此时若尝试插入重复值,系统将报错拦截。

第4步:配置 Default(默认)约束

目的:当用户向新行插入数据且未指定该列值时,系统自动填入预设值。

操作步骤:

  1. 入口:保持表设计器处于打开状态,聚焦于具体列。
  2. 参数设置:在下方 “列属性”** 窗格中,找到 “默认值或绑定”**(Default Value or Binding)栏目。
  3. 动作:在此处直接输入默认值。例如,性别列填写 '男'。
  4. 完成状态:保存表。后续插入该行但未填此列时,将自动应用该值。

第5步:配置 Check(检查)约束

目的:通过逻辑表达式限制列值的合法范围,常用于年龄、状态码等业务校验。

操作步骤:

  1. 入口:在表设计器顶部功能区点击 “管理CHECK约束”**,或在右键菜单中找到相关项。
  2. 动作:展开约束列表,定位到 “表达式”**(Expression)输入框。
  3. 语法示例:输入逻辑判断公式。例如限制性别只能为“男”或“女”,输入:
    [sex] = '男' OR [sex] = '女'
  4. 完成状态:点击 “关闭”** 后保存表设计。任何试图写入非“男/女”值的操作将被数据库引擎拒绝。

简要总结

以上就是在 SQL Server 中使用图形化界面创建和管理主键、外键、唯一、默认及检查约束的详细内容,更多关于 SQL Server 数据库设计与优化的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。