数据库码的理解

简介: 写下个人理解
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(学号,学科)
目录
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
2024年阿里云数据库创建_数据库账号密码和连接教程
阿里云数据库怎么使用?阿里云百科整理阿里云数据库从购买到使用全流程,阿里云支持MySQL、SQL Server、PostgreSQL和MariaDB等数据库引擎,阿里云数据库具有高可用、高容灾特性,阿里云提供数据库备份、恢复、迁移全套解决方案。详细阿里云数据库购买和使用流程方法如下
|
3月前
|
存储 NoSQL 关系型数据库
数据库的类型有哪些
数据库的类型有哪些
|
druid 安全 Java
数据库如何加密连接
数据库如何加密连接
数据库如何加密连接
|
存储 SQL 数据库
数据库实验一:数据库与数据表定义(1)—— 数据库相关操作
修改服务器默认存储位置:右键点击服务器,选择属性中的数据库设置,修改数据和日志存放位置后点击确定
151 0
数据库实验一:数据库与数据表定义(1)—— 数据库相关操作
|
9月前
|
数据库
数据库-键(码)
数据库-键(码)
98 0
|
9月前
|
SQL 数据库
【数据库视频】七种连接方式
【数据库视频】七种连接方式
|
11月前
|
存储 XML JSON
【数据库】数据库常见分类标准
【数据库】数据库常见分类标准
742 0
|
SQL Oracle Java
一款数据库客户端搞定所有数据库
一款数据库客户端搞定所有数据库
234 0
一款数据库客户端搞定所有数据库
|
缓存 NoSQL 容灾
阿里云数据库包含哪些
阿里云数据库包含哪些
270 0
|
存储 安全 数据库
数据库加密
产品简介中安威士数据库透明加密系统(简称VS-EC),基于加密算法和合理的密钥管理,有选择性地加密敏感字段内容,保护数据库内敏感数据的安全。敏感数据以密文的形式存储,能保证即使在存储介质被窃取或数据文件被非法复制的情况下,敏感数据仍是安全的。
1811 0