SQL Server 创建约束图解 唯一 主键

SQLServer中有五种约束,Primary Key约束、Foreign Key约束、Unique约束、Default约束和Check约束,今天使用SQL Server2008来演示下这几种约束的创建和使用的方法。

【转载】

1、Primary Key约束

在表中常有一列或多列的组合,其值能唯一标识表中的每一行。

这样的一列或多列成为表的主键(PrimaryKey)。一个表只能有一个主键,而且主键约束中的列不能为空值。只有主键列才能被作为其他表的外键所创建。

创建主键约束可以右键单击表,选择设计。

选中要创建主键的列,然后单击上面的小钥匙。

也可以右键需要创建主键的列,然后单击小钥匙。

2、Foreign Key约束

外键约束是用来加强两个表(主表和从表)的一列或多列数据之间的连接的。创建外键约束的顺序是先定义主表的主键,然后定义从表的外键。也就是说只有主表的主键才能被从表用来作为外键使用,被约束的从表中的列可以不是主键,主表限制了从表更新和插入的操作。

右键单击需要设置外键的列(此时的表是作为从表在外键中出现),选择关系。

接下来点击添加-->表和列规范。

在主键表中选择主表和主表的主键列。

设置完后保存即可。

3、Unique约束

唯一约束确保表中的一列数据没有相同的值。与主键约束类似,唯一约束也强制唯一性,但唯一约束用于非主键的一列或者多列的组合,且一个表可以定义多个唯一约束。

右键单击要设置的列选择索引/键。

然后单击添加按钮。

选择需要设置的列,可以是一列也可以是多列的组合。

关闭并保存设置。

4、Default约束

若在表中定义了默认值约束,用户在插入新的数据行时,如果该行没有指定数据,那么系统将默认值赋给该列,如果我们不设置默认值,系统默认为NULL。

以学生信息表为例,在表设计器中,为性别sex列填写默认值男。

5、Check约束

Check约束通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列的值的范围。在列中更新数据时,所要输入的内容必须满足Check约束的条件,否则将无法正确输入。

以学生信息表中的sex为例,我们要限制sex列的值只能为男或女。

关闭并保存设计。

致此,数据库中的五种约束情况又复习了一遍,约束确保了数据库中数据的完整性,但只有约束是远远不够的。

附:

当用户在在SQL Server 2008中更改表结构时,必须要先删除原来的表,然后重新创建新表,才能完成表的更改,如果强行更改会出现以下提示:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了阻止保存要求重新创建表的更改选项。
如果要去掉此提示,打开SQL 2008 在最上面 工具-〉选项-〉左侧有个 设计器-〉表设计器和数据库设计器 - 阻止保存要求重新创建表的更改(右侧) 把钩去掉就可以了

原文地址:https://www.cnblogs.com/1138720556Gary/p/8538616.html

时间: 2024-08-30 00:22:40

SQL Server 创建约束图解 唯一 主键的相关文章

SQL Server2008创建约束图解 转

转自 http://www.cnblogs.com/longhs/p/3670307.html SQLServer 中有五种约束, Primary Key 约束. Foreign Key 约束. Unique 约束. Default 约束和 Check 约束,今天使用SQL Server2008 来演示下这几种约束的创建和使用的方法. 1 . Primary Key 约束 在表中常有一列或多列的组合,其值能唯一标识表中的每一行. 这样的一列或多列成为表的主键(PrimaryKey).一个表只能有

SQL Server2012创建约束图解

SQLServer中有五种约束:Primary Key约束.Foreign Key约束.Unique约束.Default约束和Check约束 1 . Primary Key 约束 在表中常有一列或多列的组合,其值能唯一标识表中的每一行. 这样的一列或多列成为表的主键(PrimaryKey).一个表只能有一个主键,而且主键约束中的列不能为空值.只有主键列才能被作为其他表的外键所创建. 创建主键约束可以右键单击表,选择设计 . 选中要创建主键的列,然后单击上面的小钥匙. 也可以右键需要创建主键的列,

SQL Server导入导出不丢主键和视图的方法

SQL Server导入导出 SQL Server 导入导出 工具/原料 使用Microsoft SQL Server Management Studio 导入导出数据. 直接使用Microsoft SQL Server Management Studio 导入导出数据会丢失主键.视图等等. 正确的保存方法如下: 一.选择本地的需要导出的数据库 右键-->任务-->生成脚本. 按向导选择需要导出的数据库下一步到“选择脚本选项” 选择需要生成的类型,注意“为服务器版本编写脚本”处选择对应的脚本.

SQL SERVER获得指定表的主键

有时候要获得表主键字段,虽然系统自带有存储过程可以获得,但是对于熟悉系统表的话,自己写个也很容易. 2 Declare @table_name varchar(100) 3 Set @table_name='table_Pqs' 4 --1.可以根据系统存储过程 5 Execute sp_pkeys @table_name 6 7 --2.根据系统表获得 8 Declare @objectid int 9 Set @objectid=object_id(@table_name) 10 Selec

(转)SQL Server创建索引

什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的速度,汉语字(词)典一般都有按拼音.笔画.偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词).同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度.? SQL Server中的数据也是按页( 4KB )存放? 索引:是SQL Server编排数据的内部方法.它为

SQL Server创建索引(转)

什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的速度,汉语字(词)典一般都有按拼音.笔画.偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词). 同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度. ?????????? SQL Server中的数据也是按页( 4KB )存放 ?????????? 索引:是

分布式数据库中全局唯一主键

[相关文章] <分布式数据库中全局唯一主键生成策略的设计与实现><activiti5.10解决分布式集群部署的主键问题><分布式环境下数据库主键方案><如何在高并发分布式系统中生成全局唯一Id><分布式环境下ID生成方法总结> <分布式环境下数据库主键方案> [ http://www.2cto.com/database/201309/243195.html ] 在只使用单数据库时,使用自增主键ID无疑是最适合的.但在集群.主从架构上时

SQL Server 2012入门图解:建表、备份、还原

SQL Server 2012入门图解:建表.备份.还原_.NET教程网——简单专业的.NET技术网站 http://www.soaspx.com/dotnet/sql/sql2012/sqlserver212_20120504_9079.html 作者:汪宇杰 一.建立你的第一个数据库和表 例:建立一个用于描述一个学校学生情况的数据库.把它命名为School.并且要在School数据库下建立保存学生信息的表Student.在可视化界面下,我们通常这样操作.(本文是入门教程,不介绍如何用SQL语

删除表空间的时候遇到的问题:ORA-02429: 无法删除用于强制唯一/主键的索引

今天打算删除orcale数据库中无用的表空间,发现报错,查资料删除,写个过程留着备用. 1.drop tablespace dldata INCLUDING CONTENTS CASCADE CONSTRAINTS; 报错如下:ORA-00604: 递归 SQL 级别 1 出现错误ORA-02429: 无法删除用于强制唯一/主键的索引 2.select segment_name,partition_name,tablespace_name from dba_extents where table