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

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

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

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




例题1:

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




例题2:

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

END

相关推荐
qq_19697617几秒前
python的sql解析库-sqlparse
数据库·python·sql
淡定一生233341 分钟前
数据仓库建模方法
大数据·数据库·数据仓库
洛菡夕43 分钟前
MySQL故障排查与生产环境优化
数据库·mysql
gjc5921 小时前
零基础OceanBase数据库入门(3):创建租户
数据库·oceanbase
l1t1 小时前
DeepSeek总结的 PostgreSQL 19:为 UPDATE/DELETE 添加 FOR PORTION OF 子句
大数据·数据库·postgresql
RestCloud1 小时前
如何用ETL实现多租户数据库的数据隔离与整合
数据库·数据仓库·etl·etlcloud·数据同步·数据集成平台·数据库传输
悢七1 小时前
单机部署 OceanBase 集群
数据库·ffmpeg·oceanbase
gjc5921 小时前
零基础OceanBase数据库入门(4):创建MySQL模式数据库
数据库·mysql·oracle·oceanbase
知识分享小能手1 小时前
MongoDB入门学习教程,从入门到精通,MongoDB创建副本集知识点梳理(10)
数据库·学习·mongodb
老衲提灯找美女1 小时前
数据库事务
java·大数据·数据库