期selectmaxe
amemi
e
amefromemp_cha
gselectavgcommfromemp_cha
g不合理selectsumcommcou
tfromemp_cha
gselectavg
vlcomm0fromemp_cha
g对数据求平均值要注意,默认是忽略空值的。
selectdept
osumsalfromemp_cha
ggroupbydept
o计算各个部门工资总和;
fselectjobavgsalsumsalcou
tfromempgroupbyjob哪些职位人数小于3分组后的结果再过滤,使用havi
g短语where短语不允许出现组函数selectjobcou
tfromempgroupbyjobhavi
gcou
t3哪些部门的平均薪水2000selectdept
oavg
vlsal0fromempgroupbydept
ohavi
gavg
vlsal02000去除部门为空的selectdept
oavg
vlsal0fromempwheredept
ois
ot
ullgroupbydept
ohavi
gavg
vlsal02000
Day03查询emp表,按职位分组,计算每个职位的薪水总和,职位是PRESIDENT的员工不算在内,返回薪水总和5000元的列表,并按薪水总和排序;selectjobsumsalfromemp_cha
gwherejobPRESIDENT
fgroupbyjobhavi
gsumsal5000orderbysumsalselect短语中的非组函数列,必须出现在groupby短语中select列1,列2,组函数from表名groupby列1,列2;,selectdept
ojobsumsalfromempgroupbydept
ojob
2个操作把部门里的人数统计出来排除空部门的人;selectdept
ocou
tfromempwheredept
ois
ot
ullgroupbydept
o低效的操作selectdept
ocou
tfromempgroupbydept
ohavi
gdept
ois
ot
ullwhere里有组函数是不能执行的
二。表的关联外键FK主键PK主表(父表)从表(子表)
查询员工SCOTT所在部门的工作地点emp和deptT1JOINT2NOT1的列T2的列;内连接:等值连接、非等值连接、自连接先做关联查询,1等值连接
fSelectempe
amedeptlocfromempJOINdeptONempdept
odeptdept
owhereempe
ameSCOTT
先用ee
ameSCOTT过滤驱动表,驱动表只剩一条,再和匹配表做关联查询Selectempe
amedeptlocfromempJOINdeptONempdept
odeptdept
oANDempe
ameSCOTT先过滤这个(执行这个)
用表别名简化查询Selectee
ameedept
odlocfromempeJOINdeptdONedept
oddept
owhereee
ameSCOTT驱动表和匹配表互换位置,对查询结果集无影响;Selectee
ameedept
odlocfromdeptdJOINempeONedept
oddept
o最终的结果集,一定在两个表中能找到匹配记录没有部门的员工,没有员工的部门selectee
ameedept
oejobdlocfromempejoi
deptdo
edept
oddept
oa
djobMANAGER
自关联selectworkere
amema
agere
amefromempworkerjoi
empma
agero
workermgrma
ageremp
o
查看薪水等级薪水等级表:salgrade非等值连接非等值连接
fselectee
ameesalsgradefromempr