概述
(-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优化实例 优化前: pt-query-degist分析结果: # Query 3: 0.00 QPS, 0.00x concurrency, ID 0xDC6E62FA021C85B ...
mysql索引优化比普通查询速度快多少
mysql索引优化比普通查询速度快多少 一.总结 一句话总结:普通查询全表查询,速度较慢,索引优化的话拿空间换时间,一针见血,所以速度要快很多. 索引优化快很多 空间换时间 1.软件层面优化数据库查询 ...
SQL优化之慢查询和explain以及性能分析
性能优化的思路 首先需要使用慢查询功能,去获取所有查询时间比较长的SQL语句 使用explain去查看该sql的执行计划 使用show profile去查看该sql执行时的性能问题 MySQL性能优化 ...
MySQL SQL优化
一.优化数据库的一般步骤: (A) 通过 show status 命令了解各种SQL的执行频率. (B) 定位执行效率较低的SQL语句,方法两种: 事后查询定位:慢查询日志:--log-slow-qu ...
18.Mysql SQL优化
18.SQL优化18.1 优化SQL语句的一般步骤 18.1.1 通过show status命令了解各种SQL的执行频率show [session|global] status; -- 查看服务器状态 ...
Mysql - 性能优化之子查询
记得在做项目的时候, 听到过一句话, 尽量不要使用子查询, 那么这一篇就来看一下, 这句话是否是正确的. 那在这之前, 需要介绍一些概念性东西和mysql对语句的大致处理. 当Mysql Server ...
Mysql SQL优化&;执行计划
SQL优化准则 禁用select * 使用select count(*) 统计行数 尽量少运算 尽量避免全表扫描,如果可以,在过滤列建立索引 尽量避免在where子句对字段进行null判断 尽量避免在 ...
mysql数据库优化[千万级查询]
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
mysql sql优化及注意事项
sql优化分析 通过slow_log等方式可以捕获慢查询sql,然后就是减少其对io和cpu的使用(不合理的索引.不必要的数据访问和排序)当我们面对具体的sql时,首先查看其执行计划A.看其是否使用索 ...
随机推荐
【Python】用户登录三次锁定
这是从另外一个博客考过了的,借鉴一下,怕下次找不到1 # -*- coding:utf-8 -*- 2 3 #登录三次锁定用户 4 5 #用于计数(循环三次的判断) 6 count = 0 7 8 # ...
Ant学习---第二节:Ant添加文件夹和文件夹集的使用
一.创建 java 项目(Eclipse 中),结构图如下: 1.创建 .java 文件,代码如下: package com.learn.ant; public class HelloWorld { ...
使用Visual Studio 2013 从头构建Web表单
在这篇文章中,我将采取VS 2013中特定的模板,也就是没有身份验证的Web表单模板,并说明如何构建这个项目从头开始.在本教程的最后,你会最终有一个模板,内容几乎是一样的使用Web表单模板没有认证(文 ...
Tomcat中更改网站根目录和默认页的配置方法
1.tomcat原来的默认根目录是http://localhost:8080,如果想修改访问的根目录,可以这样: 找到tomcat的server.xml(在conf目录下),找到:
代码的完整性:打印1到最大的n位数
输入数字n,按顺序打印出从1到最大的n位十进制数. 比如,输入3,则打印出1,2,3,.....,一直到最大的3位数即999. 全排列打印 public class Main { public sta ...
Jenkins+Ansible+Gitlab自动化部署三剑客-gitlab本地搭建
实际操作 准备linux初始环境 关闭防火墙 systemctl stop firewalld 开机自己关闭 systemctl disable firewalld 设置安全配置 为关闭 vim /e ...
salt常用模块及API
saltstack提供了非常丰富的功能模块,涉及操作系统的基础功能,常用工具支持等,更多模块信息见官网模块介绍:https://docs.saltstack.com/en/latest/ref/mod ...
HDU 5465 Clarke and puzzle Nim游戏+二维树状数组
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5465 Clarke and puzzle Accepts: 42 Submissions: 26 ...
最后
以上就是拉长路灯为你收集整理的mysql 嵌套查询性能_mysql SQL优化之嵌套查询-遁地龙卷风的全部内容,希望文章能够帮你解决mysql 嵌套查询性能_mysql SQL优化之嵌套查询-遁地龙卷风所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复