在SSMS工具中定义主键的方法为:
设计器可视化
sql语句也可以定义主键
在建表的时候
后面写个
primary key(Cno),
或者
Cno char(10) not null primary key,
或者修改添加主码约束
use StudntDB
go
alter table Student
add constraint PK_Student primary key(Sno)
sql server给表新建约束提示 表不存在或者没有权限#找不到对象“dbo.Student”,因为它不存在或者你没有所需的权限
SQL Server2008 解决:无法对 用户 ‘xxx‘ 执行 查找,因为它不存在,或者您没有所需的权限
右键–关系
在上面添加关系
在“选定的关系”列表框中列出了系统提供的默认关系名称(这里是:FK_Course_Course),名称格式为FK_< tablename>_< tablename>,其中tablename是外键表的名称。选中该关系。
展开窗口右边的“表和列规范”,然后单击右边出现的按钮(如图所示)
设计主键表和外键表
举例子如图
Course中的Cno被SC表引用
SC中的Cno为外码
保存
也可以在创建表的时候,定义外码
例如
create table 图书销售表(
书号 nchar(6) not null ,
书店编号 nchar(6) not null,
销售日期 smalldatetime not null,
销售数量 smallint check(销售数量 >= 1),
primary key(书号, 书店编号, 销售日期),
foreign key(书号) references 图书表(书号),
foreign key(书店编号) references 书店表(书店编号)
或者添加外键约束
比如:
--选课表 SC
create table SC(
Sno char(12),
Cno char(10),
Grade int check(Grade>=0 and Grade<=100) ,
primary key(Sno,Cno),
foreign key(Sno) references Student(Sno),
foreign key(Cno) references Course(Cno)
);
这些外码约束可以这样添加
use StudntDB
go
alter table SC
add constraint PK_Sno foreign key(Sno) references Student(Sno)
alter table SC
add constraint PK_Cno foreign key(Cno) references Course(Cno)
这个约束是防止重复值的
运用管理索引和键工具
点击左下角的“添加”按钮,然后在右边“常规”下的“类型”列表框中,选择“唯一键”,如图10-22所示。实际上,数据库管理系统是用唯一索引来实现UNIQUE约束的,因此,定义UNIQUE约束,实际上就是建立了一个唯一索引。
在“名称”框中可以修改UNIQUE约束的名字,也可以采用系统提供的名字(这里是:IX_Student),我们这里不进行修改。
单击“关闭”按钮,关闭创建唯一值约束窗口,回到SSMS,在SSMS上单击保存按钮,然后在弹出的“保存”提示窗口中,单击“保存”按钮保存新定义的约束。
如果运用
sql 语句添加UNIQUE约束:
use StudntDB
go
alter table Student
add constraint IX_Sname UNIQUE(Sname)
DEFAULT约束用于指定列的默认值。
现在假设我们要为Student表的Sdept列定义默认值:计算机系。
在SSMS中图形化地设置DEFAULT约束的步骤为:
1)在SSMS的对象资源管理器中展开“学生数据库”并展开其下的“表”节点,在
Student表上右击鼠标,在弹出的菜单中选择“设计”命令,弹出student的表设计器标签页。
2)选中要设置DEFAULT约束的Sdept列,然后在设计器下边的“默认值或绑定”框
中输人本列的默认值:计算机系,如图所示。
3)单击“保存”按钮,即设置好了Sdept列的默认值约束。
或者sql 语句定义:
比如定义Sdept默认都是数学系
use StudntDB
go
alter table Student
add constraint De_Sdept DEFAULT'数学系' for Sdept
用于约束范围
CHECK约束用于限制列的取值在指定范围内,即约束列的值符合应用语义。
这里假设我们要为Student表的Sage列添加取值大于等于15的约束。
在SSMS中图形化地设置CHECK约束的步骤为:
1)在Student的表设计器标签页上,在该表的任意一个列上右击鼠标,然后从弹出的菜
单中选择“CHECK约束”命令(可参见图10-12所示),弹出如图10-24所示的CHECK约
束窗口。
2)在图10-24所示窗口上单击“添加”按钮,CHECK约束窗口成为如图10-25所示形
式。可以在“名称”框中输入约束的名字(也可以采用系统提供的默认名)。
3)在“表达式”框中输人约束的表达式(如图10-25中的:Sage>=15),也可以单
击“表达式”右边的按钮,然后在弹出的“CHECK约束表达式”窗口中输入CHECK
约束表达式,如图10-26所示。
4)单击“关闭”按钮,回到SSMS窗口,单击“保存”按钮,保存所做的修改。
或者sql 语句
use StudntDB
go
alter table Student
add constraint LS_Sage check(Sage>=15)
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_35629971/article/details/121561536
内容来源于网络,如有侵权,请联系作者删除!