mysql sql嵌套_mysql SQL优化之嵌套查询-遁地龙卷风
(-1) 写在前面
这篇随笔的数据使用的是http://blog.csdn.net/friendan/article/details/8072668#comments里的,里面有一些常见的select查询练习题。
我使用的是mysql自带的命令行
(1)数据准配
student 表
+---------+-----------+------+------+--------------+
| sno | Sname | Ssex | Sage | Sdept |
+---------+-----------+------+------+--------------+
| 9512101 | 李勇|男| 19 |计算机系|
| 9512102 | 刘晨|男| 20 |计算机系|
| 9512103 | 王敏|女| 20 |计算机系|
| 9521101 | 张力|男| 22 |信息系|
| 9521102 | 吴宾|女| 21 |信息系|
| 9521103 | 张海|男| 20 |信息系|
| 9531101 | 钱小力|女| 18 |数学系|
| 9531102 | 王大力|男| 19 |数学系|
+---------+-----------+------+------+--------------+
course表
+-----+--------------------+-------+
| Cno | Cname | Hours |
+-----+--------------------+-------+
| c01 | 计算机文化学| 70 |
| c02 | VB | 90 |
| c03 | 计算机网络| 80 |
| c04 | 数据库基础| 108 |
| c05 | 高等数学| 180 |
| c06 | 数据结构| 72 |
+-----+--------------------+-------+
SC表
+---------+------+-------+
| Sno | Cno | Grade |
+---------+------+-------+
| 9512101 | C01 | 90 |
| 9512101 | C02 | 86 |
| 9512101 | C06 | NULL |
| 9512102 | C02 | 78 |
| 9512102 | C01 | 82 |
| 9512102 | C02 | 75 |
| 9512102 | C04 | 92 |
| 9512102 | C05 | 50 |
| 9521103 | C02 | 68 |
| 9521103 | C06 | NULL |
| 9531101 | C01 | 80 |
| 9531101 | C05 | 95 |
| 9531102 | C05 | 85 |
+---------+------+-------+
(2)问题及解答
查询计算机系男生修了"数据库基础"的学生的姓名、性别、成绩。
第一种方式:
SELECT Sname 姓名,Ssex性别,SC.Grade成绩
desc select distinct student.sno,student.ssex,SC.cno,SC.grade from studen t,SC,course where
student.sdept="计算机系" and student.ssex="男" and
student.sno = SC.sno and SC.cno = (select cno from course where cname = "数据库基础")\G;
第二种方式
desc select b.sno,b.ssex,a.grade from (select sno,ssex,sname from student) as b,
(select sno,grade from SC where
cno = (select cno from course where cname= "数据库基础") ) as a where a.sno = b.sno \G;
(3) 总结
通常嵌套查询推荐使用join...on...语句,这样会减少临时表的创建,因为select子句会创建临时表
上述语句虽然都没使用join...on...语句,第二种方式还是比第一种方式少创建了一张临时表,
并且第二种方式将筛选条件具体到单表上,思路清晰,条件明确,可读性也非常好,性能也是优于第一种方式的。
mysql sql嵌套_mysql SQL优化之嵌套查询-遁地龙卷风相关推荐
- mysql 慢查询优化_MySQL 性能优化之慢查询
性能优化的思路 首先需要使用慢查询功能,去获取所有查询时间比较长的SQL语句 其次使用explain命令去查询由问题的SQL的执行计划(脑补链接:点我直达1,点我直达2) 最后可以使用show pro ...
- MySQL索引系列--索引的优化--LIKE模糊查询
原文网址:MySQL索引系列--索引的优化--LIKE模糊查询_IT利刃出鞘的博客-CSDN博客 简介 本文介绍MySQL的LIKE模糊查询索引的优化.主要是索引失效的解决方案. 索引 ...
- mysql 嵌套查询性能_mysql SQL优化之嵌套查询-遁地龙卷风
(-1) 写在前面 这篇随笔的数据使用的是http://blog.csdn.net/friendan/article/details/8072668#comments里的,里面有一些常见的select ...
- mysql 慢查询sql实例_Mysql sql慢查询监控脚本代码实例
1.修改my.cnf #整体的效果,全局开启表和日志文件都写,但是对于general_log只写表,对于slow_query_log,表和日志文件都记录. general_log=1#开启mysql执 ...
- mysql完成未完成_MYSQL SQL模式 (未完成)
设置和查询SQL模式 通过修改sql_mode变量的值来改变SQL模式. SQL模式可以在全局级别下设置,也可以在会话级别下设置.在数据库启动时和数据库运行时都可以对sql_mode的值进行修改. 在 ...
- mysql locate索引_MYSQL索引优化
1.查看sql的执行频率 MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供服务器状态信息.show [session|global] stat ...
- mysql 连接 监控_mysql监控优化(一)连接数和缓存
一.mysql的连接数 MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,连接数少的话,在大并发下连接数会不够用,会有很多线程在等待其他连接释放 ...
- mysql架构深入_mysql性能优化2:深入认识mysql体系架构
前言 本文将重点梳理mysql的体系架构,便于了解mysql的实现原理. Mysql体系结构 Client Connectors 接入方 支持协议很多 Management Serveices &am ...
- mysql concat 性能_MySQL性能优化(一)
性能优化一共有6个点: 1.MySQL基础操作 2.常用的SQL技巧 3.SQL语句优化 4.MySQL数据库优化 5.Myisam表锁 6.MySQL服务器优化 后期将逐步补全今天先分享下1 1.M ...
- mysql double 索引_MySQL架构优化实战系列1:数据类型与索引调优全解析
一.数据类型优化 数据类型 整数 数字类型:整数和实数 tinyint(8).smallint(16).mediuint(24).int(32).bigint(64) 数字表示对应最大存储位数,如 t ...
最新文章
- 武汉工程大学认识实习报告计算机,武汉工程大学化工认识实习报告
- 网站SEO优化没有捷径!
- [C#]最简单的Base64加密解密
- 2021届秋招算法岗真的要灰飞烟灭了吗?
- 做一个略调皮的个人主页--结构篇
- 未定义标识符 stringc/c++(20)_天津港20款丰田塞纳四驱顶配现车价格优惠
- 也谈基于Web的含工作流项目的一般开发流程
- 三、Linux常用命令——权限管理命令
- 【语音分析】基于matlab倒谱分析与MFCC系数计算【含Matlab源码 556期】
- java过滤空号了停机号_手机空号、停机、注销,空号检测为你去除无效号码
- 迅为恩智浦iTOP-IMX6开发平台
- CentOS查看端口
- 复联4定档 4.24——十一年21部漫威电影,用数据为你梳理口碑、票房、主演最佳......
- SpringCloud蓝绿发布
- Twitter上热门的技巧与思路
- linpack测试软件,【分享】linpack ——intel的pc算力测试软件
- 苹果计算机快捷键设置在哪里,苹果手机快捷键小方块怎么设置 【设置方法】...
- 微信支付--网页版-V3-(1)
- HTML5编写船上航行,描写帆船航行的诗句
- 6.1_[Java 数组]-数组与二重循环和鸡兔同笼及冒泡排序