前言
上篇博文给大家分享介绍了MySQL的一些基础语法知识,这篇博文整理了一下MySQL的DQL语言,分享出来一起学习交流…
话不多说,直接上干货:
基本查询语句
基础查询
SELECT 查询列表 FROM 表名;
#查询表中的单个字段
SELECT 单个字段名 FROM 表名;
#查询表中的多个字段
SELECT 字段1,字段2,字段3 FROM 表名;
查询表中所有字段
#方式一:
SELECT 所有列字段 FROM 表名;
#方式二:
SELECT * FROM 表名;
函数、常量、表达式的查询
#查询常量值
SELECT 常量值;
#查询表达式
SELECT 100%98;
#查询函数(查询数据库版本)
SELECT VERSION();
起别名查询
#起别名
#1、便于理解
#2、如果查询的字段有重名的情况,使用别名可以区分开来
#方式一:as
SELECT 100%98 AS 别名;
SELECT 列字段名 AS 别名 FROM 表名;
#方式二:空格
SELECT 列字段名(这里是空格位)别名 FROM 表名;
引用+号的查询:
#+号的作用:mysql的+仅仅作为运算符
#1、
SELECT 100+90;#加法运算
SELECT '123'+90;#一个为非数值型,转换成功则做加法运算
SELECT 'john'+90;#转换失败,字符型值为0-->0+90=90;
SELECT NULL+10;#一方为null,结果为null
过滤和排序查询
过滤查询
含义:
使用WHERE 子句,将不满足条件的行过滤掉。 WHERE 子句紧随 FROM 子句。
过滤查询的基本语法:
#过滤查询:
SELECT 查询列表 FROM 表名 WHERE 条件;
过滤查询的分类:
扫描二维码关注公众号,回复:
11329561 查看本文章
- 按条件表达式筛选:
> < = != <> >= <=
; - 按逻辑表达式筛选 :
and or not
; - 模糊查询 :
like between and in is null
;
按条件表达式筛选
:
SELECT * FROM 表名 WHERE 列字段>指定判断值;#大于
SELECT * FROM 表名 WHERE 列字段<指定判断值;#小于
SELECT * FROM 表名 WHERE 列字段=指定判断值;#等于
SELECT * FROM 表名 WHERE 列字段!=指定判断值;#不等于
SELECT * FROM 表名 WHERE 列字段<>指定判断值;#不等于
SELECT * FROM 表名 WHERE 列字段>=指定判断值;#大于等于
SELECT * FROM 表名 WHERE 列字段<=指定判断值;#小于等于
按逻辑表达式筛选
:
SELECT * FROM 表名 WHERE 列字段 >=指定判断值AND 列字段 <=指定判断值;
SELECT * FROM 表名 WHERE 列字段 >指定判断值or 列字段 < 指定判断值;
SELECT * FROM 表名 WHERE NOT(列字段>指定判断值);
模糊查询类型
:
SELECT 列字段 FROM 表名 WHERE 列字段 LIKE '_a%';#...a..
#查询名字中的第二个字符为_的名字
SELECT 名字 FROM 表名 WHERE LIKE '_任意字符_%' ESCAPE '任意字符';
SELECT * FROM 表名 WHERE 列字段 like 'a%';#a.....
SELECT * FROM 表名 WHERE 列字段 BETWEEN 1 and 3;#2
SELECT * FROM 表名 WHERE 列字段 IN('对应筛选值1','对应筛选值1');
#上面语句等同于
SELECT * FROM 表名 WHERE 列字段='对应筛选值1' or 列字段='对应筛选值2';
#is null
SELECT * FROM 表名 WHERE 列字段 IS NULL
<=>
的使用和含义,以及和 is null
的区别:
#<=>--->判断为空
SELECT * FROM 表名 WHERE 列字段 <=> 指定数值;
#is null 仅仅可以判断null值,可读性较高,建议使用;
#<=>:既可以判断null值,又可以判断普通的数值,可读性较低
排序查询
基本语法:
#语法
SELECT 查询列表 FROM 表名 WHERE 筛选条件 ORDER BY 排序的字段或者表达式;
排序查询的注意点:
- 默认
asc
升序,可省略; desc
降序;order by
子句可以支持单个字段、别名、表达式、函数、多个字段;- 在查询语句的最后面,除了
limit
子句
按单个字段排序
:
SELECT * FROM 表名 ORDER BY 列字段 DESC;
添加筛选条件再排序
:
SELECT * FROM 表名 WHERE 列字段 > 判断的数值 ORDER BY 排序字段 DESC;
按函数排序
:
SELECT LENGTH(列字段),列字段 FROM 表名 ORDER BY LENGTH(列字段) DESC;
多个字段排序
:
SELECT * FROM 表名 ORDER BY 排序列1 DESC ,排序列2 ASC;
分组查询之组函数
概念: 用作统计使用,又称为聚合函数或统计函数或分组函数
分类:
sum
求和
SELECT SUM(计算列) FROM t_mysql_employees;
avg
平均值
SELECT AVG(计算列) FROM 表名;
max
最大值
SELECT MIN(计算列) FROM 表名;
min
最小值
SELECT MAX(计算列) FROM 表名;
count
计算个数
SELECT COUNT(计算列) FROM 表名;
特点:
sum
、avg
一般用于处理数值型max
、min
、count
可以处理任何类型- 以上分组函数都忽略
null
值 - 可以和
distinct
搭配实现去重的运算 count
函数的单独介绍 一般使用count(*)
用作统计行数- 和分组函数一同查询的字段要求是
group by
后的字段
尾言
这篇博文只是分享了DQL语言的一部分,还有一部分后续更新贴出…有问题评论区交流…