SQL语言创建表时候怎么定义主码和外码

2024-12-15 16:33:34
推荐回答(2个)
回答1:

SQL语言创建表时候用Primary Key(属性名)定义主码,用Foreign Key(属性名)定义外码。

主码是一种唯一关键字,表定义的一部分。一个表的主码可以由多个关键字共同组成,并且主码的列不能包含空值。主码是可选的,并且可在 CREATE TABLE语句中用Primary Key(属性名)定义。

将一个表的值放入第二个表来表示关联,所使用的值是第一个表的主键值(在必要时可包括复合主键值)。此时,第二个表中保存这些值的属性称为外键,用Foreign Key(属性名)定义。

如:

CREATE TABLE Customer

(SID integer,

CID integer,

Last_Name varchar(30),

First_Name varchar(30),

PRIMARY KEY (SID),Foreign Key(CID 名));

扩展资料:

主码不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。实际上,因为主码除了唯一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主码需要更新,则说明主码应对用户无意义的原则被违反了。

主码应当由计算机自动生成。如果由人来对主码的创建进行干预,就会使它带有除了唯一标识一行以外的意义。一旦越过这个界限,就可能产生人为修改主码的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。

回答2:

creat table student
(
sno char(20) not null primary key,
sname......,
.....
)

creat table c
(
cno int not null primary key,
.....
)

creat table sc
(
.......
constraint fk foreign key (sno,cno)
references student(sno)
references c(cno)

)