文档章节

MYSQL中一些疑问

H
 Haver
发布于 2016/12/08 11:00
字数 446
阅读 0
收藏 0

having&where区别:

     having与where类似,可以筛选数据,where后的表达式怎么写,having后就怎么写

                    where针对表中的列发挥作用,查询数据

                    having对查询结果中的列发挥作用,筛选数据

                    #查询本店商品价格比市场价低多少钱,输出低200元以上的商品

                    select goods_id,good_name,market_price - shop_price as s from goods having s>200 ;

                    //这里不能用where因为s是查询结果,而where只能对表中的字段名筛选

                    如果用where的话则是:

                    select goods_id,goods_name from goods where market_price - shop_price > 200;

mysql子查询:

        1、where型子查询

                (把内层查询结果当作外层查询的比较条件)

                #不用order by 来查询最新的商品

                select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods);

                #取出每个栏目下最新的产品(goods_id唯一)

                select cat_id,goods_id,goods_name from goods where goods_id in(select max(goods_id) from goods group by cat_id);

 

        2、from型子查询

                (把内层的查询结果供外层再次查询)

                #用子查询查出挂科两门及以上的同学的平均成绩

                    思路:

                        #先查出哪些同学挂科两门以上

                        select name,count(*) as gk from stu where score < 60 having gk >=2;

                        #以上查询结果,我们只要名字就可以了,所以再取一次名字

                        select name from (select name,count(*) as gk from stu having gk >=2) as t;

                        #找出这些同学了,那么再计算他们的平均分

                        select name,avg(score) from stu where name in (select name from (select name,count(*) as gk from stu having gk >=2) as t) group by name;

 

        3、exists型子查询

                (把外层查询结果拿到内层,看内层的查询是否成立)

                #查询哪些栏目下有商品,栏目表category,商品表goods

                    select cat_id,cat_name from category where exists(select * from goods where goods.cat_id = category.cat_id);

 

 

 

© 著作权归作者所有

共有 人打赏支持
H
粉丝 1
博文 33
码字总数 7253
作品 0
深圳
后端工程师
数据库连接池的一点小疑问

在项目开发中遇到这样的问题 public class demo1 {public static void main(String[] args) {User user = new User();for(int i=0;i<1000;i++){daoService.insert(user);}} } 这是一个程序批......

kong_resty
2013/03/21
837
4
Mysql 主从复制及读写分离的疑问

本人这两天在研究mysql读写分离,于是到处度娘。得出的结论是,读写分离要进行主从复制。所以先对mysql进行了主从配置,很简单。一切ok了。 但是随之有个很菜鸟的疑问,按照之前的想法,mas...

wonailmy
2017/07/06
115
2
我们需要MySQL5.0拥有5.4的性能吗?

带有Innodb 引擎的MySQL 5.4 看起来要比MySQL5.0的性能好很多-这是由于这个版本来自google集成的locking 和 IO Patchs(类似Percona patches),一些特别的修善比如不同的innodbthread_conc...

老枪
2009/05/03
1K
0
Spring Transaction + MyBatis SqlSession事务管理机制研究学习

原文地址:Spring Transaction + MyBatis SqlSession事务管理机制研究学习 线上的系统中,使用的是Spring+Mybatis+Mysql搭建的框架,由于客户需要,最近一直在对性能提升部分进行考虑,主要是...

Realfighter
2015/01/10
0
1
MYSQL老密码与php版本扩展关系

mysql的用户密码保存在数据库中是加密的。不可逆的。当需要创建一个新的帐号,如果是使用insert插入一条记录, mysql提供了一个函数PASSWORD(),对明文进行加密。所以有如下sql: insert int...

wangtaotao
2012/04/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Python介绍

Python介绍 一、简介 Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载等,有益于增强源代码的复用性。Python相对于Lisp这种传统的函数式编程语言,P...

星汉
18分钟前
1
0
VS_设置护眼背景色

工具---->选项---->环境---->字体和颜色:

一个小妞
20分钟前
0
0
Flask跨域请求的处理方法

在Flask开发RESTful后端时,前端请求会遇到跨域的问题。下面是解决方法: 使用 flask-cors库可以很容易的解决 pip install flask-cors 两种方法,一个是全局/批量的,一个是单一独立的: 安全...

ykbj
21分钟前
5
0
Pandas学习记录-Series

系列(Series)是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组。轴标签统称为索引。 pandas.Series Pandas系列可以使用以下构造函数创建 - pandas.Series( dat...

kipeng300
29分钟前
1
0
可以实现内网穿透的几款工具

最近没什么事情,看了一些关于内网穿透的文章,因我本身已是做微信开发相关的工作,对这部分关注的比较多,现分享给大家。 首先说下内网穿透的原理。 NAPT原理 在NAT网关上会有一张映射表,表...

哥本哈根的小哥
30分钟前
29
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部