梁韵莹

2020-06-16   阅读量: 5309

Mysql

#0607期DAY2# MySQL语法每日复盘起来!

扫码加入数据分析学习群

如老师的建议,学习SQL最重要的就是学习它的语法!

那么今天继续复盘第二天的知识点吧🙌

一、DQL数据查询语言 - 单表查询(续Day1

  • select 字段 from 表名 where 查询条件; -- 条件查询
  • select 字段 from 表名 where 字段 is [Not] Null; -- 空值查询
  • select 字段 from 表名 where 字段 [Not] like ‘通配符’; -- 模糊查询(注意!只能用于字符串类型的字段查询)
  • select 字段 from 表名 order by 字段1字段2... asc/desc; -- 查询结果排序 (默认值asc升序,desc降序)
  • select 字段 from 表名 limit [偏移量],行数; -- 限制查询结果数量
  • select 字段 from 表名 [Where查询条件] group by 字段l,字段2...; -- 分组查询
  • select 字段 from 表名 [Where查询条件][group by 字段1,字段2...] having 字段=‘筛选条件’; -- 分组后筛选

相应知识点:

1.通配符:% 及 _ , %代表多个字符, _匹配一个字符

2.运算符

3.Limit

- Limit接受一个或两个数字参数,参数必须是一个整数常量

- 第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目

- 如果只给一个参数,表示返回记录行的最大数目

- 初始记录行的偏移量是0

4.聚合运算

5. Where vs. Having

- Where子句作用于表,Having子句作用于组

- Where条件查询的作用域是针对数据表进行筛选,而having条件查询则是分组结果进行过滤 where的计算速度更快

- Where在分组和聚合计算之前筛选行,Having在分组和聚合之后筛选分组的行,因此where字句不能包含聚合函数

6. 维度与度量

维度:用来分组的分类字段,包括无序&有序分类字段。无序=姓名、性别、血型;有序=学历、职称、舱位。不能进行加减乘除的运算。

度量:用来聚合运算的数值字段(年龄、数量、金额等)

7. Select的语句书写顺序与执行顺序

二、多表连接与查询 ***必须掌握的

1.横向连接

  • select 字段 from table1 inner join table2 on t1.key1=t2.key2; 内连接
  • select 字段 from table1,table2 where t1.key1=t2.key2; 笛卡尔积连接=内连接,内连接的效率更高
  • select 字段 from table1 left join table2 on t1.key1=t2.key2; 左连接,table1是主表
  • select 字段 from table1 right join table2 on t1.key1=t2.key2; 右连接,table2是主表
  • select t1.ename,t2.ename from emp as t1 left join emp as t2 on t1.mgr=t2.empno; 自连接

2.纵向连接=联合查询

  • select 字段 from table1 union select 字段 from table2; Union去重连接
  • select 字段 from table1 union all select 字段 from table2; Union all不去重连接

3.全连接、左反连接、右反连接

  • select 字段 from t1 left join t2 on t1.key1=t2.key2 union select * from t1 right join t2 on t1.key1=t2.key2; 全连接=左连接 Union 右连接
  • select 字段 from t1 left join t2 on t1.key1=t2.key2 where t2.key2 is null; 左反连接=左连接is null值
  • select 字段 from t1 right join t2 on t1.key1=t2.key2 where t1.key1 is null; 右反连接=右连接is null值

4.相关知识点:

  • MySQL语法只支持3种连接方式:内连接、外连接(左右连接)
  • 多表连接的结果由3个属性决定:方向性、主附关系、对应关系
  • 为什么要拆分表?回答:节省存储空间,避免数据冗余

以上即今天要消化的知识点😉

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
29.8181 5 6 关注作者 收藏

评论(3)

liuyong2730
2020-06-19

这么详细的

0.0000 0 0 回复
liuyong2730
2020-06-19

哇哦 你好厉害

0.0000 0 0 回复
ermutuxia
2020-06-16
左盘!右盘!前盘!后盘!直到玩转它!
0.0000 0 0 回复
梁韵莹
2020-06-16
嗯? 突然发现你是本月PGC的No.1 :-) 谢谢关注(^U^)ノ~YO
0.0000 0 0 回复
梁韵莹
2020-06-16
哈哈哈 这位朋友这么激动!
0.0000 0 0 回复

推荐课程