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

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

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

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




例题1:

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




例题2:

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

END

相关推荐
山岚的运维笔记2 小时前
SQL Server笔记 -- 第70章:临时表的使用
数据库·笔记·sql·microsoft·oracle·sqlserver
数据知道2 小时前
JSON 与 BSON 深度解析:理解 MongoDB 底层数据格式与扩展类型。
数据库·mongodb·json
杨云龙UP2 小时前
Oracle RMAN 归档日志清理标准流程:CROSSCHECK / EXPIRED / SYSDATE-N
运维·服务器·数据库
Highcharts.js2 小时前
Highcharts跨域数据加载完全指南:JSONP原理与实战
javascript·数据库·开发文档·highcharts·图表开发·跨域数据
知识分享小能手2 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 安全机制 — 语法知识点及使用方法详解(18)
数据库·学习·sqlserver
此生只爱蛋2 小时前
【Redis】渐进式遍历
数据库·redis·github
·云扬·11 小时前
MySQL 主从复制实战:Xtrabackup 高效部署方案
数据库·mysql
Ama_tor12 小时前
从零开始MySQL|F盘安装,配置,简单应用以及基础语句
数据库·mysql
亓才孓14 小时前
【MyBatis Exception】Public Key Retrieval is not allowed
java·数据库·spring boot·mybatis