MySQL知识汇总(二)

前言

上篇博文给大家分享介绍了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 条件;

过滤查询的分类:

  1. 按条件表达式筛选:> < = != <> >= <=
  2. 按逻辑表达式筛选 :and or not
  3. 模糊查询 :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 排序的字段或者表达式;

排序查询的注意点:

  1. 默认asc升序,可省略;
  2. desc降序;
  3. order by 子句可以支持单个字段、别名、表达式、函数、多个字段;
  4. 在查询语句的最后面,除了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;

分组查询之组函数

概念: 用作统计使用,又称为聚合函数或统计函数或分组函数
分类:

  1. sum求和
SELECT SUM(计算列) FROM t_mysql_employees;
  1. avg平均值
SELECT AVG(计算列) FROM 表名;
  1. max最大值
SELECT MIN(计算列) FROM 表名;
  1. min最小值
SELECT MAX(计算列) FROM 表名;
  1. count计算个数
SELECT COUNT(计算列) FROM 表名;

特点:

  1. sumavg一般用于处理数值型 maxmincount可以处理任何类型
  2. 以上分组函数都忽略null
  3. 可以和distinct搭配实现去重的运算
  4. count函数的单独介绍 一般使用count(*)用作统计行数
  5. 和分组函数一同查询的字段要求是group by后的字段

尾言

这篇博文只是分享了DQL语言的一部分,还有一部分后续更新贴出…有问题评论区交流…

猜你喜欢

转载自blog.csdn.net/qq_45510899/article/details/106803891