在上篇博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,下面进行数据检索和过滤操作。

1. Select子句使用顺序

  select--->DISTINCT--->from--->where--->GROUP BY--->HAVING--->ORDER BY--->LIMIT

(1)DISTINCT

  select verd_id from products;

  使用DISTINCT检索出不同值的列表
  select DISTINCT verd_id from products;

(2)Group By

  首先看下下面3个查询语句的结果:

  select count(*) from products;
  select * from products where verd_id = 1003;
  select count(*) from products where verd_id = 1003;

(1)(2) (3)

  (1)表示products表的总项数14

  (2)列出了verd_id为1003的所有项

  (3)显示verd_id为1003的总项数7

  再看下面语句的输出结果:

  select verd_id, count(*) as num_prods from products GROUP BY verd_id;

  结果一目了然,分别对verd_id进行分组,并显示各组的总项数。

  注:如果再select中使用表达式,则必须再GROUP BY字句中指定相同的表达式,不能使用别名。

(3)HAVING

  HAVING语句主要是对分组语句进行过滤,WHERE过滤指定的是行而不是分组,事实上,WHERE没有分组的概念

  HAVING与WHERE的唯一差别就是WHERE过滤行,HAVING过滤分组

  select verd_id, count(*) as num_prods from products GROUP BY verd_id HAVING count(*)>2;

  

  select verd_id, count(*) as num_prods from products GROUP BY verd_id HAVING verd_id = 1003;

  

(4)ORDER BY

  select cust_name,cust_address,cust_zip from customers;

  

  对cust_zip排序

  select cust_name,cust_address,cust_zip from customers ORDER BY cust_zip;

  

  对多列进行排序

  select cust_name,cust_address,cust_zip from customers ORDER BY cust_address,cust_zip;

  

  指定排序方向:默认升序(ASC),为了进行降序排序,必须指定DESC关键字

  select cust_name,cust_address,cust_zip from customers ORDER BY cust_zip DESC;

  

(5)LIMIT

  LIMIT关键子对输出的行数限制,指定其实行和行数

  select cust_name,cust_address,cust_zip from customers ORDER BY cust_zip DESC LIMIT 2,4;

  

(6)综合使用

  select verd_id, count(*) as num_prods from products GROUP BY verd_id HAVING count(*) > 0 ORDER BY verd_id DESC LIMIT 1,3;

  

MySql必知必会实战练习(二)数据检索的更多相关文章

  1. MySql必知必会实战练习(三)数据过滤

    在之前的博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,MySql必知必会实战练习(二)数据检索中介绍了所有的数据检索操作,下面对数据过滤操作进行总结. 1. whe ...

  2. mysql必知必会

    春节放假没事,找了本电子书mysql必知必会敲了下.用的工具是有道笔记的markdown文档类型. 下面是根据大纲已经敲完的章节,可复制到有道笔记的查看,更美观. # 第一章 了解SQL## 什么是S ...

  3. 《MySQL必知必会》整理

    目录 第1章 了解数据库 1.1 数据库基础 1.1.1 什么是数据库 1.1.2 表 1.1.3 列和数据类型 1.1.4 行 1.1.5 主键 1.2 什么是SQL 第2章 MySQL简介 2.1 ...

  4. 《mysql 必知必会》 速查指南

    目录 增 添加一整行 插入多行 删 删除指定行 删除所有行 改 查 简单检索 结果筛选 结果排序 结果过滤 创建字段 处理函数 数据分组 其他高级用法 文章内容均出自 <MySQL 必知必会&g ...

  5. 《MySQL 必知必会》读书总结

    这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...

  6. mysql学习--mysql必知必会1

     例如以下为mysql必知必会第九章開始: 正則表達式用于匹配特殊的字符集合.mysql通过where子句对正則表達式提供初步的支持. keywordregexp用来表示后面跟的东西作为正則表達式 ...

  7. 《MySQL必知必会》[01] 基本查询

    <MySQL必知必会>(点击查看详情) 1.写在前面的话 这本书是一本MySQL的经典入门书籍,小小的一本,也受到众多网友推荐.之前自己学习的时候是啃的清华大学出版社的计算机系列教材< ...

  8. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  9. mysql必知必会系列(一)

    mysql必知必会系列是本人在读<mysql必知必会>中的笔记,方便自己以后查看. MySQL. Oracle以及Microsoft SQL Server等数据库是基于客户机-服务器的数据 ...

随机推荐

  1. INFO hdfs.DFSClient: Exception in createBlockOutputStream java.net解决办法

    自己安装好Hadoop2.7.x之后,发现dfs中的/bin/hadoop fs -put命令不能够使用,报错如下: [hadoop@master bin]$ ./hadoop fs -put ../ ...

  2. linux命令(6/11)--修改文件的用户组chgrp和文件所有者chown

    在lunix系统里,文件或目录的权限的掌控以拥有者及所诉群组来管理.可以使用chgrp指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以.Chgrp命令就是change group的 ...

  3. JavaScript创建类的三种方式

    //第一种 创建类方法. // 用方法模拟 构造函数. function classobj() { this.name = 'xiaoming'; } classobj.text = 'text'; ...

  4. Django 中间件简介

    Django 中间件简介 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. ...

  5. 【传感器】BMA253 数字,三轴加速度传感器

    参考文档:BMA253E DataSheet 参考文档链接 密码:9new BMA253 数字,三轴加速度传感器 关键特性: 关键特性   封装方式 LGA封装(12pins),长*宽(2mm*2mm ...

  6. SpringBoot 通用Error设计

    在项目中需要设计统一的错误消息,通常使用枚举类定义"错误码"与"错误消息": 并且也可以做错误消息自定义. 定义通过错误接口类:CommonError publ ...

  7. windows技巧--一次关闭所有资源管理器目录,文件夹目录

    每天开机工作一段时间以后,你可能会和我一样,打开了很多的文件目录,于是一个一个的点窗口关闭.于是想有没有一次关闭所有目录的办法~~咚咚咚,经过一番寻觅,下面是我找到的办法 新建bat文件 close_ ...

  8. Linux下MySQL 5.6.24的编译安装与部署

    MySQL 5.6正式版发布了,相对于5.5版本作出了不少改进,其源码安装配置方式也有所变化,本文根据实际操作,不断尝试,精确还原了安装的具体步骤. 在Linux下安装MySQL前,先确认卸载系统自带 ...

  9. MFC 任务管理器设计

    在学习界面设计,因为对一些控件不熟悉,所以也参考了别人的.核心代码如下. void CTasklistDlg::Expand() { m_list.SetExtendedStyle(LVS_EX_GR ...

  10. plot 含缺失值的图

    x = np.linspace(1,10,25) y = (x-4)**2 index = random.sample(range(25),5) # 从1-24中不放回随机抽取5个数 y[index ...