【你也能从零基础学会网站开发】关系型数据库中的表(Table)设计结构以及核心组成部分

news2024/11/15 23:29:39

🚀 个人主页 极客小俊
✍🏻 作者简介:程序猿、设计师、技术分享
🐋 希望大家多多支持, 我们一起学习和进步!
🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注

关系型数据库中的表结构

表 (Table)

表(table)关系型数据库核心单元,是数据存储的地方。
在表中,数据被组织成的形式。
每一行代表一个实体(即现实世界中的一个事物),每一列代表实体的一个属性

如图

在这里插入图片描述

当我们使用关系模型来存储和组织数据时,这些数据会被组织成一个像上面这样的表格结构。

这个表格有,而每一行代表了一条数据记录,每一列代表了数据中的一个字段或属性。

所以,我们可以简单地把这个表格理解成一张表,而这张表就是关系模型中的关系, 换句话说,一个关系就对应着一张表

一般这种关系(表) 定义的方式为 关系名(表名称)(属性1,属性2.....属性n)

例如: 上面的关系可描述为:学生表(学号、学生姓名、年龄、...)

这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体之间的各种关系

元组

元组也叫记录, 是中的一行即为一个元组,或称为一条记录

如图

字段(属性)

属性就是表中的字段, 在中的每一列称为一个字段,而是由其包含的各种字段定义的,每个字段描述了它所含有的数据的意义, 事实上的设计实际上就是对字段的设计, 创建的时候,为每个字段分配一个数据类型,定义它们的数据长度和其他属性。

属性值(字段值) 也就是交叉位置表示某个属性值!

如图

主键

简单的说主键中每一行数据的唯一标识,用于区分不同的记录。

主键是数据库中的一个多个属性(字段)的组合,它的特点就是能够唯一标识中的每一行数据,也就是每一个实体

当然你也可以说成是用于唯一确定一个元组的数据!

如图

例如学生表中,我们通常会让学号主键,又比如教师表中让教师编号主键

主键可以是一个字段也可以是多个字段,常用作一个索引字段

所以每条记录的关键字(主键)都是不同的,因而可以唯一地标识一个记录,关键字(主键)也称为主关键字,或简称主键

这里需要再次注意一下, 在数据库设计中,如果单个字段无法唯一标识表中的每一行数据,那么就可以选择多个字段一起作为主键。这种由多个字段组成的主键被称为复合主键。

复合主键中的每个字段都是主键的一部分,它们共同唯一标识表中的一行数据。

所以,主键既可以是一个字段,也可以是多个字段的组合

外键

外键主要是用来描述表与表之间的关系!

简单来说它就像是一个桥梁,让两个不同的表能够相互连接,通过它可以实现从一个表跳转到另一个表。

如图


举个栗子

现在有两个表,一个是学生表(student),一个是班级表(class)
学生表中有学生的姓名、学号等信息,而班级表中有班级的名称、班级编号等信息。

问现在,如果我们想知道每个学生属于哪个班级,我们就可以在学生表中添加一个外键,这个外键指向班级表中的班级编号

这样一来,每当我们查看学生表时,就可以通过这个外键知道每个学生所在的班级了。同样的,如果我们要查找某个班级的所有学生,也可以通过这个外键反向查找!

所以,外键的主要作用就是建立和维护两个表之间的关系,让数据库的管理和使用变得更加方便和高效

主表和从表的关系

有了外键这个概念那么这里就衍生出了一个主表从表的概念

它们之间的关系为: 主表是被参照的表,含有主键, 而从表是参照主表的表,含有指向主表主键的外键

如图


我们要知道在数据库中,主表从表的关系是基于外键约束来建立的。

主表也称为父表参照表 是一个包含主键的表,这个主键是唯一标识表中每一行的数据。

从表也称为子表被参照表 是一个包含外键的表,这个外键是指向主表主键的字段,用于建立与主表之间的联系,刚刚上面也已经讲过了!

主表从表所依赖的,它提供了从表所需要参照的数据, 从表则通过外键主表相关联,以便能够访问和使用主表中的数据。

这种关系使得数据库能够维护数据的一致性完整性,因为外键约束确保了从表中的外键字段只能包含主表中已经存在的主键值。

如果是使用的是SQL语句的情况下, 创建这两个表的SQL语句如下:

CREATE TABLE class (  
    class_id INT PRIMARY KEY,  
    class_name VARCHAR(255)  
);  
  
CREATE TABLE student (  
    student_id INT PRIMARY KEY,  
    name VARCHAR(255),  
    class_id INT,  
    FOREIGN KEY (class_id) REFERENCES class(class_id)  
);

案例中FOREIGN KEY (class_id) REFERENCES class(class_id)语句定义了外键约束,它指定了学生表中的class_id列是外键
它引用了班级表中的class_id列。

这样,数据库就知道这两个表是如何相互关联的了, 如果这里你看不明白也没关系 后面我们慢慢讲到SQL语法之后,你就能搞明白了!

"👍点赞" "✍️评论" "收藏❤️"

大家的支持就是我坚持下去的动力!

如果以上内容有任何错误或者不准确的地方,🤗🤗🤗欢迎在下面 👇👇👇 留个言指出、或者你有更好的想法,
欢迎一起交流学习❤️❤️💛💛💚💚

更多 好玩 好用 好看的干货教程可以 点击下方关注❤️ 微信公众号❤️
说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1883477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idea 项目互联网转内网开发 依赖报错问题 maven问题

场景: 这个问题困扰好久,通过分析后,发现是maven配置问题,废话不多说,上干活。 问题描述 项目互联网从转内网开发,提前下载好repository,跟项目一起导入内网,导入后,发…

Jasper Report详细使用教程

1、编写jrxml文件 1.1 新建项目 使用Jaspersoft Studio来创建一个项目,如图所示,新建一个项目,步骤: File -> New -> Project->JasperReportsProject 1.2 新建一个Jasper Report模板 找到你新建的项目。步骤:…

昇思25天学习打卡营第6天|简单的深度学习模型实战 - 函数式自动微分

自动微分(Automatic Differentiation)是什么?微分是函数在某一处的导数值,自动微分就是使用计算机程序自动求解函数在某一处的导数值。自动微分可用于计算神经网络反向传播的梯度大小,是机器学习训练中不可或缺的一步。 这些公式难免让人头大…

抛弃 Neofetch?众多优秀替代方案等你体验!

目录 抛弃 Neofetch?众多优秀替代方案等你体验Neofetch 的替代品FastfetchscreenFetchmacchina 抛弃 Neofetch?众多优秀替代方案等你体验 NeoFetch 是用 Bash 3.2 编写的命令行系统信息工具,该项目的主要开发人员已将 GitHub 存储库存档&…

【C++11:右值引用,列表初始化】

统一列表初始化: 构造函数的函数名与函数体之间增加一个列表,用于对成员初始化 在实例化对象时,支持单/多参数的隐式转化,同时也可以省略符号,让代码更简洁 右值的引用 左值: 左值与右值的重要区别就是能…

用代码实现加载中动图 loading.gif

效果 仅使用htmlcss&#xff0c;效果如下所示 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>加载中</title><style>.el-loading-spinner .circular {height: 42px;width: 42px;…

7.1作业

初始化 /******rcc章节初始化********/ |//1.使能gpiob组控制器 |RCC->MP_AHB4ENSETR |(0X1<<1); |//2.使能gpiog组控制器 |RCC-&…

【TB作品】矩阵键盘电话拨号,ATMEGA16单片机,Proteus仿真 atmega16矩阵键盘电话拨号

atmega16矩阵键盘电话拨号 c代码和仿真图&#xff1a; 使用ATmega16实现矩阵键盘电话拨号功能 项目背景 在电子设计和嵌入式系统开发中&#xff0c;矩阵键盘是常见的人机交互方式。它可以实现较多按键的输入&#xff0c;同时节省单片机的I/O资源。结合LCD显示和蜂鸣器&am…

四城联动 | 亚控KingSCADA4.0信创版发布会圆满收官

圆满收官 随着科技的飞速发展&#xff0c;智能制造和工业自动化已成为推动产业升级的重要力量。在这样的背景下&#xff0c;北京亚控科技发展有限公司&#xff08;以下简称“亚控科技”&#xff09;于2024年6月18日至27日&#xff0c;分别在沈阳、大连、长春和哈尔滨四地成功举…

【PYG】Planetoid中边存储的格式,为什么打印前十条边用edge_index[:, :10]

edge_index 是 PyTorch Geometric 中常用的表示图边的张量。它通常是一个形状为 [2, num_edges] 的二维张量&#xff0c;其中 num_edges 表示图中边的数量。每一列表示一条边&#xff0c;包含两个节点的索引。 实际上这是COO存储格式&#xff0c;官方文档里也有写&#xff0c;…

暑假假期规划 离不开宝藏待办计划管理工具

暑假来临&#xff0c;两个月的自由时间&#xff0c;如何过得充实而有意义&#xff0c;成了我最近思考的问题。毕竟&#xff0c;一个合理的假期规划&#xff0c;不仅能让我的假期生活更加丰富多彩&#xff0c;还能为新学期的到来做好充分的准备。 我幻想着在这个暑假里&#xf…

激光雷达数据处理

激光雷达技术以其高精度、高效率的特点&#xff0c;已经成为地表特征获取、地形建模、环境监测等领域的重要工具。掌握激光雷达数据处理技能&#xff0c;不仅可以提升工作效率&#xff0c;还能够有效提高数据的质量和准确性&#xff0c;为决策提供可靠的数据支持。 第一章、激…

【漏洞复现】和丰多媒体信息发布系统 QH.aspx 任意文件上传漏洞

0x01 产品简介 和丰多媒体信息发布系统也称数字标牌&#xff08;Digital Signage&#xff09;&#xff0c;是指通过大屏幕终端显示设备&#xff0c;发布商业、财经和娱乐信息的多媒体专业视听系统&#xff0c;常被称为除纸张媒体、电台、电视、互联网之外的“第五媒体”。该系…

centos 安装zabbix 6.4.16 server client

Zabbix Server 采用源码包部署&#xff0c;数据库采用 MySQL8.0 版本&#xff0c;zabbix-web 使用 nginxphp 来实现。具体信息如下&#xff1a; 软件名 版本 安装方式 Zabbix Server 6.4.16 源码安装 Zabbix Agent 6.4.16 源码安装 MySQL 8.0.28 yum安装 Nginx 1.…

赛氪网:企业竞赛组织平台新选择,一键操作助力赛事成功举办

在数字化时代&#xff0c;传统的赛事报名方式已经逐渐难以满足组织者和参赛者的需求。企业如何寻找一种既方便又高效的赛事报名工具&#xff1f;赛氪网平台凭借其便捷的操作流程、完善的管理功能和技术保障&#xff0c;成为众多企业和高校举办竞赛时的首选。 赛氪网作为一款先…

祝贺《华为战略管理法:DSTE实战体系》被《中国企业家》杂志评为企业家枕边书50本之一(宏观战略类书籍)

祝贺《华为战略管理法&#xff1a;DSTE实战体系》被《中国企业家》杂志评为企业家枕边书50本之一 2024年4月23日&#xff08;周二&#xff09;下午13:00&#xff0c;《中国企业家》杂志如期举办“每天都是读书日”线下活动。 《中国企业家》杂志携手商界大咖共同推选50本枕边书…

算法刷题之路之链表初探(二)Leecode21合并两个有序链表

算法刷题之路之链表初探&#xff08;二&#xff09; 今天来学习的算法题是leecode141环形链表&#xff0c;是一道简单的入门题&#xff0c;话不多说&#xff01;直接上&#xff01; 条件&#xff08;Leecode21&#xff09; 重点&#xff01;&#xff01;&#xff01; 我直接把…

数据结构 - C/C++ - 链表

目录 结构特性 内存布局 结构样式 结构拓展 单链表 结构定义 节点关联 插入节点 删除节点 常见操作 双链表 环链表 结构容器 结构设计 结构特性 线性结构的存储方式 顺序存储 - 数组 链式存储 - 链表 线性结构的链式存储是通过任意的存储单元来存储线性…

yaml文件的介绍-K8S

yaml 文件是我们使用K8S管理应用程序常用的部署方式&#xff0c;它主要是通过一系列键值对组成&#xff0c;键和值使用冒号和空格分隔。以下是对yaml的介绍 首先我们可以使用命令生成一个简单的YAML模版文件 Kubectl run nginx-pod –imagenginx:latest –port80 –dry-runcli…

【MySQL备份】Percona XtraBackup实战篇

目录 1. 前言 2.准备工作 2.1.创建备份目录 2.2.配置/etc/my.cnf文件 2.3.授予root用户BACKUP_ADMIN权限 3.全量备份 4.准备备份 5.数据恢复 6.总结 "实战演练&#xff1a;利用Percona XtraBackup执行MySQL全量备份操作详解" 1. 前言 本文将继续上篇【My…