如何在SQL查询中正确使用where、group by和order by语句?

一、where语句

where语句用于限制查询结果,只返回符合条件的记录。

1.基本用法:where后面写上限制条件,条件可以是比较运算、逻辑运算符或者函数运算。

“`sql
SELECT column1, column2,…columnN FROM table_name WHERE [condition];
“`

2.比较运算符:=、、=、或!=

SELECT * FROM customers WHERE customer_id = 1;                  // 返回ID为1的记录
SELECT * FROM customers WHERE customer_name  'Peter';          // 返回名字不是Peter的记录
SELECT * FROM orders WHERE order_date < '2021-09-01';            // 返回日期早于2021年9月1日的记录

3.逻辑运算符:and、or、not

SELECT * FROM customers WHERE city = 'New York' and country = 'USA';  // 返回纽约市的美国客户
SELECT * FROM customers WHERE city = 'Paris' or city = 'London';      // 返回巴黎或伦敦的客户
SELECT * FROM customers WHERE not country = 'USA';                    // 返回非美国国籍的客户

4.函数运算符:通常和比较运算符结合使用,例如LIKE,BETWEEN,IN,IS NULL等等。

SELECT * FROM customers WHERE customer_name LIKE 'Ana%';                             // 返回名字以Ana开头的客户,%代表任意字符
SELECT * FROM customers WHERE order_date BETWEEN '2021-01-01' AND '2021-12-31';      // 返回2021年订单记录
SELECT * FROM customers WHERE country IN ('USA', 'Canada', 'Mexico');                // 返回美国、加拿大或墨西哥的客户
SELECT * FROM customers WHERE phone IS NULL;                                         // 返回没有电话号码的客户

二、group by语句

group by语句用于将查询结果按照指定列进行分组,然后对每个分组进行汇总计算。

1.基本用法:group by后面写上列名,可以多个列名进行分组。同时,需要在select语句中使用聚合函数对分组后的结果进行计算。

“`sql
SELECT column1, SUM(column2) FROM table_name WHERE [condition] GROUP BY column1;
“`

2.聚合函数:常用的聚合函数有AVG、COUNT、MAX、MIN和SUM。

SELECT country, COUNT(*) FROM customers GROUP BY country;                  // 返回每个国家的客户数目
SELECT country, AVG(bonus) FROM employees GROUP BY country;                // 返回每个国家员工的平均奖金
SELECT country, MAX(salary) FROM employees GROUP BY country;              // 返回每个国家员工的最高薪资
SELECT country, MIN(age) FROM employees GROUP BY country;                  // 返回每个国家员工的最低年龄
SELECT country, SUM(sales) FROM orders GROUP BY country;                   // 返回每个国家订单销售额之和

三、order by语句

order by语句用于对查询结果进行排序。

1.基本用法:order by后面写上排序的列,可以多个列名进行排序。默认为升序排列,可以使用DESC进行降序排列。

“`sql
SELECT column1, column2,…columnN FROM table_name WHERE [condition] ORDER BY column_name1 [ASC|DESC], column_name2 [ASC|DESC]…;
“`

2.排序规则:对于字符串类型的列,按照字典顺序排序;对于数值类型的列,按照数值大小排序;对于日期类型的列,按照时间顺序排序。

SELECT * FROM customers ORDER BY customer_name;                      // 按照名字升序排列
SELECT * FROM customers ORDER BY customer_name DESC;                 // 按照名字降序排列
SELECT * FROM orders ORDER BY order_date;                            // 按照日期升序排列

四、综合示例

下面是一个综合示例,同时使用了where、group by和order by语句。将查询出大于50岁且工资高于30000的员工,然后按照国家和城市进行分组,计算出每个城市的平均工资,并按照平均工资降序排列。

“`sql
SELECT country, city, AVG(salary) as avg_salary FROM employees WHERE age > 50 AND salary > 30000 GROUP BY country, city ORDER BY avg_salary DESC;
“`

参考文献

1. MySQL官方文档:https://dev.mysql.com/doc/

2. W3School:https://www.w3schools.com/sql/

3. SQLZOO:https://sqlzoo.net/

原创文章,作者:UIWQ,如若转载,请注明出处:https://www.506064.com/n/131253.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
UIWQUIWQ
上一篇 2024-10-03 23:44
下一篇 2024-10-03 23:44

相关推荐

  • 如何在PyCharm中安装OpenCV?

    本文将从以下几个方面详细介绍如何在PyCharm中安装OpenCV。 一、安装Python 在安装OpenCV之前,请确保已经安装了Python。 如果您还没有安装Python,可…

    编程 2025-04-29
  • 如何在Python中实现平方运算?

    在Python中,平方运算是常见的数学运算之一。本文将从多个方面详细阐述如何在Python中实现平方运算。 一、使用乘法运算实现平方 平方运算就是一个数乘以自己,因此可以使用乘法运…

    编程 2025-04-29
  • Python3支持多行语句

    Python3是一种高级编程语言,开发人员可以轻松地使用该语言编写简单到复杂的代码。其中Python3支持多行语句,方便开发人员编写复杂的代码,提高代码的可读性和可维护性。 一、使…

    编程 2025-04-29
  • 如何在Python中找出所有的三位水仙花数

    本文将介绍如何使用Python语言编写程序,找出所有的三位水仙花数。 一、什么是水仙花数 水仙花数也称为自恋数,是指一个n位数(n≥3),其各位数字的n次方和等于该数本身。例如,1…

    编程 2025-04-29
  • Python for循环语句打印九九乘法表

    本篇文章将详细介绍如何使用Python的for循环语句打印九九乘法表。打印九九乘法表是我们初学Python时经常练习的一项基础操作,也是编写Python程序的基本能力之一。 1、基…

    编程 2025-04-29
  • 如何在树莓派上安装Windows 7系统?

    随着树莓派的普及,许多用户想在树莓派上安装Windows 7操作系统。 一、准备工作 在开始之前,需要准备以下材料: 1.树莓派4B一台; 2.一张8GB以上的SD卡; 3.下载并…

    编程 2025-04-29
  • Hibernate日志打印sql参数

    本文将从多个方面介绍如何在Hibernate中打印SQL参数。Hibernate作为一种ORM框架,可以通过打印SQL参数方便开发者调试和优化Hibernate应用。 一、通过配置…

    编程 2025-04-29
  • Python中while语句和for语句的区别

    while语句和for语句是Python中两种常见的循环语句,它们都可以用于重复执行一段代码。然而,它们的语法和适用场景有所不同。本文将从多个方面详细阐述Python中while语…

    编程 2025-04-29
  • 如何在代码中打出正确的横杆

    在编程中,横杆是一个很常见的符号,但是有些人可能会在打横杆时出错。本文将从多个方面详细介绍如何在代码中打出正确的横杆。 一、正常使用横杆 在代码中,直接使用“-”即可打出横杆。例如…

    编程 2025-04-29
  • Python中自定义函数必须有return语句

    自定义函数是Python中最常见、最基本也是最重要的语句之一。在Python中,自定义函数必须有明确的返回值,即必须要有return语句。本篇文章将从以下几个方面对此进行详细阐述。…

    编程 2025-04-29

发表回复

登录后才能评论