MYSQL数据库第五部分

本文详细讲解了MySQL数据库中的子查询概念、使用场景、编写思路和注意事项,涵盖单行、多行、多列及关联子查询。此外,还探讨了索引的定义、作用、分类及创建原则,旨在帮助读者深入理解并优化SQL查询效率。
摘要由CSDN通过智能技术生成
MySQL 数据库第五部分讲义
重点掌握子查询
一 理解并口述(技术要点和面试题)
【口述 1 】什么是子查询?
【口述 2 】什么时候使用子查询 ?
【口述 3 】子查询的编写思路
【口述 4 】使用子查询的注意事项
【口述 5 】常规 SQL 语句优化
【口述 6 】什么是索引 ?
【口述 7 】索引的作用有哪些?
【口述 8 】索引的分类有哪些?
【口述 9 】创建索引的原则有哪些?
二 动手做(
TODO)
( ) 子查询
1. 单行子查询 (
TODO 4 个任务)
(1). WHERE 子句中的单行子查询
(2). HAVING 子句中的单行子查询
2. 多行子查询 (TODO 8 个任务 )
2.1 多行子查询中使用 IN 操作符
2.2 多行子查询中使用 ANY 操作符
2.3 多行子查询中使用 ALL 操作符
2.4 子查询中使用 EXISTS 操作符
3. 多列子查询(
TODO 1 个任务)
4. 关联子查询 (
TODO 2 个任务)
5. DDL 的建表语句中使用子查询 (TODO 2 个任务 )
6. SELECT 语句中使用子查询 (
TODO 1 个任务)
7. 插入语句中使用子查询 (
TODO 1 个任务)
8. FROM 子句中使用子查询 (
TODO 2 个任务)
9. 合并查询结果( UNION,UNION ALL) (TODO 2 个任务 )
( ) 索引 (
TODO 2 个任务)
1. 如何创建索引?
2. 如何删除索引?
三 课后任务 (TODO 9 个任务 )
四 拓展(了解 MySQL 数据库中的触发器,存储函数和存储过程)
4.1 什么是触发器?
4.2 如何创建一个触发器?
4.3 什么是存储过程?
4.4 什么是存储函数(自定义函数)?
4.5 存储过程与存储函数(自定义函数)的区别?
4.4 如何创建及调用一个存储过程?
4.5 如何创建及调用一个存储函数?
4.6 如何使用游标?
4.7 如何删除存储过程?
4.8 如何删除存储函数? MySQL 数据库第五部分讲义
重点掌握子查询
一 理解并口述(技术要点和面试题)
【口述 1 】什么是子查询?
子查询是指插入在其他 SQL 语句中的 SELECT 语句,也称为嵌套查询。 使用子查询主要是将结果作为外部主查询
的查询条件来使用的查询。
【口述 2 】什么时候使用子查询 ?
1. 当要显示的数据在表里并不存在,但可以通过对已有数据的加工获得,可通过子查询实现。
2. 子查询可以出现在 SELECT WHERE 子句、 FROM 子句、 DML 语句、 DDL 语句中。
3. SELECT INSERT UPDATE DELETE 命令中允许是一个表达式的地方都可以包含子查询,子查询甚至可以
包含在另外一个子查询中。
【口述 3 】子查询的编写思路
子查询的编写思路 :
1. 仔细分析题目,确定要查询的表及字段(数据)
2. 分析要查询的字段(数据)哪些在表里直接存在,哪些不存在
3. 考虑如何把要显示的数据造出来(通过查询语句获得)
4. 考虑子查询与表的连接点是什么 ( 通常是主外键、共有字段 )
5. 考虑子查询放在什么位置
6. 组合成完整的 SQL 语句
【口述 4 】使用子查询的注意事项
【口述 5 】常规 SQL 语句优化
【口述 6 】什么是索引 ?
索引:类似 目录 ,给一张表添加了一个目录。
1. 要将子查询放入圆括号中。
2. 子查询可出现在 WHERE 子句、 FROM 子句、 SELECT 列表(此处只能是一个单行子查询)和 HAVING 子句 ,DDL,DML 中。
3. 子查询不能出现在主查询的 GROUP BY 语句中
4. 子查询和主查询可以使用不同表,只要子查询返回的结果能够被主查询使用即可。
5. 单行子查询只能使用单行操作符,多行子查询只能使用多行操作符。
6. 在多行子查询中, ALL ANY 操作符不能单独使用,而只能与单行比较符(
= < > <= >= <>) 结合使用。
7. 要注意子查询中的空值问题。如果子查询返回了一个空值,则主查询将不会查询任何结果。
8. WHERE 子句中进行子查询的时候,不能带有 GROUP BY 子句。
9. 子查询允许嵌套多层,但不能超过 255 层。
1. 建议不用 "*" 来代替所有列名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值