【Oracle数据库】表查询(一)

Oracle数据库的简单查询

本文使用到的数据表如下图:

表名为 EMP 。其中,empno为员工号,empname为员工姓名,job为员工岗位,mgr为该员工上司的员工号,hiredate是入职日期,salary是月薪,comm是月奖金,department是所在部门的编号。


1.表结构查询  desc [表名];


2.查询所有列 select * from [表名];


3.查看指定行 select [列名] from [表名]; (多个列名用逗号隔开)

例如,查看所有员工的工资和入职时间


4.取消重复行 select distinct [列名] from [表名];


5.算数表达式

如何显示每个雇员的年工资?

在我们原始的表中,没有年工资这一栏,可以使用算术表达式来处理此要求。


我们注意到,年工资这一列的列名为“salary*12”,很碍眼。那么我们来给这一列起一个别名,使数据更易读。


别名可以使用中文,也可以使用英文(使用英文时不需要加双引号),但使用中文时会出现如图中错位的现象。

如果我们的年工资要求加上奖金呢?如何写sql语句呢?是不是“select empname,salary*12+comm*12 from emp”呢?我们来试一下。


哦,为什么很多人的年工资都没有了呢?这要是按年薪发工资,这些人不是白干了一年了?怎么会这样?原来是因为有些员工的COMM列为null,所以算术表达式最后的结果也是null。那么如何解决呢?这里需要用到nvl函数。


解释一下nvl函数,第一个参数是你要处理的含有null的列名,第二个参数是若该列为null,则用该值代替null。

6.给查询加上条件

直接举两个例子吧,简单明了

a.显示工资不低于3000的员工

b.显示工资在2000到5000之间的员工(多个条件要使用逻辑运算符连接)


7.like操作符,就是“形如”。。。的条件

表示任意0到多个字符  表示单个字符

如何显示首字母为“S”的员工信息?

如何显示名字第三个字母为“O”的员工信息?


8.在where条件中使用in

如何显示员工号为7369和7782的员工的信息?


9.如何处理null值?

如何显示没有上级的员工的信息?


思考:如何查询姓名首字母为“J”,且工资高于500或岗位为“manager”的雇员?您应该得到以下的结果:


10.使用order by排序

按照工资从低到高的顺序显示员工信息


oracle默认的排序顺序是升序(即asc),若想按降序排列,则在order by参数后加 desc


按照部门号升序(主要条件),工资降序(次要条件)的排序方式显示




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值