MySQL(二)——DQL数据查询语言

1. DQL简述

Data Query LANGUAGE : 数据查询语言

  • 所有的查询操作都用它 SELECT
  • 简单的查询,复杂的查询它都能做~
  • 数据库中最核心的语言,最重要的语句
  • 使用频率最高的语句

SELECT完整的语法
在这里插入图片描述
注意:[ ] 代表可选,{ } 代表必选

2. 指定查询字段

(1)查询全部的学生
语法:SELECT * FROM 表名
在这里插入图片描述
(2)查询指定字段
语法:SELECT 字段 FROM 表名
在这里插入图片描述
(3)别名,给结果起一个名字
AS 可以给字段起别名,也可以给表起别名
语法:SELECT 字段1 AS 别名1 ,字段2 AS 别名2 FROM 表名 AS 别名
在这里插入图片描述
(4)函数 Concat(a,b)
在这里插入图片描述
(5)去重 distinct
作用:去除SELECT 查询出来的结果中重复的数据,重复的数据只显示一条

  • 查询全部的考试成绩
    在这里插入图片描述
  • 查询有哪些同学参加了考试
    在这里插入图片描述
  • 发现重复数据,去重
    在这里插入图片描述

(6)数据库的列 (表达式)

  • 查询系统版本 (函数)
    在这里插入图片描述
  • 用来计算 (表达式)
    在这里插入图片描述
  • 查询自增的步长 (变量)
    在这里插入图片描述
  • 学员考试成绩 + 1分查看

在这里插入图片描述
注意
数据库中的表达式: 文本值,列,Null,函数,计算表达式,系统变量….
select 表达式 from 表

3. where 条件子句

作用:检索数据中 符合条件 的值
搜索的条件由一个或者多个表达式组成!结果 布尔值
(1)逻辑运算符
在这里插入图片描述
尽量使用英文字母

  • 查询考试成绩在 95~100 分之间
    在这里插入图片描述
  • 模糊查询(区间)
    在这里插入图片描述
  • 除了1000号学生之外的同学的成绩
    在这里插入图片描述

(2)模糊查询 : 比较运算符
在这里插入图片描述

  • 查询姓刘的同学 ,与like结合 %(代表0到任意个字符)
    在这里插入图片描述

  • 查询姓刘的同学, _(一个字符) 名字后面只有一个字的
    在这里插入图片描述

  • 查询姓刘的同学, __(一个字符) 名字后面只有两个字的
    在这里插入图片描述

  • 查询名字中间有嘉字的同学 %嘉%
    在这里插入图片描述

  • 查询 1001,1002,1003号学员
    在这里插入图片描述

  • 查询在安徽的学生
    在这里插入图片描述

  • 查询地址为空的学生 null ’ ’
    在这里插入图片描述

  • 查询有出生日期的同学 不为空
    在这里插入图片描述

4. 联表查询

  • JOIN 对比
    在这里插入图片描述
    在这里插入图片描述

  • 三者区别
    在这里插入图片描述

  • 练习一

查询参加了考试的同学:学号,姓名,科目编号,分数
思路 ① 分析需求,分析查询的字段来自哪些表,(连接查询)
②确定使用哪种连接查询? 7种
③确定交叉点(这两个表中哪个数据是相同的)
④判断的条件 : 学生表的中 studentNo = 成绩表 studentNo
在这里插入图片描述

  • 练习二

查询了参加考试的同学信息: 学号,学生姓名,科目名,分数
思路①分析需求,分析查询的字段来自哪些表, student、result、subject(连接查询)
② 确定使用哪种连接查询? 7种
③确定交叉点(这两个表中哪个数据是相同的)
④判断的条件 : 学生表的中 studentNo = 成绩表 studentNo
在这里插入图片描述

总结:我要查询哪些数据 select …
FROM 表 从哪几个表中查
XXX Join 连接的表
on 交叉条件
假设存在一种多张表查询,慢慢来,先查询两张表然后再慢慢增加

5. 分页和排序

(1)排序

  • 升序 ASC , 降序DESC
  • ORDER BY 通过哪个字段排序,怎么排
  • 练习:查询的结果根据 成绩降序 排序
    在这里插入图片描述

(2)分页
分页原因:缓解数据库压力,给人的体验更好, 瀑布流
语法: limit 起始值,页面的大小
第N页 limit(n-1)* pageSize,pageSize
(n-1)* pageSize:起始值
pageSize:页面大小
n :当前页
数据总数/页面大小 = 总页数
在这里插入图片描述

6. 子查询

本质 : 在where语句中嵌套一个子查询语句

  • 练习一:查询 数据库结构-1 的所有考试结果(学号,科目编号,成绩),降序排列
    方式一: 使用连接查询
    在这里插入图片描述
    方式二: 使用子查询(由里及外)
    在这里插入图片描述

  • 练习二:查询课程为 高等数学-2 且分数不小于 80 的同学的学号和姓名
    方式一:使用连接查询
    在这里插入图片描述
    方式二:使用子查询(由里及外)
    在这里插入图片描述

7. 分组和过滤

核心: 根据不同的课程分组
GROUP BY…
HAVING …

练习:查询不同课程的平均分,最高分,最低分,平均分大于80
在这里插入图片描述

8. Select 小结

在这里插入图片描述

发布了62 篇原创文章 · 获赞 2 · 访问量 2738

猜你喜欢

转载自blog.csdn.net/nzzynl95_/article/details/104085327