1、PRIMARY KEY 约束
表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。索引键主要为了加快查询的速度
2、在企业管理器中,右击表,所有任务中选管理索引,建立即可。
3、通过一列或多列与主表关联
表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。索引键主要为了加快查询的速度
2、在企业管理器中,右击表,所有任务中选管理索引,建立即可。
3、通过一列或多列与主表关联
go
use cat
go
CREATE TABLE s(s# int not null primary key,s_name varchar(8) not null)
go
CREATE TABLE c (c# int not null primary key,c_name varchar(8) not null)
go
CREATE TABLE cs(c# int not null,s# int not null,cj tinyint not null default(0),
primary key (c#,s#),foreign key(s#) references s(s#),foreign key(c#) references c(c#))
go
insert s values(1,'saa')
insert c values(1,'caa')--这句是对的
insert cs values(1,1,86)--这句是错的,sql会报错,应为s表的s#列里没有2
insert cs vlaues(2,1,45)
create table 主表
(商品编号 varchar(20) not null PRIMARY KEY CLUSTERED ,
商品名称 varchar(20) UNIQUE NONCLUSTERED ,
数量 int
)
create table 次表
(商品编号 varchar(20) not null PRIMARY KEY CLUSTERED REFERENCES 主表 (编号) ON DELETE CASCADE ON UPDATE CASCADE ,
供应商 varchar(20)
)删除主表的商品编号,次表的相应记录也会删除
级联reference两个表可以的
examplecreate table 主表1
(商品编号 varchar(20) not null PRIMARY KEY CLUSTERED ,
商品名称 varchar(20) UNIQUE NONCLUSTERED ,
数量 int
)
create table 主表1
(商品编号 varchar(20) not null PRIMARY KEY CLUSTERED ,
商品名称 varchar(20) UNIQUE NONCLUSTERED ,
数量 int
)
create table 次表
(商品编号 varchar(20) not null ,
商品名称 varchar(20) not null
primary key ( 商品编号,商品名称 )
FOREIGN KEY (商品编号) REFERENCES 主表 (商品编号)
ON DELETE CASCADE ON UPDATE CASCADE ,
FOREIGN KEY ( 商品名称) rEFERENCES 主表1 (商品编号)
ON DELETE CASCADE ON UPDATE CASCADE ,
供应商 varchar(20)
)insert 主表 select '003','aa',77insert 主表1 select '104','bb',17insert 次表 select '003','104','y'update 主表1 set 商品编号='105'update 主表 set 商品编号='004'
select * from 次表