MySQL入门实践(二)

本文详细介绍了MySQL中的查询操作,包括子查询、筛选、排序、分组和统计计算等内容,并通过具体的例子帮助读者理解如何使用这些查询语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL入门实践(二)

这篇博客主要讲查询操作,如果你对MySQL的安装和配置以及基础的创建操作有疑惑可以去看上一篇博客:
http://blog.youkuaiyun.com/kirivr/article/details/71170999

子查询语句

基本的SELECT语句

SELECT 列名 FROM 表名;
或者
SELECT 列名 AS 别名 FROM 表名;
或者
SELECT 列名 别名 FROM 表名;

这段语句中如果要查询多个列,那么使用,分割列名。如果想返回所有的列,可以使用通配符*:

SELECT1,列2 FROM 表名;
或者 
SELECT1 AS 别名1,列2 FROM 表名;
或者
SELECT1 别名1,列2 FROM 表名;

带筛选的SELECT语句

SELECT 列名 FROM 表名 WHERE ...

关键词WHERE能为查询提供筛选,在WHERE后可以使用表中的任意列来进行逻辑判断,例如从employee表中筛选出薪水salary大于3000的员工:

SELECT * FROM employee WHERE salary>3000;

结果:
运行结果


关键词WHERE的逻辑判断当然也能使用AND与,OR或,NOT非以及XOR异或等逻辑语句,例如:查询employee表中薪水大于3000或者id号不小于3的员工:

SELECT * FROM employee WHERE salary>3000 OR NOT id<3;

结果:
运行结果


WHERE中也能使用逻辑语句INNOT IN)。它的意义是判断是否存在(不存在)于给定的集合中,例如从employee表中选择in_dptdpt1dpt2的员工的姓名及id:

SELECT name,id FROM employee WHERE in_dpt IN (“dpt1”,“dpt2”);

结果:
这里写图片描述


除了这些常见的逻辑判断语句之外,MySQL还提供对字符串LIKE简单匹配语句以及REGEXP正则匹配语句。

LIKE语句比较简单,只有两个常用通配符——%匹配任意数目字符(包括零字符)。

​ ——_匹配任意单个字符。

例如从employee表中选出名字以“R”开头的员工:
这里写图片描述

SELECT * FROM employee WHERE name LIKE "R%";

employee表中选出名字以“J”开头,并且长度为3的员工:

SELECT * FROM employee WHERE name LIKE "J__";

结果:
这里写图片描述


利用正则表达式进行匹配的语法如下:

SELECT 列名 FROM 表名 WHERE 属性 REGEXP “正则表达式”;#扩展的正则表达式

具体正则表达式的语法,各位可以去下面网站简单学习。

对结果进行排序

关键词ORDER BY,结合关键词ASC(升序,默认),DESC(降序)可以对查询结果排序。例如从employee表中选择姓名和年龄,并按年龄从大到小排序:

SELECT name,age FROM employee ORDER BY age DESC;

结果:
这里写图片描述

分组查询

有些时候我们需要对数据先分组,然后对每个组分别进行操作,最后再将各自汇总。MySQL为此提供了关键词GROUP BY来解决这个问题,依旧用employee表为例,从employee表中按照属性in_dpt来分组,并在组内计算age的平均值,并按均值由小到大输出:

SELECT AVG(age) AS MEAN FROM employee GROUP BY in_dpt ORDER BY MEAN;

结果:
这里写图片描述
在使用GROUP BY时有几点必须要注意:

  1. GROUP BY最后会分组结果进行汇总,如果想以in_dpt分组,然后再输出age排序,这样只会得到每个分组中的一个age的排序结果:
    这里写图片描述
  2. GROUP BYORDER BY联用的时候一定要将GROUP BY放在前面。
  3. GROUP BY不能和WHERE联用,如果要在每个分组中作筛选要使用关键词having,它的用法基本与WHERE一样。

统计与计算

正如上节中使用的AVG函数一样,MySQL内置了丰富的多种函数,详细的可以前往官方文档查询,这里只列出了些可能常用的函数,默认都只有一个参数:

统计函数
名字用途
AVG求均值
COUNT统计数目
MAX求最大值
MIN求最小值
SUM求和
STDEV求标准差
VAR求变异数
数值函数
名字用途
ABS求绝对值
CEIL向上取整
FLOOR向下取整
MOD(x,y)求x模y
RAND()返回0-1之间的随机数
ROUND求四舍五入

参考资料

http://blog.youkuaiyun.com/weiwangchao_/article/details/12019345

http://www.cnblogs.com/icyJ/archive/2012/10/17/T_Sql.html

http://www.cnblogs.com/xp796/p/5213880.html

https://www.shiyanlou.com/courses/9/labs/74/document

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值