数据库码的理解

简介: 写下个人理解
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(学号,学科)
目录
相关文章
|
3月前
|
存储 NoSQL 关系型数据库
数据库的类型有哪些
数据库的类型有哪些
|
4天前
|
C# 数据库
C# 使用 DbDataReader 来访问数据库
C# 使用 DbDataReader 来访问数据库
13 2
|
2月前
|
存储 SQL NoSQL
数据库有哪些类型?
【6月更文挑战第9天】数据库有哪些类型?
59 2
|
数据库
数据库-键(码)
数据库-键(码)
131 0
|
SQL 存储 SpringCloudAlibaba
微信数据库解析总结
微信数据库解析总结
731 0
微信数据库解析总结
|
缓存 NoSQL 容灾
阿里云数据库包含哪些
阿里云数据库包含哪些
288 0
|
SQL 存储 JavaScript
数据库一些问题记录
视图 视图是一种虚拟表(虚表)。它基于一张表或多张表(原表)的查询结果。
104 0
数据库一些问题记录
|
前端开发 Java 关系型数据库
JDBC连接MySQL数据库,访问数据库信息完成登录功能
JDBC连接MySQL数据库,访问数据库信息完成登录功能
JDBC连接MySQL数据库,访问数据库信息完成登录功能
|
Oracle 关系型数据库 MySQL
数据库中一些用到函数记录
数据库中一些用到函数记录
118 0
|
存储 安全 数据库
数据库加密
产品简介中安威士数据库透明加密系统(简称VS-EC),基于加密算法和合理的密钥管理,有选择性地加密敏感字段内容,保护数据库内敏感数据的安全。敏感数据以密文的形式存储,能保证即使在存储介质被窃取或数据文件被非法复制的情况下,敏感数据仍是安全的。
1834 0