--1、编写一条SQL语句,显示奖金为空值的所有员工的
select*fromempwherecommisnull
--2、编写一条SQL语句,显示工资最高的员工及工资。
select*fromempwheresal=(selectmax(sal)fromemp)
selecttop1*fromemporderbysaldesc
--3、编写一条SQL语句,显示在1981之后入职的员工、部门名称及薪水。
select*fromempwhereyear(hiredate)>'1981'
--4、显示所有比上级领导入职还要早的员工及其上级领导的及入职时间。
selecte1.enameas员工,e1.hiredateas入职时间,e1.jobas职位,e2.enameas领导,e2.hiredateas入职时间,e2.jobas职位
fromempe1joinempe2one1.mgr=e2.empnowheree1.hiredate --5、编写一条SQL语句,显示在南京工作的员工和部门名称。
select*fromempinnerjoindept
onemp.deptno=dept.deptno
wheredept.loc='南京'
--6、编写一条SQL语句,显示中的有字母含有’A’,并且在3号部门工作的员工。
select*fromemp
whereenamelike'%A%'anddeptno='3'
--7、编写一条SQL语句,显示在研发部(部门名称)部门工作并且奖金不为空的所有员工。
select*fromemp
wheredeptno=(selectdeptnofromdeptwheredname='研发部')andcommisnotnull
--8、编写一条SQL语句,显示每个部门中工资最低的员工及工资,并按照工资的降序排列。
select*fromempinnerjoin(selectdeptno,min(sal)asminSalfromempgroupbydeptno)dept
onemp.deptno=dept.deptnoandemp.sal=dept.minSal
orderbysaldesc
--9、编写一条SQL语句,显示每年入职的人数,和入职年份
selectdatepart(yy,hiredate)as入职年份,count(*)as入职人数
fromemp
groupbydatepart(yy,hiredate)
--10、编写一条SQL语句,显示研发部的最高工资
selectmax(sal)fromempinnerjoindept
onemp.deptno=dept.deptno
wheredname='研发部'
--------------------------------------------------------
--1、编写一条SQL语句,显示奖金为空值的所有员工信息。(用数字0来替换奖金的空值null)
selectempno,ename,job,hiredate,isnull(comm,0)ascommfromemp
--2、编写一条SQL语句,计算总工资、平均工资。
selectsum(sal)as总工资,avg(sal)as平均工资fromemp
--3、查询工资在1500到2500的员工的、工资、所在部门名称
selectdept.dname,emp.ename,emp.salfromempinnerjoindepton
dept.deptno=emp.deptnowheresal>1500andsal<2500
--4、显示在南京工作的所有性别为“女”的员工信息
select*fromempinnerjoindeptondept.deptno=emp.deptnowheresex='女'andloc='南京'
--5、显示King的工资级别对应的最高与最低工资
selectsalgrade.losal,salgrade.hisalfromempinnerjoinsalgradeonemp.grade=salgrade.grade
whereename='king'
--6、显示南京员工的最高工资标准(hisal)
selectmax(salgrade.hisal)fromdeptjoinempondept.deptno=emp.deptnojoinsalgrade
onemp.grade=salgrade.gradewhereloc='南京'
--7、显示所有人的工龄数,并按工龄长短降序排列所有人信息
select*,datename(year,getdate())-year(hiredate)as工龄fromemp
orderbydatename(year,getdate())-year(hiredate)desc
--8、统计每个工龄数所对应的人数
selectdatename(year,getdate())-year(hiredate)as工龄,
count(*)as人数fromempgroupbydatename(year,getdate())
-year(hiredate)
--9、将King所在工资级别的最高工资9999修改为15000
updatesalgradesetsalgrade.hisal=15000
fromempinnerjoinsalgrade
onemp.grade=salgrade.gradew
hereename='king'
--10、编写一条SQL语句,将为SCOTT的这名员工的工资和部门编号,修改为7782号员工的工资和部门编号。
updateempsetsal=(selectsalfromempwhereempno='7782'),deptno=(selectdeptnofromemp
whereempno='7782')whereename='SCOTT'
--11、编写一条SQL语句,显示在1或者2号部门工作,并在1981入职的员工的所有信息。
select*fromempwhere(deptno='1'ordeptno='2')andyear(hiredate)='1981'
--12、显示在4月份入职的所有员工信息
select*fromempwheremonth(hiredate)='4'