数据库中主键和外键是干吗的?

数据库中主键和外键是干吗的?,第1张

1、主键:若某一个属性组(注意是组)能唯一标识一条记录,该属性组就是一个主键。主键不能重复,且只能有有一个,也不允许为空。定义主键主要是为了维护关系数据库的完整性。

2、外键: 外键用于与另一张表的关联,是能确定另一张表记录的字段。外键是另一个表的主键,可以重复,可以有多个,也可以是空值。定义外键主要是为了保持数据的一致性。

3、简单来说就是把两个表关联起来。同样的一个名字在两个表中:如stu(name,sex)和表grade(name,cou),如果name是表stu中的主键,并且name也是表grade中的主键,那么表stu中的name就是表grade的外键了。

4、外键取值规则:空值或参照的主键值。插入非空值时,如果主键表中没有这个值,则不能插入。更新时,不能改为主键表中没有的值。删除主键表记录时,可以在建外键时选定外键记录一起级联删除还是拒绝删除。更新主键记录时,同样有级联更新和拒绝执行的选择。SQL的主键和外键就是起约束作用。

5、索引的主要作用为了提高查询速度。主键就是唯一索引。外键是两张表之间做连接关系时用的。一般是某一张表的一个外键字段引用另一张表的主键。

在关系型数据库中,数据结构有逻辑结构和物理结构。物理结构指存储在物理介质上的数据文件的结构。逻辑结构即关系,也就是一张张的二维表。表中的一列即为一个字段(属性),代表的是实体的一个属性。表中的一行即为一条记录。

其实很简单的,举个例子说明如何设置两个主键

--创建学生表

create

table

学生表

(

学号

int

not

null

primary

key

(学号),

姓名

nvarchar(20)

not

null,

性别

bit,

出生日期

int

not

null,

系编码

int

not

null

)

--创建课程表

create

table

课程表

(

课程号

int

not

null

primary

key

(课程号),

课程名

nvarchar(100)

not

null,

选修课号

int,

学分

decimal(2,1)

)

--创建选课表

create

table

选课表

(

学号

int

not

null,

课程号

int

not

null,

成绩

decimal(3,1)

primary

key(学号,课程号)

--将学号、课程号设为主键

)

sql 语句实现用 primary key(一个属性,第二个属性) 就ok了

如果用的sqlserver2000 的企业管理器,直接选中一个属性后,按住 Shift键,然后选中另外一个属性,点击右键,设置主键,就ok了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10825901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存