数据库码的理解

简介: 写下个人理解
1.码或键

通过属性或者属性组区分两个不同的元组,这样的属性或者属性组称为码或键。比如:一个学生表中,可以通过学号这一个属性区分不同学生,也可以通过(学号、身高、性别)这一属性组来区分不同学生

2.超码或超键

如果有个码,可以去掉其中某个属性,它依然是这个关系的码,那么这样的码是超码。比如:(学号、身高、性别)这里面去掉性别依然可以区分不同学生。每个关系默认最少一个超码,因为一个表不能只有一列,默认的超码就是这个表的所有属性的集合

3.候选码或候选键

对应超码去理解,如果有个码,不能移除任一属性,否则就不是码了,这样就是候选码。比如:一个学生表中,单独一个学号属性可以是候选码,候选码就是最小超码,候选码不代表就只能是一个属性,假设一个学生表中存在姓名相同,身高不同的两个人,那么(姓名、身高)这一属性组就可以称为候选码,所以一个表可能有多个候选码,最少得有一个

4.主码或主键

通常说主键,在候选码中选最小的那个,比如学号,身份证号,选其中一个就可以

5.全码或主键

当一个表中所有属性的集合才是这个表的候选码,那么可以称为全码,比如:性别、年龄、年级、身高,如果这四个属性一起才能确认一条元组,那么这个属性的集合就是这个关系的主码

6主属性和非主属性

关系中任意一个候选码中的属性为主属性,不在任一候选码中的属性为非主属性

举例说明:
创建一个成绩表
image.png
数据如下
image.png

码:(学号、学科、成绩) 、(学号、学科)
超码:(学号、学科、成绩)
候选码:(学号、学科)
主码:(学号、学科)
没有主码
主属性:学号、学科
非主属性:成绩

注意:
这个表没有单一的属性可以作为主键,只能添加联合主键:
格式:alter table 表名 add constraint 主键约束的名字 primary key(列名1,列名2)
alter table chengji add constraint lh_pk primary key(学号,学科)
目录
相关文章
|
数据库
数据库-键(码)
数据库-键(码)
195 0
|
缓存 NoSQL 容灾
阿里云数据库包含哪些
阿里云数据库包含哪些
315 0
|
9月前
|
存储 NoSQL 关系型数据库
数据库的类型有哪些
数据库的类型有哪些
|
4月前
|
缓存 网络安全 数据库
数据库网站登录失败怎么办?
数据库网站登录失败怎么办?
|
SQL 数据库
数据库(1)--建立学生信息数据库
数据库(1)--建立学生信息数据库
160 0
数据库(1)--建立学生信息数据库
|
4月前
|
数据库连接 网络安全 数据库
数据库网站连接错误怎么办?
数据库网站连接错误怎么办?
|
数据库 移动开发
MySqlBulkLoader后数据库出现0000-00-00 00:00:00数据问题
//这是在.Net中使用MySqlBulkLoader //为什么使用MySqlBulkLoader,因为 20多万数据,导入数据库就几秒而已,一个字:快!其他的批量插入基本都比这种方法慢。
1883 0
|
数据库
查询其它数据库数据
1.OPENDATASOURCE来远程读取数据 SELECT   *FROM  OPENDATASOURCE(         'SQLOLEDB',         'Data Source=10.
593 0
|
存储 Java Linux
访问 HyperSQL 数据库的方法
通常来说 JDBC 可以访问所有的数据库。 JDBC 通常只用于连接数据库,当 JDBC 完成数据库连接后,将会使用 java.sql.Connection 对象提供的一系列方法来返回访问的数据。
940 0

热门文章

最新文章