【小白说】数据库系统概念 7

连接字段就是两个表进行连接时用来匹配数据的字段。比如学生表有学号,选课表也有学号,查询时用两个表的学号相等来匹配,学号就是连接字段。
可比的意思就是两个字段的数据类型必须能进行大小比较或相等比较。比如整数可以和整数比,字符串可以和字符串比,但整数不能直接和字符串比。
名字不必相同,意思是连接的两个字段可以有不同的字段名,只要数据类型可比就行。比如学生表的学号是整数,选课表的学生编号也是整数,虽然字段名不同,但类型可比,就可以作为连接字段。
可比的含义是,两个字段的数据类型必须能够进行相等或不等的比较。比如整数可以和整数比大小,字符串可以和字符串比是否相同。因为连接操作本质上就是在比较两个字段的值,看它们是否满足连接条件。如果类型不同,比如拿整数和字符串去比,系统不知道该怎么比较,也就无法判断两个记录是否应该连接在一起。
循环嵌套法拿着学生表的每一条记录,去选课表里从头到尾找匹配。先拿学号001去选课表里逐条对比,找到所有001的选课记录,再拿学号002去选课表里逐条对比,直到所有学生都找完。适合小表连接。
排序合并法

先把两个表按学号排好序,比如学生表排成001,002,003,选课表排成001,001,002,004。然后像合并两个有序列表一样,两个指针从头开始走,学号相等就输出,小的那边继续往下走。适合两个表数据量都大且已排序的情况。
索引连接

如果选课表的学号上建有索引,查询时就先遍历学生表,每取一个学生,直接通过索引快速找到选课表里所有匹配的学号,而不是全表扫描。适合大表连接且有索引的情况。




例题1:

查询了选修了全部课程的学生姓名




例题2:

查询至少选修了学生200215122选修的全部课程的学生学号

END

相关推荐
Data_Journal4 小时前
如何将网页抓取用于机器学习
大数据·开发语言·数据库·python·scrapy
Lyra_Infra5 小时前
从 MySQL 到达梦:一次信创隔离环境里的数据库迁移踩坑实录
数据库·后端·mysql
数据工匠老o5 小时前
sysbench/TPC-C/自定义脚本:数据库压测工具对比与实战流程
数据库·测试
数安3000天5 小时前
数据分类分级产品有哪四类技术路线?
大数据·数据库
泡茶喝茶写代码5 小时前
量化数据开发实战系列(第 25 篇):基金基础接口实战:基金列表、ETF-LOF 分类、基金概况、净值数据
java·数据库·人工智能·python·mysql
张小姐的猫5 小时前
【AI大模型接入SDK】 —— 数据管理 & 与Session模块进行联动
数据结构·数据库·c++·人工智能·python·chatgpt
IvorySQL6 小时前
PostgreSQL 日报|大模型破解在线校验和(9 月 15 日)
数据库·人工智能·postgresql
Leon-Ning Liu7 小时前
Oracle 19c ASMB 进程 PGA 内存泄漏排查实战 (Bug 38610635)
数据库·oracle
步行cgn7 小时前
Spring 注入 null 和空字符串详解
数据库·spring·oracle
Allen_LVyingbo7 小时前
医疗人工智能项目全生命周期管理系统:监管知识建模、工程实现与实证评估(下)
大数据·数据库·人工智能·python·自然语言处理·自动化