Oracle之基础查询(一)

来源:互联网 发布:淘宝女包店铺简介 编辑:程序博客网 时间:2024/05/16 14:19

例子:scott下的emp表

图1图1

操作1、取消重复查询:

select  distinct   ename,sal from emp;



操作2、使用算数表达式: 查询员工全年的收入=工资+奖金   nvl用来处理空值null   ,如果没有奖金,即comm为null,则用0代替

双引号中的是查询列的别名

SQL> select ename "姓名",sal*12+nvl(comm,0)*13 as "年收入"  from emp;


操作3、如何连接字符串

select  ename ||  'is  a'   || job     from  emp;


操作4、使用where子句

显示工资高于3000的雇员的薪水和名字

select ename ,salary from  emp where salary >3000;

如何查找在1982.1.1后入职的员工

select  ename  from  emp  where  hiredate > '1-1-1982';

如何显示工资2000到5000的员工情况

SQL> select  ename from  emp where   sal between  2000 and 5000;

SQL> select  ename from  emp where   sal  > 2000 and sal <5000;



操作5、如何使用like操作符

%:表示0到多个字符

-下划线:表示单个字符

如何显示首字母为s的员工姓名和工资?

select  ename,sal   from   emp  where   ename  like  'S%'

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

select  ename,salary   from   emp  where   ename   like ‘__O%’;

操作5、在where条件中使用in

如何显示empno为123,345,800的雇员情况?

SQL> select  ename,sal  from emp where  empno in(7876,7782,7369);


注意:与or相比应当多使用in,in 的效率会更高!


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

select  ename  from emp where  mgr is null;



操作6、使用逻辑运算符

查询工资高于500或是岗位为manager的雇员,同时还要满足他们的姓名首字母为大写

select   ename  ,sal  from  emp  where   (sal>500  OR  job='manager')and ename like 'J%';


操作7、使用order   by  子句

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

select ename  from  emp  order  by  sal    desc;


select ename  from  emp  order  by  sal    desc  ,empno ;

如何按照部门号升序而雇员的入职时间降序排列?

SQL> select  ename ,deptno,hiredate  from emp  order by  deptno asc ,hiredate de
sc;


使用列的别名排序

select  ename ,(sal +nvl(comm,0))*12  "年薪"   from  emp order by "年薪"  asc;

别名需要用双引号圈中




0 0
原创粉丝点击