oracle表的查询学习笔记

来源:互联网 发布:数字图像处理算法研究 编辑:程序博客网 时间:2024/05/01 01:04

!查看表结构

desc emp;

?复制所查询的表数据,加入该表:insert into users(userID,username,userpass) select * from users;

      ?查询该表有多少列:select count (*) from users;

?取消重复行:select distinct deptno,job from emp;

!使用算数表达式

?显示年工资:select sal*13,ename from emp;

?对列名起别名:select sal*13 "年工资" , ename from emp;

 ?+奖金的年工资:select sal*13+comm*13 "年工资" ,eanme from emp;此时查询出的信息中如果comm列为空则查询出的年工资信息就是空的。

?解决方案:处理null值,使用nvl函数来处理:

    select sal*13 +nvl(comm,0*13) "年工资", ename from emp;

!使用where 字句

?查找1982.1.1后入职的员工:select ename,hiredate from emp where hiredate >‘01-1月-1982’ ;

?查找工资大于2000小于2500元的人:select ename,sal from emp where sal<=2500 and sal>=2000;

!使用like操作符

%:表示任意0到多个字符

_:表示单个字符

?显示首字符为S的员工姓名和工资:select ename ,sal from emp where ename like 'S%';

?显示第三个字符为大写0的所有的员工的工资:select ename ,sal from emp where ename like '_ _O%';此处的空白是不需要的       只是为了看的清楚。

!在where条件中使用in

?显示empno为7844,7788,7839...的雇员的情况:select * from emp where empno in(7844,7788,7839);

!使用is null的操作符

?显示没有上级的雇员的情况:select * from emp where mgr is null;

!使用逻辑操作符号

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

select * from emp where (sal>500 or job='MANAGER') and ename like'J%';


0 0