1.Where 条件查询
比较运算符:
运算符
说明
>
 
<
 
=
 
>=
 
<=
 
!=或<>
 
In
在某集合内
between
在某范围内
In举例:
列出商品表里面cat_id列为4和5的列:
select goods_id,cat_id,goods_name from goods where cat_id in (4,10);
Between举例:
列出商品表里面商品价格在2000-3000元之间的商品
select * from goods where shop_price between 2000 and 3000;
逻辑运算符:
运算符
说明
not 或 !
逻辑非
or  或||
逻辑或
and  或&&
逻辑与
And和or举例:
列出商品价格在3000-5000之间或者在500-1000之间的商品:
select * from goods where shop_price >=3000 and shop_price <=5000 or shop_price >=500 and shop_price <=1000;
not举例:
列出cat_id 不是4和5的栏目:
select  * from goods where cat_id not in (4,5);
模糊查询:
案例:想查找“诺基亚”开头的所有商品
Like
%------通配任意字符
_------通配单个字符
select * from goods where goods_name like ‘诺基亚%’
2.Group by 分组
统计函数:
求最大:max()
求最小:min()
求总和:sum()
求平均:avg()
求总行数:count()
 
案例:查询每个栏目下面最贵的商品价格(cat_id即栏目)
select cat_id,max(shop_price) from goods group by cat_id;
案例:查询商品的库存总和
select  sum(goods_shuliang) from goods;
案例:查询商品的平均价格
select avg(shop_price) from goods;
案例:查询本店有多少商品,即多少行
select count(*) from goods;
复杂一点的:体会把列名当成变量看
案例:查询每个栏目下面积压的货款(货款=shop_price*goods_shuliang,栏目就是cat_id)
select cat_id,sum(shop_price * goods shuliang) from goods group by cat_id;
给列取别名:
select cat_id as lanmu from goods;
3.Having  筛选
where和having 的比较:where 对原始表起作用,对查询出来的结果不起作用,having则对查询出来的结果起作用,可以对查询出来的结果进行筛选。
案例:查询出本店价格比市场价低多少钱,并且把低200元以上的商品选出来:
select goods_id,goods_name,market_price – shop_price as sheng from goods having sheng > 200;
或者
select goods_id,goods_name,market_price – shop_price as sheng from goods where market_price – shop_price >200;
但是如果是以下这样,就是错误的。
select goods_id,goods_name,market_price – shop_price as sheng from goods where sheng > 200;
同上题,只不过查第三个栏目下比市场价低200元以上的商品
Select goods_id,cat_id,market_price – shop_price as sheng from goods where cat_id =3 having sheng >200;
更复杂一点:
案例:查询积压货款超过2万元的栏目,以及该栏目积压的货款
select  cat_id,sum(goods_shuliang * shop_price) as k from goods group by cat_id having k>20000;
更复杂案例:
设有成绩表stu如下:
姓名 科目 分数
张三 数学 90
张三 语文 50
张三 地理 40
李四 语文 55
李四 政治 45
王五 政治 30
赵六 地理 100
赵六 英语 99
赵六 化学 98
试查询两门及两门以上不及格同学的平局分
要求:只见一次select 完成
select 姓名,sum(分数<60) as gk,avg(分数) as pj from stu group by name having gk >= 2 ;
 
思路:
1.先查所有人的平均分,
select 姓名,avg(分数) from stu group by name;
2.看每个人的挂科情况
select 姓名,分数<60 from stu;
3.计算每个人的挂科科目
select 姓名,sum(分数<60) from stu group by name;
然后
select 姓名,sum(分数<60) as gk,avg(分数) as pj from stu group by name having gk >= 2 ;
4.Order by  排序
默认为升序排列:order by asc;
降序排列:order by shop_price desc;
select * from goods order by shop_price desc;
5.Limit     限制结果条数
limit [offset],[N]
offset:偏移量(可选)
N:取出条目
 
取第4-6行:
Limit 3,3;
取前三行:
Limit 3;
limit 0,3;
5个子句是有顺序要求的:where,group by,having,order by,limit
 
思考:取出每个栏目下的最贵的商品?
select * from (select goods_id,cat_id,goods_name,shop_price from goods order by cat_id asc,shop_price desc) as tmp group by cat_id;
注解:红色部分用小括号扩起来的部分是查询结果,我们用小括号扩起来就是把他当成一张表看,并且去别名为tmp,然后通过select * from对这张临时表进行查询。
 
 

五、select的5种子句的更多相关文章

  1. mysql中select五种子句和统计函数

    select 五种子句顺序 where 条件 group by 分组 having 把结果进行再次筛选 order by  排序 limit  取出条目 统计函数  max(列名)  求最大 min( ...

  2. mysql---select的五种子句学习(where、group by、having、order by、limit)

      mysql---select的五种子句学习(where.group by.having.order by.limit) 分类: Mysql学习2012-09-27 16:14 1533人阅读 评论 ...

  3. select 5种子句介绍

    一.Where 条件查询 ①where expression 用法:expression为真,则该行取出 运用场合 各种条件查询场合,如按学号查学生,按价格查商品,按发布时间查新闻等 ②select ...

  4. 小贝_mysql select5种子句介绍

    mysql select5种子句介绍 简要 一.五种字句 二.具体解释五种字句 一.五种字句 where.group by.having.order by.limit 二.具体解释五种字句 2.1.理 ...

  5. oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别

    create table  as select * from和insert into select from两种表复制语句区别 create table targer_table as select ...

  6. 【SQL必知必会笔记(3)】SELECT语句的WHERE子句数据过滤操作

    上个笔记主要介绍了利用SELECT语句检索单个/多个/所有列,并利用DISTINCT关键字检索具有唯一性的值.利用LIMIT/OFFSET子句限制结果:以及利用ORDER BY子句排序检索出的数据,主 ...

  7. select into from和insert into select from两种表复制语句区别

    select into from和insert into select from两种表复制语句都是将源表source_table的记录插入到目标表target_table,但两句又有区别. 第一句(s ...

  8. SQL SELECT TOP, LIMIT, ROWNUM 子句

    SQL SELECT TOP, LIMIT, ROWNUM 子句 SQL SELECT TOP 子句 SELECT TOP 子句用于规定要返回的记录的数目. SELECT TOP 子句对于拥有数千条记 ...

  9. mysql之select+五种子句的理解

    select 可以包含很复杂,很丰富的逻辑,最能考验一个人的逻辑思维能力和sql语句的掌握程度,我是这么认为,以前的很多次面试几乎都死在它手上,所以才有了今天的这篇日志,下定决心把它学好. where ...

随机推荐

  1. 5.Java基础_Java算术/字符/字符串/赋值运算符

    /* 算术/字符/字符串/赋值 运算符 */ public class OperatorDemo01 { public static void main(String[] args){ //算术运算符 ...

  2. vue调用高德地图:vue-amap

    前言:之前没有接触过页面调用地图的项目,某次面试,老板要求我用vue-amap调用高德地图,回家以后,我去网上查了一些案例和教程,看似很简单的引入调用,我却整整弄了一宿,还没弄出来!!!百般无奈之下, ...

  3. c# 第23节 外部方法

    本节内容: 1:外部方法是什么 2:外部方法的实现 1:外部方法是什么 2:外部方法的实现 样式: 实现方式:很少 用自己多加练习把

  4. NOIP2018普及组复赛游记

    2018年11月10日,NOIP2018普及组复赛. 这是我初中阶段最后一次复赛了. 和往常一样,我们在预定的早上7点,没有出发. 10分钟之后,人终于到齐了,于是出发了,一路无话. 到了南航,合照三 ...

  5. orchard 中文文档 中英对照版

    ORCHARD CMS a free, open source, community-focused Content Management System built on the ASP.NET MV ...

  6. RSA加密与解密

    /// <summary> /// RSA 公钥加密 /// </summary> /// <param name="content">要加密的 ...

  7. vs2017 升级后无法启动 z

    Visual Studio 2017 无法启动,进程中却有devenv.exe运行的解决办法 双击Visual Studio 2017,系统没有响应,在任务管理器中却发现devenv.exe 已经在运 ...

  8. Beyond Compare的自定义破解方法

    因本人是程序员的缘故,经常时不时就是几千几万行代码找不同,也就时常要用到一个超级无敌好用的文本对比软件:Beyond Compare. 然而破解成了一大问题,网上有很多注册码都已经被封了或者是注销掉了 ...

  9. cmake打印shell

    cmake链接库失败时,可通过打印路径下对应的lib来定位问题 execute_process(COMMAND ls -lt ${CMAKE_CURRENT_SOURCE_DIR}/lib #执行sh ...

  10. Layui新手教程----帮助小白少走弯路

    Layui的学习 Layui官方文档:https://www.layui.com/ 先说说为啥我接触到了layui,因为需要去参与做一个项目,被学长推荐去学习layui,用来处理一些前端的问题. La ...