易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Server中约束的介绍

摘要
对于SQL Server中的约束,想必大家并不是很陌生。但是约束中真正的内涵是什么,并不是很多人都很清楚的。本文以详细的文字来介绍了什么是约束,以及如何在数据库编程中应用和使用这些约束,来达到更好的编程效果。(本文部分内容参考了SQL Server联机手册)
内容
 
数据完整性分类
 
实体完整性
 
域完整性
 
引用完整性
 
用户定义完整性
 
PRIMARY KEY约束
 
DEFAULT约束
 
CHECK约束
 
UNIQUE约束
 
FOREIGN KEY约束
正文
在数据库管理系统中,保证数据库中的数据完整性是非常重要的。所谓数据完整性,就是指存储在数据库中数据的一致性和正确性。约束定义关于列中允许值的规则,是强制完整性的标准机制。使用约束优先于使用触发器、规则和默认值。查询优化器也使用约束定义生成高性能的查询执行计划。
SQL Server联机丛书中,将数据完整性解释如下:“存储在数据库中的所有数据值均正确的状态。如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。”强制数据完整性可确保数据库中的数据质量。
例如,如果输入了 employee_id 值为 123 的职员,那么该数据库不应允许其他职员使用同一 ID 值。如果计划将 employee_rating 列的值范围设定为从 1 到 5,则数据库不应接受 6。如果表有一 dept_id 列,该列存储职员的部门编号,则数据库应只允许接受公司中的有效部门编号。
数据完整性分类
在SQL Server中,根据数据完整新措施所作用的数据库对象和范围不同,可以将数据完整性分为以下几种。
 
实体完整性
 
域完整性
 
引用完整性
 
用户定义完整性
SQL Server联机丛书中指明:“对表进行计划有两个重要步骤:标识列的有效值和确定如何强制列中的数据完整性。”
实体完整性
实体完整性简单的说,就是将表中的每一行看作一个实体。实体完整性要求表的标示符列或主键的完整性。可以通过建立唯一索引、PRIMARY KEY约束、UNIQUE约束,以及列的IDENTITY属性来实施实体完整性。
域完整性
域完整性是指给定列的输入有效性。要求表中指定列的数据具有正确的数据类型、格式和有效的数据范围。强制域有效性的方法有:限制类型(通过数据类型)、格式(通过 CHECK 约束和规则)或可能值的范围。域完整性通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则来实现。
引用完整性


相关文档:

EXCEL数据导入SQL 的另类用法

做开发过程中,经常会用到将Excel中数据导出到SQL Server中的情况,你可以利用SQL SERVER 中自带的导入数据的方式,但这种方式,有时会发现数据导入后,可能为空,可能开头少个零,此种情况多出现于数值型的列,今天在CSDN上闲逛,偶尔发现了一个帖子,介绍的以下这种方法,本人恰七因最近公司准备上市,审计局在做审计,技 ......

sql语句 截取时间 只显示 年,月,日的格式


摘自http://blog.sina.com.cn/zhm85
SQL语句截取时间,只显示年月日(2004-09-12)
select CONVERT(varchar, getdate(), 120 )
‘getdate()’改为时间字段名‘createtime’
再重命名新加列(Select Name AS UName from Users)
例如 select convert(varchar(11),createtime,120) as Ndate fro ......

SQL SERVER 2005 基本查询(连接查询)

use AdventureWorks
GO
SELECT c.LastName from Person.Contact c;
SELECT * from HumanResources.Employee e
INNER JOIN HumanResources.Employee m
 ON e.ManagerID = m.EmployeeID; n
SELECT ProductID,Name,ProductNumber,ReorderPoint
from Production.Product
where ProductID in( select ProductID fro ......

SQL SERVER 2005 高级查询(子查询查询)

--SQL高级程序设计:子查询
use AdventureWorks
GO
SELECT DISTINCT EmployeeID from HumanResources.JobCandidate WHERE EmployeeID IS NOT NULL;
SELECT e.EmployeeID,FirstName,LastName
from HumanResources.Employee e
INNER JOIN Person.Contact c
 ON e.ContactID = c.ContactID
WHERE e.EmployeeID IN ......

SQL 字符串与16进制互换

在网上看到SQL字符串转16进制的语句,经过小小添加,现将SQL字符串与16进制互换的方法记录,以供以后查看。 
--SQL char->HEX code
DECLARE @str VARCHAR(4000)
SET @str='SELECT * from dbo.TaskHistory' --Your sql char
DECLARE @i INT,@Asi INT,@ModS INT,@res VARCHAR(800),@Len INT,@Cres VARCHAR(4),@te ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号