欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

SQL Server 2008 查看与创建约束图文教程

程序员文章站 2022-06-10 16:14:07
...

本文章以图文的方式给大家详细介绍SQL Server 2008 查看与创建约束过程,有需要学习sql约束的朋友可参考本文章哦。


约束主要有一下几种:

NOT NULL : 用于控制字段的内容一定不能为空(NULL)。

UNIQUE : 控件字段内容不能重复,一个表允许有多个 Unique 约束。

PRIMARY KEY: 也是用于控件字段内容不能重复,但它在一个表只允许出现一个。

FOREIGN KEY: FOREIGN KEY 约束用于预防破坏表之间连接的动作,FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

CHECK: 用于控制字段的值范围。

DEFAULT: 用于设置新记录的默认值。

1. PRIMARY KEY约束

在表中常有一列或多列的组合,其值能唯一标识表中的每一行。这样的一列或多列成为表的主键(Primary Key)。一个表只能有一个主键,而且主键约束中的列不能为空值。

查看PRIMARY KEY约束可以在object explorer中依次展开Databases –> 选择你要查看的(在我的例子中是testdatabase) –> Tables –> 你要查看的表(在我的例子中是company)-> Columns

SQL Server 2008 查看与创建约束图文教程

如上图所示,Primary Key 有一把金色的小钥匙。companyid 即为company表的primary key。

创建PRIMARY KEY约束可以右键点击表,然后选择Design,打开表设计器

SQL Server 2008 查看与创建约束图文教程

选中column,点击上面的金色小钥匙,来创建Primary Key。

SQL Server 2008 查看与创建约束图文教程

也可以右键点击column,然后选择Set Primary Key。

SQL Server 2008 查看与创建约束图文教程

2. FOREIGN KEY约束

外键(Foreign Key)是用于建立和加强两个表(主表与从表)的一列或多列数据之间的连接的。创建约束的顺序是先定义主表的主键,再对从表定义外键约束。

查看FOREIGN KEY约束,展开Columns,可以看到灰色的小钥匙为Foreign Key;展开Keys,可以看到Foreign Key约束的名字为FK_contact_company。

SQL Server 2008 查看与创建约束图文教程

在表设计器中,也可以点击上面的Relationshi按钮,这样就可以查看到所有的Foreign Key约束

SQL Server 2008 查看与创建约束图文教程

SQL Server 2008 查看与创建约束图文教程

上面的例子可以看到contact 表的companyid为外键,company 表的companyid为主键。

下面来演示一下如何创建的该Foreign Key约束。

同样是点击完Relationships按钮之后,在弹出的对话框中选择Add

SQL Server 2008 查看与创建约束图文教程

然后点击下面的红色圆圈内的按钮:

SQL Server 2008 查看与创建约束图文教程

按下图中那样设置主表、主键和从表、外键

SQL Server 2008 查看与创建约束图文教程

然后点击 OK,不要忘记保存你的设计。

SQL Server 2008 查看与创建约束图文教程

3. UNIQUE约束

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

还以company table为例,假设我们要约束company name为唯一的,点击Manage Indexes and Keys

SQL Server 2008 查看与创建约束图文教程

然后点击Add来添加Unique约束

SQL Server 2008 查看与创建约束图文教程

选择column为companyname, Is Unique为Yes。

SQL Server 2008 查看与创建约束图文教程

关闭并保存你的设计,这样一个Unique约束就创建好了。

4. DEFAULT约束

若在表中某列定义了DEFAULT约束,用户在插入新的数据行时,如果该列没有指定数据,那么系统将默认值赋给该列,当然该默认值也可以是空值(NULL)。

以contact表为例,在表设计器中,为性别(sex)列填写属性默认值 (‘M’)。

SQL Server 2008 查看与创建约束图文教程

5. CHECK约束

CHECK约束用于限制输入一列或多列的值的范围,通过逻辑表达式来判断数据的有效性。一个列的输入内容必须满足CHECK约束的条件,否则数据无法正常输入。

还以contact表为例, 我们要限制sex列的值只能为 ´M´ 或者 ´F´。在表设计器中点击Manage Check Constraints

SQL Server 2008 查看与创建约束图文教程

点击Add添加新的constraint

SQL Server 2008 查看与创建约束图文教程

点击红圈内的按钮,填写表达式。我们例子中用的表达式是 SEX='M' OR SEX='F'

SQL Server 2008 查看与创建约束图文教程

关闭并保存设计。向contact表中插入一行数据,如果sex列的值不为´M´ 或 ´F´, 插入就会报错


删除:

代码如下 复制代码

在Sql Server、Oracle、MS 删除 Unique 约束语法:drop constraint UniqueName;
在My Sql 删除 Unique 约束语法:drop index UniqueName;

修改:

代码如下 复制代码
ALTER TABLE EPlatform
ADD CONSTRAINT Unique_EPlatform
unique ([UserId],[Platform]);