如何写sql语句

也许你对数据库的语法很清楚了,但是给你一个数据库的查询问题你却写不出来,或者要很长时间才能写出来,这里面是有一些技巧的总的来说就是下面的几句话:

记录值值指定的是where条件
列值指定的是group条件
统计值指定的是having条件
排序指定的是order by条件

而他们在查询语句中出现的先后顺序也是像上面那样的顺序


示例:

--1.列出emp表中各部门的部门号, 部门,最高工资,最低工资

分析:这里面的列指定的是部门,所以要按照部门进行分组查询的是最高和最低值所以要使用聚合函数min()和max()

select e.deptno,d.dname,max(e.sal),min(e.sal)
from emp e,dept d
where e.deptno = d.deptno group by e.deptno,d.dname


--2.列出emp表中各部门job为'CLERK'的员工的最低工资,最高工资

分析:job指定了具体值所以是需要把它作为where条件的,而又提到了部门,所以需要按照部门进行分组
select deptno,min(sal),max(sal)
from emp
where job = 'CLERK' group by deptno

--3.对于emp中最低工资小于3000的部门,
--列出job为'CLERK'的员工的部门号,最低工资,最高工资

分析:最低工资(统计值)值指定了having条件,而job值指定了where条件,而部门指定了分组条件
select deptno,min(sal),max(sal) 
from emp
where job = 'CLERK'
group by deptno having min(sal)<3000;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值