MySql必知必会实战练习(二)数据检索

在上篇博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,下面进行数据检索和过滤操作。1.Select子句使用顺序select>DISTINCT>f

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

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

1. Select子句使用顺序

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

(1)DISTINCT

  select verd_id from products;

MySql必知必会实战练习(二)数据检索

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

MySql必知必会实战练习(二)数据检索

(2)Group By

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

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

(1)MySql必知必会实战练习(二)数据检索(2)MySql必知必会实战练习(二)数据检索 (3) MySql必知必会实战练习(二)数据检索

  (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;

MySql必知必会实战练习(二)数据检索

  结果一目了然,分别对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;

  MySql必知必会实战练习(二)数据检索

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

  MySql必知必会实战练习(二)数据检索

(4)ORDER BY

  select cust_name,cust_address,cust_zip from customers;

  MySql必知必会实战练习(二)数据检索

  对cust_zip排序

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

  MySql必知必会实战练习(二)数据检索

  对多列进行排序

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

  MySql必知必会实战练习(二)数据检索

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

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

  MySql必知必会实战练习(二)数据检索

(5)LIMIT

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

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

  MySql必知必会实战练习(二)数据检索

(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必知必会实战练习(二)数据检索

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120054.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 运维常识:什么是关系数据库?

    运维常识:什么是关系数据库?关系数据库是最流行和最常用的数字数据库 在本文中 我们将讨论关系数据库 它的工作原理 示例 关系数据库和非关系数据库之间的差异等等 什么是关系数据库 一个关系数据库是基于组织彼此相关的数据点的模型数据的集合 该术语最初由 IBM 研究实验室的英国计算机科学家 EdgarFrank Ted Codd 于 1970 年引入 关系数据库将有价值的信息或数据组织成表格 这些表格可以根据彼此共有的数据链接到其他几个表格 它使用户能够使用单个查询从一个或多个相关表中的数据构建新数据集 关系数据库使用的数据结构

    2025年7月23日
    8
  • php中_initialize()函数与 __construct()函数的区别说明

    php中_initialize()函数与 __construct()函数的区别说明

    2022年2月8日
    54
  • goland永久激活3月最新在线激活[通俗易懂]

    goland永久激活3月最新在线激活,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    70
  • 面试被问到CAS原理,触及知识盲区,脸都绿了!

    面试被问到CAS原理,触及知识盲区,脸都绿了!CAS底层原理想要了解CAS底层原理,那么我们先来了解一下JUC包的一个类即:AtomicInteger。那么这个AtomicInteger有什么用呢?我们平时开发或多或少都会使用到i++这个操作,那么稍微了解多线程的同学都会知道,在多线程环境下,i++操作是线程不安全的操作,譬如下面这段代码:publicclassMain{privateinti=0;publicvoidaddI(){i++;}..

    2022年10月17日
    3
  • postgresql 14 服务器打不开的问题(5432服务器端口失败)

    postgresql 14 服务器打不开的问题(5432服务器端口失败)问题描述:(*注服务器端口默认5432,我的端口号是安装时自己改的)*注意:安装到语言选项时选择C而不是默认安装时的警告:postsql安装后步骤出现问题,安装可能未正确完成,启动数据库服务失败解决方案:打开服务找到postgresql-x64这个服务右键属性就的可以启动服务了psql控制台也可以正常进入了:…

    2022年6月19日
    26
  • idea如何查找替换_pycharm查找替换

    idea如何查找替换_pycharm查找替换在平时敲代码的时候经常碰到,咦,这个变量名好像不太合适,但又写了好多这时候可以怎么办呢?Pycharm里面给我们准备了替换功能————–windows电脑—————1.Ctrl+r替换2.Ctrl+Shift+F全局查3.Ctrl+Shift+R全局替换————–MAC电脑—————1.command+F全局查找2.command+R全局替换…

    2022年8月29日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号