MySQL 学习<六> 查询语句

数据查询不仅仅只是简单返回数据库中存储的数据,还应根据需要对数据进行筛选,以及确定什么样的格式显示。


基本查询语句

语法:SELECT
          {* | <字段列表>}
[
FROM  <表一>,<表二>...
[WHERE  <表达式>]
[GROUP  BY  <group  by  definition>]
[HAVING  <expression>   [{<operator>  <expression>}...]]
[ORDER  BY  <order  by  definition>]
[LINIT  [<offset>,]  <row count>]
]

SELECT  [字段1,字段2,...,字段n]
FROM  [表或视图]
WHERE  [查询条件];

其中:
{* | <字段列表>}  包含星号通配符选字段列表,表示查询的字段,其中字段列至少包含一个字段名称,如果要查询多个字段,多个字段之间用逗号隔开,最后一个字段后不要加逗号;
FROM  <表一>,<表二>...  表1和表2等表示要查询数据的来源,可以是单个或多个;
[WHERE  <表达式>]  是可选项,如果选择该项,该限定查询行必须满足的查询条件;
[GROUP  BY  <group  by  definition>]  指按照什么样的顺序显示查询出来的数据,可以进行升序(ASC)、降序(DESC);
[LINIT  [<offset>,]  <row count>]  表示要显示查询出来的数据条数。

下面为了方便演示,故提前已经将示例用表已经建立好:







单表查询

查询所以记录语句:SELECT * FROM  表名,上图已经有所演示了;
查询指定列段语句:SELECT  列名  FROM  表名;
查询多个列段语句:SELECT  字段1,字段2,...,字段n   FROM  表名;
查询指定记录语句:SELECT  字段1,字段2,...,字段n    FROM  表名   WHERE  查询条件;




带BETWEEN   AND的范围查询

语法示例:SELECT  f_name, f_price FROM fruits WHERE  f_price BETWEEN 5.0 AND 10.2;


带LIKE的字符匹配查询

查找所有以‘a’开头的水果。
1.‘%’匹配任意长度的字符,包括零字符;


2.下划线‘_’一次只能匹配一个字符;


查询空值

语法:SELECT ...FROM ... WHERE ...IS  NULL;

带AND的多条件查询

示例如下:


带OR的多条件查询

示例如下:


查询结果不重复

示例如下:


查询结果排序

降序:ORDER BY ...DESC;
升序:ORDER BY ...ASC;
示例如下:




分组查询

1.创建分组GROUP BY
示例如下:


2.使用HAVING过滤分组
示例如下:


3.GROUP  BY  和  ORDER  BY 一起使用
示例如下:


4.使用LIMIT限制行数
语法示例:LIMIT  [位置偏移量,]  行数

集合函数查询

有时候我们并不需要返回实际表中的数据,而只是对数据进行总结,这是我们就会用到集合函数查询。

COUNT()函数

COUNT(*)计算表中总的行数,不管某列是否有数值或者为空值;
COUNT(字段名)计算指定列下总的行数,计算时忽略空值的行;

SUM()函数

SUN()返回指定列值的和,可以和GRUOP  BY 一起使用,计算每个分组的和。

AVG()函数

返回指定列数据的平均值,可以和GRUOP  BY 一起使用,计算每个分组的均值。

MAX()函数

返回指定列中的最大值,可以和GRUOP  BY 一起使用,计算每个分组的最大值。

MIN()函数

返回指定列中的最小值,可以和GRUOP  BY 一起使用,计算每个分组的最小值。


连接查询

通过连接查询可以实现多个表的查询,主要包括内连接和外连接。

内连接查询(INNER JOIN)

语法示例:
SELECT 表1.字段名1,表1.字段名2,...,表2.字段名1,表2.字段名2,...
FROM  表1  INNER JOIN  表2
ON  表1.目标字段名 = 表2.目标字段名
这里附上一篇文章链接: MySQL 高级查询

外连接查询

包括LEFT JOIN(左连接):返回包括左边中的所有记录和右表中连接字段相等的记录;
RIGHT JOIN(右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。

复合连接查询

复合连接查询是在连接查询过程中,通过添加过滤条件,限制条件查询的结果,是查询更加准确。

子查询

1.带ANY、SOME关键字的子查询

2.带ALL关键字的子查询
3.带EXISTS关键字的子查询
4.带IN关键字的子查询
5.带比较运算符的子查询,例如‘<’,  '>'  , '<=' , '>=' , '!='等


合并查询结果 

利用UNION关键字合并多天SELECT语句查询的结果。
示例如下:

这里提示一点:
UNION ALL的功能是不删除重复行;而UNION是删除重复行;UNION ALL关键字执行时所需要的资源较少,所以尽可能的使用它。

使用正则表达式查询

下图是常用字符匹配列表



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值