? 如何显示工资高于3000的员工
select * from emp where sal>3000;
? 如何查找1982.1.1后入职的员工
select * from emp where to_char(hiredate,’yyyy-mm-dd’)>’1982--01-01’;
? 查询1980年入职的员工
select * from emp where to_char(hiredate,’yyyy’)=’1980’;
? 如何显示工资在2000到2500的员工情况
select * from emp where sal>=2000 and sal<=2500;
select * from emp where sal between 2000 and 2500;
n 如何使用like操作法(模糊查询)
%:表示任意0到多个字符 _:表示任意单个字符
? 如何显示首字符为S的员工姓名和工资
SQL> select ename,sal from emp where ename like 'S%';
? 如何显示第三个字符为大写O的员工的姓名和工资
SQL> select ename,sal from emp where ename like '__O%';
n 在where条件中使用in
? 如何显示empno为123,345,800...的雇员情况
select * from emp where empno=123 or empno=345 or empno=800;
select * from emp where empno in(123,345,800);
n 使用is null的操作符
? 如何显示没有上级的雇员的情况
select * from emp where mgr is null;
n 使用逻辑操作符合
? 查询工资高于500或是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J
select * from emp where (sal>500 or job=’MANAGER’) and ename like ‘J%’;
n 使用order by字句
(对查询结果进行排序显示 asc升序 desc降序 默认asc)
? 如何按照工资从低到高的顺序显示雇员的信息
select * from emp order by sal;
? 按照部门号升序雇员的入职时间降序排列
select * from emp order by deptno,hiredate desc;
order by 可以按照列的序号来排序
select eanme,sal from emp order by 2; //不能使无中生有的列号,否则出错
n 使用列的别名排序
oracle支持使用别名排序
select ename,sal*13+nvl(comm,0)*13 “年薪” from emp order by “年薪” asc;
一个单词的别名可以不用双引号,但如果是两个或多个单词作为一个别名就需要使用双引号圈中