MySQL中SQL语句总结2(DQL)

#博学谷IT学习技术支持#

一、DQL

1、基础查询

  • 查询多个字段(*表示全部字段)
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名;
  • 去除重复记录(例:可用于城市的统计)
SELECT DISTINCT 字段列表 FROM 表名;
  • 起别名
//效果相同
SELECT name as 姓名 字段列表 FROM 表名;
SELECT name 姓名 字段列表 FROM 表名;

2、条件查询

1.基本语法

SELECT 字段列表 FROM 表名 WHERE 条件;

2. 条件

-

  • 练习
    • 查询身高大于168厘米的学生
      select * from stu where height > 168;
      
    • 查询身高大于168厘米并且年龄大于17的学生
      //效果相同
      select * from stu where height > 168 && age > 17;
      select * from stu where height > 168 and age > 17;
      
      • 查询年龄在18-25的学生
      select * from stu where age between 18 and 25;
      
      • 查询年龄不等于18的学生
      //效果相同
      select * from stu where age != 18;
      select * from stu where age <> 18;
      
      • 查询年龄等于18或者年龄等于25的学生
      //效果相同
      select * from stu where age = 18 or age = 25;
      select * from stu where age in(18,25);
      
      • 查询年龄年龄为 null的学生
      //不符合语法规范
      select * from stu where english = null;
      //判断是否为空   用is或者is not
      select * from stu where english is null;
      select * from stu where english is not null;
      

3.模糊查询

模糊查询使用like关键字,可以使用通配符进行占位:

  • _ : 代表单个任意字符

  • % : 代表任意个数字符

  • 练习

    • 查询包含‘c’的单词
      select * from word_list where name like '%c%';
      
      • 查询第2个字母是‘c’的单词
      select * from word_list where name like '_c%';
      

2、排序查询

1.基本语法

SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2];

2.排序方式

  • ASC : 升序排列 (默认值)
  • DESC : 降序排列

注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序

3.练习

  • 查询单位员工,按照职工号升序排列
    select * from workers order by work_id;
  • 查询单位员工,按照销售业绩降序排列
    select * from workers order by result desc ;
  • 查询单位员工,按照销售业绩降序排列,如果销售业绩一样,再按照出勤升序排列
    select * from workers order by result desc , attendance asc ;

3、聚合函数

1.概念

  • 就是将一列数据作为一个整体进行计算

2. 分类

在这里插入图片描述

3.语法

SELECT 聚合函数名(列名) FROM;

注意: null 值不参与所有聚合函数运算

4.练习

  • 统计班级一共有多少个学生
select count(id) from stu;
select count(english) from stu;

上面语句根据某个字段进行统计,如果该字段某一行的值为null的话,将不会被统计。
所以可以使用count(*) 来实现。

 select count(*) from stu;

4、分组查询

1.语法

SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];

注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

2.练习

  • 查询男同学和女同学各自的数学平均分
select sex, avg(math) from stu group by sex;

3.where 和 having 区别:

  • 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
  • 可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。

5、分页查询

1.语法

SELECT 字段列表 FROM 表名 LIMIT  起始索引 , 查询条目数;

注意: 上述语句中的起始索引是从0开始

2.练习

  • 从0开始查询,查询3条数据
 select * from stu limit 0 , 3;
  • 每页显示3条数据,查询第1页数据
select * from stu limit 0 , 3;

3.公式推导

从上面的练习推导出起始索引计算公式:

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

这是我学习阶段性的总结,希望可以给看到的你有所帮助,如有不足,请指出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值