Mysql 数据库查询语言(DQL) SELECT 查询语言

本文详细介绍了MySQL数据库查询语言中的SELECT查询,包括基本查询、条件查询、区间查询、IN和IS NULL操作、模糊查询、去重、IFNULL、字段与表的别名、排序、聚合函数、GROUP BY与HAVING子句、CASE WHEN THEN表达式以及LIMIT限制查询结果数量。通过实例解析,帮助读者全面理解SQL查询的各个关键点。
摘要由CSDN通过智能技术生成

1.基本的查询语句

SELECT * FROM tableName;
查询tableName表的内容。
当然,很不推荐用星号,因为星号查询慢,而且全局查询,会导致数据库运行紧张。

2.条件查询语句

SELECT * FROM tableName WHERE id = 1;
以上语句是在tableName 表中 查询 id 为 1 的 字段。
其关键字是WHERE在其之后可以加入判断条件,判断条件可以是逻辑运算符,关系运算符

3.区间查询语句

SELECT * FROM tableName WHERE fieldName BETWEEN a AND b
以上是区间查询语句,关键字为Between 字段a And 字段b
需要在between前面加你要查询的列名。在查询一个范围内的内容十分有效。

4.is in 查询语句

SELECT * FROM tableName WHERE name is null;
SELECT * FROM tableName WHERE id in (1,2,3);
以上两行代码是主要是使用了 is 和 in ,其 is 与 in 的含义 与 英语的意思一样,分别是 在…里 ,是… 上述代码翻译过来的意思就是,在tableName表中查询name为null也就是空的行,in查询的是id为1,2,3的行。

5.模糊查询语句

SELECT * FROM tableName WHERE name LIKE '_i&';
以上代码翻译为:在tableName 这个表中查询 name 这个字段名的第二位为i的全部内容,其中"_" 表示 “li”前面有一位模糊查询,“%”表示后面有不知道几位。 显示出来可能如下
这个是表:

idname
1lisi
2wangwu
3qiwu
4iluuo

这个是查询后的内容:

idname
1lisi
3qiwu

这就是模糊查询了。

6.查询去重语句

关键字:distinct

SELECT DISTINCT fieldName FROM tableName;
以上就是查询去重后的语句,显示出的内容不会有重复的,字段名可以用逗号隔开来选定多个字段。

7.ifnull

在sql语句中 null 与 任何数字相加都是null,但是有时候我们需要计算 数字与null 相加,结果为原结果于是有了ifnull 判断语句,格式如下。
SELECT fieldName1+IFNULL(fieldName2,0) FROM tableName;
这个括号里的以就是 把逗号前面的改成逗号后面的。

8.给字段/表起别名

SELECT fieldName as 别名 FROM 表名
SELECT fieldName as 别名 FROM 表名
很简单。

9.排序

关键字: order by asc(默认升序)/ desc(降序)
格式:SELECT * FROM tableName ORDER BY fieldName desc;
如果是升序就不用写了,默认是升序的。

10.聚合函数

SQL语句常用的聚合函数有SUM()取和 ,COUNT()行数,MAX()最大值,MIN()最小值 AVG()平均值 ROUND(fieldName,2)保留2位小数。
一般写在SELECT 和 FROM 中间,具体如下:
SELECT COUNT(字段名1),COUNT(DISTINCT 字段名2) FROM 表名;
补充:在这里插入图片描述

11. GROUP BY 语句

在使用聚合函数时, 比如COUNT函数和MAX 函数,的时候,如果要拿出不同信息来对比就需要 GROUP BY 语句,语言可能说不明白,上代码:
mysql> SELECT product 商品, COUNT(*) 购买量 FROM orderitem;
±-------±-------+
| 商品 | 购买量 |
±-------±-------+
| 电视机 | 8 |
±-------±-------+

mysql> SELECT product 商品, COUNT(*) 购买量 FROM orderitem GROUP BY product;
±-------±-------+
| 商品 | 购买量 |
±-------±-------+
| 冰箱 | 2 |
| 洗衣机 | 3 |
| 电视机 | 2 |
| 空调 | 1 |
±-------±-------+

两个 语句对比就可以看出加入和不加入 GROUP BY的差别,不加入GROUP BY 只有一个值,而用了GROUP BY 之后 出现不用值的就可以分开计算。

Having

having是group by的一个关键字,只能和group by同时出现,其域WHERE 的功能相似,但是支持函数。

12.Case When Then 语句

以上语句连用, 是查询语句时,分段语句,嗯…不太好说明上图。
SELECT name 姓名 ,
-> CASE
-> WHEN sal+comm <= 3000 THEN ‘贫民’
-> WHEN sal+comm > 3000 AND sal+comm <=5000 THEN ‘布衣’
-> WHEN sal+comm >5000 AND sal+comm <=10000 THEN ‘土豪’
-> WHEN sal+comm >10000 THEN ‘富豪’
-> END AS 收入评价
-> FROM emp;

±------------±---------+
| 姓名 | 收入评价 |
±------------±---------+
| zhangsan | 土豪 |
| lisiye | 贫民 |
| lilian | 土豪 |
| jacky | 土豪 |
| xiaohuang | 富豪 |
| waizui | 贫民 |
| sujialaotai | 富豪 |
| wnagzai | 土豪 |
| sujialaotai | 富豪 |
| wnagzai | 土豪 |
| xiaohuang | 布衣 |
| waizui | 贫民 |
| aihua | NULL |
±------------±---------+

大概就是这样。

13.LIMIT 0(从何处开始),0(查询几个)限制查询结果数量;

SELECT * FROM tableName LIMIT 1,5;
以上查询出的结果为从第二个开始查询,往下延顺五个。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值