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

时间:2022-06-03 00:45:27

Oracle数据库的简单查询

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

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

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

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

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

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

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

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

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

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

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

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

5.算数表达式

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

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

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

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

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

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

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

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

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

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

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

6.给查询加上条件

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

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

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

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

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

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

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

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

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

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

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

8.在where条件中使用in

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

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

9.如何处理null值?

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

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

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

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

10.使用order by排序

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

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

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

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

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

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