玉子酱

2020-06-16   阅读量: 710

SQL基础——按执行顺序先后写代码#Day 2

扫码加入数据分析学习群

随着学习SQL语言的内容逐渐增加,查询语句越来越长,表和表之间的关联(啊~~今天分不清哪个是哪个了🤣),编写语句完成后也频频出现错误。

不过这样才使我更加觉得SQL的有趣,我一定要战胜它,多多练习!

我总结了一下几点:

1.最重要是先搞明白语句执行的先后顺序

系统优先执行的是from后的语句,其次是条件判断(where子句不能包含聚合函数),之后执行条件筛选条件select。(个人理解)

那么按照以上的逻辑,使用多表查询时候,语句较多时,就可以分步骤写代码。(我看老师也是这样做的)

2.分步骤写代码(以今天最后一题为例)

首先,这一题的话用了两次外连接,自身的表与表之间和另外一张表之间连接(真的眼花缭乱),那么先做第一步,同一张表自身连接

select *(代码写完最后再把星号改成需要筛选的字段) from emp 员工表

left join emp 员工表

on 员工表.mgr=领导表.empno;

能正确执行命令后,再继续做第二步,外连接

select *(代码写完最后再把星号改成需要筛选的字段) from emp 员工表

left join emp 员工表

on 员工表.mgr=领导表.empno

left join dept

on 员工表.deptno=dept.deptno;

输入where语句

select *(代码写完最后再把星号改成需要筛选的字段) from emp 员工表

left join emp 员工表

on 员工表.mgr=领导表.empno

left join dept

on 员工表.deptno=dept.deptno

where 员工表.hiredate<领导表.hiredate;

这步完成之后已经得到我们想要的数据了,那最后只要把需要的字段筛选出来就OK啦~把星号替换成需要筛选出来的字段

select 员工表.empno,员工表.ename,dename from emp 员工表

left join emp 员工表

on 员工表.mgr=领导表.empno

left join dept

on 员工表.deptno=dept.deptno

where 员工表.hiredate<领导表.hiredate;

那最终就会得到我们想要的结果了。

这是学习SQL的第二天,也不可能一口气吃成胖子,还需要慢慢理解、多多练习,理清思路的话,我觉得SQL还是能掌握的。大家一起加油呀!

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

评论(0)


暂无数据

推荐课程