本文共 1394 字,大约阅读时间需要 4 分钟。
例子:scott下的emp表
图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;
别名需要用双引号圈中