SQL必知必会-读书笔记(九)
SQL必知必会-读书笔记(九)
何为查询(query)
本质上任何SQL都是查询。但此术语一般用于SELECT语句
子查询
- 子查询总是从内向外处理
- MySQL 中,子查询并不局限于仅仅只能查询单列,但对于部分SQL语言来说,可能限制只能查询单列
- 子查询并不总是执行数据检索最有效的方法,视具体情况,联表的优先级会大于子查询
- 有多个查询时,尽量用完全限定列名(表名.列名)
- 子查询常用于
IN()
中
联表 JOIN
联表是关系型数据库最关键,最核心,最灵魂的操作
关系型数据库为了保证良好的可伸缩性,通常会将关系和具体内容分开存储,在查询完整信息时,就需要使用到
JOIN
JOIN
时不加条件,最终返回的结果将会是两张表的笛卡尔积,检索出的行数将是表1的行数×表2的行数,这种联结也叫叉联结
ON
条件为等值时也叫等值联结联结是很消耗资源的,联结的表越多,性能下降越厉害,虽然SQL本身不限制每个联结约束中表的数量,但原则上联结的表越少越好
使用联结时可以多看执行计划,找出最合适的联结方案
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CautionX!