标题:SQL-DQL

实践:

1.技能框架-思维导图

2.清单-规划好时间

3.操作-习题的方式

4.文档-历史,部署,功能介绍,基本管理,原理

5.原理叙述,模拟讲课场景,录制视频

6.整理数据以及小结

要求:

  • 练习题,要不看答案敲出来,三遍以上
  • 文档原理,要看着图说出来
  • 对历史介绍要能说出来,读三遍,回想一边

目录

[toc]
简书貌似不支持TOC目录生成

1.技能框架

知识体系.png

2.清单-规划

SQL语句-DQL.png

4.文档

【1】文档-单独使用

(1) @@参数

【1】用来查询mysql中设定的参数-》/etc/my.cnf 中 设置的参数

select @@参数

【2】查看当前数据库的端口

select @@port;

【3】查看当前数据库中的数据目录

select @@datadir;

【4】查看server_id

select @@server_id;

【5】查看innodb_flush_log_at_trx_commit;

select @@innodb_flush_log_at_trx_commit;

【6】查询所有参数

show variables;

【7】模糊查询

show variables like '%trx%';

(2)查询函数

【1】查询当前所在的数据库

select database();

【2】查询当前时间表

select now();

【3】打印函数

select concat("hell");

(3)计算功能

select 3+5 ;

【2】文档-作用

1.用来查询数据行(记录)的内容
2.根据业务需求进行分析数据
3.业务熟悉
一般先查询表结构,看看这个业务库都有那些表,然后在看这些表里面都有那些列,以及这些表都是通过那些列进行关联的。

4.熟悉步骤

1.查看库
show databases;
2.查看库有哪些表
show databaes.tables;
3.查看表中有哪些列
desc tables;
4.查看表结构
show create tables tables_name;

【3】文档-组合应用的名词解释

1. SELECT 配合 FROM 子句的使用

1.命令格式

SELECT 列....
FROM  表;

2.名词解释

select  选择那些表中的列
from    选择那些库中的表

3.使用场景

单独查询某个列的时候,常用于表中的查询
2. SELECT 配合 WHERE 子句使用

1.命令格式

SELECT 列
FROM  表 
WHERE 条件

2.名词解释

1.select    选择那些表中的列
2.from      选择那些库中的表
3.where     匹配内容

3.使用场景

等值查询(列=行)
范围查询(比较符号,between...and...)
连词查询(and,or,in)
模糊查询(like...xxx%..)
3. SELECT 配合 GROUP BY + 聚合函数应用

1.命令格式

SELECT 列.... 聚合函数(列)
FROM  表 
WHERE 条件
group by 分组的列

2.名词解释

1.select    选择那些表中的列
2.from      选择那些库中的表
3.where     匹配内容
4.group by  分组,对所查询的列进行分组去重复

3.使用场景

平均值  AVG()
最大值  MAX()
最小值  MIN()
总和    SUM()
计数    COUNT()
列转行  GROUP_CONCAT()

4.原理

1.把要分组的列取出来,然后进行排序去重。
2.然后根据聚合函数进行计算。
3.最后进入原表中

5.注意

1.MySQL表是一对一的关系,如果分组去重后,计算出的结果,可能是一对多。
2.防止一对多的现象,请使用拼接语句
4. SELECT 配合 HAVING 应用

1.命令格式

SELECT 列.... 聚合函数(列)
FROM  表 
WHERE 条件
group by 分组的列.
having 条件;

2.名词解释

1.select    选择那些表中的列
2.from      选择那些库中的表
3.where     匹配内容
4.group by  分组,对所查询的列进行分组去重复
5.having   对以上的结果的值,再一次进行匹配比较

3.使用场景

多用于需要对结果在次进行分析的场景,多用于group by之后。
5. SELECT 配合 ORDER BY 排序应用

1.命令格式

SELECT 列.... 聚合函数(列)
FROM  表 
WHERE 条件
group by 分组的列.
having 条件;
order by 聚合函数()/order by 聚合函数() desc;

2.名词解释

1.select    选择那些表中的列
2.from      选择那些库中的表
3.where     匹配内容
4.group by  分组,对所查询的列进行分组去重复
5.having   对以上的结果的值,再一次进行匹配比较
6.order by  对计算的结果进行排序,默认从小到大

3.使用场景

1.多用于,对查询出来的结果-计算结果,进行排序。数字默认从小到大,如果是字符,就按照ACIC编码,进行排序。
2.从大到小,需要在聚合函数后加上desc
6. SELECT 配合 LIMIT 使用

1.命令格式

SELECT 列.... 聚合函数(列)
FROM  表 
WHERE 条件
group by 分组的列.
having 条件
order by 聚合函数()/order by 聚合函数() desc
limit 数字;

2.名词解释

1.select    选择那些表中的列
2.from      选择那些库中的表
3.where     匹配内容
4.group by  分组,对所查询的列进行分组去重复
5.having   对以上的结果的值,再一次进行匹配比较
6.order by  对计算的结果进行排序,默认从小到大
7.limit        对查询的结果,进行分页显示,范围截断显示,等

3.使用场景

1.多用于对结果进行分页查看
2.
  前几行:limit 6;
  中间几行:limit 4,8;   ---5 6 7 8 行  

【4】文档-多表查询

1.命令格式

select 列
from 表1
join 表2
on 表1.列=表2.列

2.名词解释

select 列           跨表查询的列
from 表1                小表/或用作条件的列的表
join 表2                大表
on 表1.列=表2.列      相关联的列

3.使用场景

1.多用于一张表,已经满足不了需求,需要跨表显示
2.三张表以上的连接,需要一个首尾关联表。

4.查询思路

​ (1) 先找有关表

​ (2) 表之间的关联关系列

  例如:

​          A.z C.Y C.k B.z
​          A表与B表没有直接关联关系,但是A表和C表有关联关系,C表与B表有关联关系,这个时候通过C表,去与B表建立连接关系
三表以上
​          A B C
​          join A on A.Z=B.N Join C on B.n=c.o
​          多表查询的本质是把几张表合在一起。
​          多表连接,要分清一对多的关系,多对一要分组

(3)原理

1.跨表查询,其实就是把,几张表中的列,取出来,然后在整合成一张表,进行查询。
2.其实我们查询还是一张表。

​ (4) 建议

1.把需要的表列出来
2.找到表中列关联的点
3.把要查询的值列出来
4.无论几张表查询,都尽量把需要的表,列出来,先找到其中的关系

【5】别名

1.命令格式

表的后面接上 AS 别名

2.应用场景

多用于表名比较长的查询

3.注意

无法应用于group by 子句后,只能应用于from表的时候

【6】扩展

1.外连接
2.子查询
3.高级编程: 存储过程,函数,视图,事件,触发器,游标等.

【7】习题要求

  • 命令
  • 命令解读
  • 解题思路

【6】习题-1-select语句练习

【1】用来查询mysql中设定的参数-》/etc/my.cnf 中 设置的参数
【2】查看当前数据库的端口
【3】查看当前数据库中的数据目录
【4】查看server_id
【5】查看innodb_flush_log_at_trx_commit;
【6】查询所有参数
【7】模糊查询
【8】查询当前所在的数据库
【9】查询当前时间表;
【10】打印函数
【11】模糊查询

7.习题-2-子句练习

1.SELECT 配合 FROM 子句的使用

(1) 查询city表中的所有数据

(2) 查询city表中 name和population列的所有值

2.SELECT 配合 WHERE 子句使用

​ 2.1 WHERE 的等值条件查询

(1) 查询city表中,中国所有的城市信息

​ 2.2 WHERE 的范围查询( > < >= <= != <>,between...and...)

​ (1) 查询人口数小于100人的城市.

​ (2) 查询世界上人口数量在100w到200w之间的城市

​ 2.3 WHERE 的 连接查询(AND,OR,IN)

​ (1) 查询中国,人口数量大于500w的城市

​ (2) 查询中国和美国的所有城市信息(OR)

​ (3)查询中国和美国的所有城市信息(IN)

​ 2.4 WHERE 配合 LIKE 的模糊查询

​ (1) 查询CH开头的国家的城市信息

3.SELECT 配合 GROUP BY + 聚合函数应用

(1) 统计每个国家的总人口数量

(2) 统计中国每个省的总人口数量

(3) 统计中国每个省的城市个数和城市名称列表

4.SELECT 配合 HAVING 应用

(1) 统计中国每个省的总人口数量

5.SELECT 配合 ORDER BY 排序应用

(1) 查询中国所有城市,并按人口从小到大(从大到小)

(2) 统计中国每个省的总人口数量,并按总人口数从大到小排序

(3) 统计中国每个省的总人口数量,并查询总人口数超过500w的信息,按总人口降序排序

6.SELECT 配合 LIMIT 使用

(1) 统计中国每个省的总人口数量,并查询总人口数超过500w的,按总人口降序排序,只显示前5名

(2) 统计中国每个省的总人口数量,并查询总人口数超过500w的,按总人口降序排序,只显示3-6名

8.习题-3-多表查询

1.city库

(1) 查询一下chengdu城市,人口数,所在的国家名,所在的大洲

(2) 查询一下chengdu城市,人口数,所在的国家名,所在的大洲

2.studuy库

(1)oldguo老师教的课程名称

(2)每位老师,所教课程的平均分.

(3)统计一下每位老师所教学生个数及学生名字

(4)统计zhang3,学习了几门课
(5)查询zhang3,学习的课程名称有哪些
(6)查询oldguo所教课程的平均分数
(7)查询所有老师所教学生不及格的信息
(8)查询oldguo所教的不及格的学生姓名
(9)每位老师所教课程的平均分,并按平均分排序
(10)查询平均成绩大于60分的同学的学号和平均成绩;
(11)查询所有同学的学号、姓名、选课数、总成绩;
(12)查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分
(13)统计各位老师,所教课程的及格率
(14)查询每门课程被选修的学生数
(15)查询出只选修了一门课程的全部学生的学号和姓名
(16)查询选修课程门数超过1门的学生信息
(17)统计每门课程:优秀(85分以上),良好(70-85),一般(60-70),不及格(小于60)的学生列表
(18)查询平均成绩大于85的所有学生的学号、姓名和平均成绩

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容