oracle的表的数据管理2 -- 基本查询
oracle的基本查询
1. 查询表结构
Desc dept;
2. 查询所有列
Select * from dept;
3. 查询指定列
Select deptno,job from emp;
4. 如何取消重复列
Select distinct deptno,job from emp;
5. 给定条件查询
select sal,job,deptnofrom emp where ENAME='SMITH';
6. 使用算数表达式
Eg:计算每个雇员的年工资 |
SQL> selectename,sal*12 from emp; ENAME SAL*12 -------------------- SMITH 9600 ALLEN 19200 |
7. 使用列的别名
Eg:为列取一个别名(列字段后面直接加”别名”) |
SQL> select ename[as] "姓名",sal*12"年工资"from emp; 姓名 年工资 -------------------- SMITH 9600 ALLEN 19200 WARD 15000 |
8. 如何处理null值
Eg:当遇到null值做计算时 |
SQL> select enameas "姓名",sal*12+nvl(comm,0)*12"年工资"from emp; 姓名 年工资 -------------------- SMITH 9600 ALLEN 22800 |
当遇到null时,加上nvl做判断 |
9. 连接字符串
Eg:将字段与字段货字段与内容进行连接 |
SQL> select ename|| ' is a ' || job "人员介绍"from emp; 人员介绍 ------------------------- SMITH is aCLERK ALLEN is aSALESMAN |
10. 使用where语句
Eg:基本的where语句 |
|
1. |
selectename,sal from emp where sal>=3000; 显示工资大于3000的员工 |
2. |
SQL> selectename,HIREDATE from emp where HIREDATE>'1-1月-1982'; ENAME HIREDATE SCOTT 1987/4/19 显示1982-1-1之后入职的员工 |
3. |
SQL> select ename,salfrom emp where sal>2500 andsal<5000; ENAME SAL JONES 2975.00 BLAKE 2850.00 显示工资在2500到5000之间的员工 |
11. 使用like操作符
Eg:like操作符主要分两种%和_。 |
|
% |
SQL> selectename,sal from emp where ename like'S%'; ENAME SAL SMITH 800.00 显示名字第一个字母为S的 |
_ |
SQL> selectename,sal from emp where ename like'__O%'; ENAME SAL SCOTT 3000.00 显示名字第三个字母为O的 |
12. 在where条件中使用in
Eg:当产寻条件零碎而多时,可用in()将查询条件隔开 |
SQL> selectename,empno from emp where empno in (7900,7782,7788); ENAME EMPNO CLARK 7782 |
13. 使用is null的操作符
Eg:当查询条件为null时使用isnull操作符 |
SQL> selectename,mgr from emp where MGR is null; ENAME MGR --------------- KING |
14. 使用逻辑操作符号
Eg:工资大于800或者职位是manager的并且名字第一个字母为J |
SQL> select ename,sal,job from emp where (sal>800 or job='MANAGER') and ename like'J%'; ENAME SAL JOB JONES 2975.00 MANAGER JAMES 950.00 CLERK |
15. 使用order by字句
Eg:升降序排序展示desc为降序 |
|
1. |
按照工资从低到高的顺序显示雇员的信息 |
SQL> select ename,sal from emp order by sal; ENAME SAL SMITH 800.00 JAMES 950.00 |
|
2. |
按照部门号升序而雇员的工资降序排列 |
SQL> select DEPTNO,ename,sal from emp order by DEPTNO,sal desc; DEPTNO ENAME SAL 10 KING 5000.00 10 CLARK 2450.00 20 FORD 3000.00 20 JONES 2975.00 |
16. 使用列的别名排序
Eg:使用别名排序,注意后面也要写上,并且加上asc |
SQL> select ename,sal*12 "年薪" from emp order by "年薪" asc; ENAME 年薪 SMITH 9600 JAMES 11400 |