MySQL数据库

MYSQL——DQL查询语言

2019-06-24  本文已影响0人  So_ProbuING

DQL查询语句

语法

SELECT 要查询的字段列表 from 表名的列表 Where 条件列表 group by 分组字段 having 分组之后的条件限定 order排序 limit 分页限定

基础查询

SELECT address from student;
SELECT name,age from student;

去掉重复

SELECT DISTINCT address from student;

注意
去除重复的需要结果集完全相同才能进行去除重复。源数据不同也可以,但要确定查到的结果集相同才可。

计算列

-- 计算列的值
SELECT name,math+english FROM student;

如果有Null参与的运算结果都为Null

SELECT name,math,english,math+IFNULL(english,0) FROM student;

别名操作

as 关键字 将要查询的字段起别名

-- 起别名
SELECT name,math,english,math+IFNULL(english,0) 总分 FROM student;

条件查询

运算符

SELECT  * FROM student where age >= 20;

排序查询

语法

# 升序排序 asc
SELECT * FROM extb1 ORDER BY money ASC;
# 降序排序 desc
SELECT * FROM extb1 ORDER BY money DESC;
# 多个排序

SELECT * FROM extb1 ORDER BY age ASC , money DESC;

聚合函数

将一列数据作为一个整体,进行纵向的计算。

Mysql中的聚合函数

  1. count 计算个数
SELECT COUNT(NAME) FROM extb1;
  1. max 计算最大值
# MAX
SELECT MAX(money) from extb1;
  1. min 计算最小值
# MIN
SELECT MIN(age) from extb1;
  1. sum 计算和
# SUN
SELECT SUM(age) FROM extb1;
  1. avg 计算平均值
# AVG
SELECT AVG(money) FROM extb1;

注意
聚合函数的计算排除null值,null值不会参与聚合函数的计算
解决方案:
1.在计算的时候选择不包含非空的列进行计算

  1. 主键
  2. COUNT(*)
    2.使用IFNULL函数
SELECT COUNT(IFNULL(name,0))FROM extb1;

分组查询

分组一般用来进行统计具有相同特征的一类数据

语法

  1. group by 分组字段
# 分组查询
SELECT sex,AVG(age) FROM extb1 GROUP BY extb1.sex;
# 分组查询 聚合函数组合使用
SELECT sex,AVG(age),COUNT(*) FROM extb1 GROUP BY extb1.sex;

SELECT sex,AVG(age),COUNT(*) FROM extb1 WHERE age >18 GROUP BY extb1.sex HAVING COUNT(*)>3;
# 使用别名

注意:

  1. 分组之后查询的字段有:1.分组字段 2 聚合函数,因为分组是统计的同一类的数据,所以在这个条件下查询的是一组数据
  2. 在where和having的区别
    都是在分组中进行条件判断
  3. where在分组之前进行限定,如果不满足条件,则不参与分组 having在分组之后进行限定,如果不满足结果,则不会被查询
  4. where 后不可以跟聚合函数,having可以进行聚合函数的判断

分页查询

语法

LIMIT 开始的索引,要查询的数量

一般公式

开始的索引 = (当前的页面-1) * 每页显示的条数

注意

分页LIMIT是一个MYSQL"方言"

上一篇下一篇

猜你喜欢

热点阅读