关于SQL Server数据表的五中约束

1、主键约束(PRIMARY KEY)

主键约束可以在表中定义一个主键值,它可以唯一确定表中每一条记录,每个表中只能有一个主键约束(只能有一个主键约束的意思并不是说受主键约束的列只能有一个),并且受主键约束的列不能为空值。如果主键约束定义在不止一列上,则某一列中的值可以存在重复,但是受主键约束的所有列的组合值必须唯一。

2、唯一性约束(UNIQE)

唯一性约束确保在非主键列中不输入重复的值。用于指定一个或多个列的组合具有唯一性,以防止在列中输入重复的值。可以在一个表中定义多个唯一性约束,但是只能定义一个主键约束。唯一性约束允许空值,但是当和参与唯一性约束的任何值一起使用时,每列只允许一个空值。

3、检查约束

检查约束对于输入列或者整个表中的值设置检查条件,可以限制输入值,以保证数据库之间的完整性。检查约束通过数据的逻辑表达式来确定有效值。例如:定义一个age年龄字段,可以通过创建CHECK约束条件,将age字段里面的值的范围限定在0到150之间(age >=0 AND age<=150)。

  • 每个字段只能设置一个检查约束。
  • 检查约束中不能包含子查询。
  • 一个列级检查约束只能与限制的字段有关,一个表级检查约束只能与限制的表中的字段有关。

4、默认约束

默认约束指定在插入操作中如果没有提供输入值时,系统会自动制定插入值,即使该值是NULL。当必须向表中加载一行数据但是不知道某一列的值,或者是该值尚不存在时,此时可以使用默认值约束。

5、外键约束

外键约束用于强制参照完整性,提供单个字段或者多个字段的参照完整性。

时间: 2024-11-03 21:31:57

关于SQL Server数据表的五中约束的相关文章

关于SQL Server数据表的五种约束

1.主键约束(PRIMARY KEY) 主键约束可以在表中定义一个主键值,它可以唯一确定表中每一条记录,每个表中只能有一个主键约束(只能有一个主键约束的意思并不是说受主键约束的列只能有一个),并且受主键约束的列不能为空值.如果主键约束定义在不止一列上,则某一列中的值可以存在重复,但是受主键约束的所有列的组合值必须唯一. 2.唯一性约束(UNIQE) 唯一性约束确保在非主键列中不输入重复的值.用于指定一个或多个列的组合具有唯一性,以防止在列中输入重复的值.可以在一个表中定义多个唯一性约束,但是只能

SQL Server 数据表复制

一.复制 A 的内容到新表 说明: 有数据表 A, 希望将他的内容导出到另一张表 B,此时 B 并未创建,希望在导出的同时创建表 B. SELECT * INTO B [IN externaldatabase]  FROM A 二.复制 A 的内容到已有表 B 说明: 有数据表 A, 希望将他的内容导出到另一张表 B,此时 B 已创建,希望在导出的同时创建表 B. insert into B (B_column_1, B_column_2, ...) select A_column_1, A_c

批量删除Sql Server数据表

最近做数据转移,由于误操作,在系统表master表里创建了N多表   实在是没法删 找到以下方法共享一下 --指定要删除的数据库中的表 use master go declare @sql varchar(8000),@TableName varchar(100) begin declare cur cursor for select Name from sysobjects where xtype='p' and crdate>='2015-03-31 10:33:14.663' open c

在Sql Server数据表中使用Guid类型的列及设置Guid类型的默认值

1.列的类型为uniqueidentifier 2.列的默认值可以设为newid() 3.程序里字符转换成guid string xxx="xxxx-xxxx-xxx";  guid nn= new guid(xxx)

sql server 更新表,每天的数据分固定批次设置批次号sql

按表中的字段 UpdateTime 按每天进行编号,每天的编号都从1开始编号,并附带表的主键 cid,把数据存入临时表中 WITH temp AS (SELECT cid,updatetime, ROW_NUMBER() OVER (PARTITION BY CONVERT(varchar(10), UpdateTime, 20) ORDER BY updatetime) AS Row_Num FROM Customer_Transfer ) 从临时表中根据主键cid进行更新 BatchNo,给

Oracle与Sql Server复制表结构及数据

1.Oracle create table 新表名 AS SELECT * FROM 源表名 2.Sql Server SELECT * into 新表名 from 源表名 Oracle与Sql Server复制表结构及数据

SQL Server系统表sysobjects介绍与使用

原文:SQL Server系统表sysobjects介绍与使用 关于SQL Server数据库的一切信息都保存在它的系统表格里.我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格.但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器.你可以一个一个地检查表格,但是如果你有500个表格的话,这可能会消耗相当大的人工. 这就让sysobjects表格有了用武之地.虽然我不建议你更新这个表格,但是你当然有权对其进行审查. sysobjects 表 在数据库内创建的每个对象(约

SQL Server系统表sysobjects介绍与使用(转)

SQL Server系统表sysobjects介绍与使用 关于SQL Server数据库的一切信息都保存在它的系统表格里.我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格.但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器.你可以一个一个地检查表格,但是如果你有500个表格的话,这可能会消耗相当大的人工. 这就让sysobjects表格有了用武之地.虽然我不建议你更新这个表格,但是你当然有权对其进行审查. sysobjects 表  在数据库内创建的每个对象(约束.

SQL Server 数据导入Mysql详细教程

SQL Server 数据导入Mysql详细教程 SQL Server数据库和Mysql 数据库都是关系型数据库,虽然很多数据库都对SQL语句进行了再开发和扩展,使得在不同的数据库中执行的方法或用法不一,但是 SQL Server,Mysql ,Access等都采用了SQL语言标准,不同的数据库中的数据是可以导入的.对于大数据的导入是有相当大的意义. 今天,我和大家一起分享一下,我用的便捷的"sql server 数据导入mysql 中的方法",希望能给大家的项目开发中"sq