数据库表查询的一些知识点


1.查询所有列 

     select * from emp(表名)where 条件

2.查询制定列

    select 字段1,字段2 from 表名 where 条件

    例:select sal,job,deptno from emp where ename=‘smith’  这里的名字可以大写也可以小写

3.如何取消重复行

    select distinct 字段 from 表名 where 条件

注意:distinct 只能消除完全一样的行,并且只留一行

4.显示每个雇员的年工资

    select enamel,sal*13 年工资 from emp; 年工资就是别名

5.如何处理null的问题

     select ename,sal*13+isnull (comm,0)*13 年工资 from emp;这里的comm是额外的奖励工资,当没有奖励时就用isnull函数判断是否为0

6.如何显示首字母为S的员工姓名和工资

     select enamel,sal from emp where enamel like 'S%';

7.如何显示第三个字母为大写O的所有员工的姓名和工资

    select ename ,sal from emp where ename like '_ _S%';这里下划线之间没有空格,为了显示两个下划线的效果才刻意添加的空格。

8.如何显示没有上级雇员的情况

    select * from emp where mgr isnull;

9.如何显示emptno为123,345,800...的雇员情况

      ①select * from emp where emptno=123 and emptno=345 and emptno=800;

这里员工编号较少,如果员工编号很多,就会显得很繁琐,所以出现第二种查询方式(使用in函数)

     ②select * from emp where emptno in (123,345,800)

10.按照部门号升序而雇员的工资降序排列

       select * from emp order by deptno,sal desc

使用order by 字句(默认是升序排序),asc代表升序,desc代表降序

11.如何显示最低工资和该雇员的名字

     select  ename ,sal from emp where sal=(select min(sal) from emp)

12.统计共有多少员工

     select count(*) from emp; 

13.如何显示每个部门的平均工资和最高工资

    select avg(sal),deptno,max(sal) from emp group by deptno

14.显示平均工资低于2000的部门号和它的平均工资并从低到高排序

    select avg(sal),deptno from emp group by deptno having avg(sal)<2000 order by avg(sal) asc

    having 往往和group by 结合使用。可以对分组查询结果进行筛选

对数据分组的总结:

①分组函数只能出现在选择列表 having ,order by 字句中

②如果在select 语句中同时包含group by ,having,order by 那么他们的顺序是group by ,having,order by

③在选择列中,如果有列,表达式和分组函数。那么这些列和表达式必须有一个出现在group by字句中,否则就会出错










  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值