约束
使用CREATE TABLE语句创建数据表的时候,通过定义一个字段的类型,我们规范了一个字段所能存储的数据类型,但是在有的情况下这种类型的约束是远远不够的。加入一个用户向T_Person表中录入数据,由于疏忽它录入的数据中有一条记录中的FName字段忘记了填入数据,这就造成了一个没有名字的人员的出现,即数据库中的数据遭到了污染。
可以在宿主程序中通过应用逻辑来保证数据的正确性,比如在用户点击【保存】按钮的时候去校验是否录入了“人员名称”,如果没有录入则提示用户“人员名称不能为空!”。这样可以保证绝大多数情况下的数据的正确性,但是在如下几种情况下仍然无法保证数据的正确性:宿主程序中存在Bug,导致不正确的数据被保存到了数据表中;有一定技术条件的用户跳过宿主程序,直接修改数据库破坏数据的正确性。因此需要数据库系统提供指定数据表中数据约束条件的机制,这样校验在数据库系统这一最终层面来完成,保证了数据万无一失的正确性,而且在数据库系统中比在宿主程序中的校验更加高效。
数据库系统中主要提供了如下几种约束:非空约束;唯一约束; CHECK 约束;主键约束;外键约束。本节中将会对这些约束做一一介绍。
https://github.com/godmaybelieve
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理