!查看表结构
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%';