Oracle数据库之过滤和排序

前端之家收集整理的这篇文章主要介绍了Oracle数据库之过滤和排序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

oracle安装参照: Oracle数据库之安装教程

Oracle数据库总结:

Oracle数据库之基本查询
Oracle数据库之单行函数
Oracle数据库之多行函数
Oracle数据库之多表查询

sql> –查询10号部门的员工
sql> select *
2 from emp
3 where deptno=10;

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 7782 CLARK MANAGER 7839 09-6 -81 2450 10
  4. 7839 KING PRESIDENT 17-11-81 5000 10
  5. 7934 MILLER CLERK 7782 23-1 -82 1300 10

***sql> –字符串大小写敏感
sql> –查询名叫KING的员工*
sql> select *
2 from emp
3 where ename=’KING’;

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 7839 KING PRESIDENT 17-11-81 5000 10

***sql> –日期格式敏感
sql> –查询入职日期是17-11月-81的员工信息*
sql> select *
2 from emp
3 where hiredate=’17-11月-81’;

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 7839 KING PRESIDENT 17-11-81 5000 10

sql> –改日期格式
sql> select * from v$nls_parameters;

  1. PARAMETER VALUE
  2. ---------------------------------------------------------------- ----------------------------------------------------------------
  3. NLS_LANGUAGE SIMPLIFIED CHINESE
  4. NLS_TERRITORY CHINA
  5. NLS_CURRENCY
  6. NLS_ISO_CURRENCY CHINA
  7. NLS_NUMERIC_CHARACTERS .,NLS_CALENDAR GREGORIAN
  8. NLS_DATE_FORMAT DD-MON-RR
  9. NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
  10. NLS_CHARACTERSET ZHS16GBK
  11. NLS_SORT BINARY
  12. NLS_TIME_FORMAT HH.MI.SSXFF AM
  13.  
  14. PARAMETER VALUE
  15. ---------------------------------------------------------------- ----------------------------------------------------------------
  16. NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
  17. NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
  18. NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
  19. NLS_DUAL_CURRENCY
  20. NLS_NCHAR_CHARACTERSET AL16UTF16
  21. NLS_COMP BINARY
  22. NLS_LENGTH_SEMANTICS BYTE
  23. NLS_NCHAR_CONV_EXCP FALSE

sql> alter session set NLS_DATE_FORMAT=’yyyy-mm-dd’;

会话已更改。

*sql> select
2 from emp
3 where hiredate=’1981-11-17’;**

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- ---------- ----- ---------- ----------
  3. 7839 KING PRESIDENT 1981-11-17 5000 10

sql> alter session set NLS_DATE_FORMAT=’DD-MON-RR’;

会话已更改。

***sql> –between… and
sql> –查询薪水1000~2000之间的员工*
sql> select *
2 from emp
3 where sal between 1000 and 2000;

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300 30
  4. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  5. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400 30
  6. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30
  7. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  8. 7934 MILLER CLERK 7782 23-1 -82 1300 10

***sql> –in 在集合中
sql> –查询部门号是10和20的员工*
sql> select *
2 from emp
3 where deptno in (10,20);

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 7369 SMITH CLERK 7902 17-12-80 800 20
  4. 7566 JONES MANAGER 7839 02-4 -81 2975 20
  5. 7782 CLARK MANAGER 7839 09-6 -81 2450 10
  6. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20
  7. 7839 KING PRESIDENT 17-11-81 5000 10
  8. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  9. 7902 FORD ANALYST 7566 03-12-81 3000 20
  10. 7934 MILLER CLERK 7782 23-1 -82 1300 10

***sql> –模糊查询
sql> –查询名字以S打头的员工*
sql> select *
2 from emp
3 where ename like ‘S%’;

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 7369 SMITH CLERK 7902 17-12-80 800 20
  4. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20

sql> –查询名字是4个字的员工
1 select *
2 from emp
3* where ename like ‘__
sql> /

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  4. 7839 KING PRESIDENT 17-11-81 5000 10
  5. 7902 FORD ANALYST 7566 03-12-81 3000 20

sql> – 插入记录
sql> insert into emp(empno,ename,sal,deptno) values(1001,’Tom_AB’,3000,10);

已创建 1 行。

sql> select * from emp;

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 1001 Tom_AB 3000 10
  4. 7369 SMITH CLERK 7902 17-12-80 800 20
  5. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300 30
  6. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  7. 7566 JONES MANAGER 7839 02-4 -81 2975 20
  8. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400 30
  9. 7698 BLAKE MANAGER 7839 01-5 -81 2850 30
  10. 7782 CLARK MANAGER 7839 09-6 -81 2450 10
  11. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20
  12. 7839 KING PRESIDENT 17-11-81 5000 10
  13. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30
  14.  
  15. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  16. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  17. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  18. 7900 JAMES CLERK 7698 03-12-81 950 30
  19. 7902 FORD ANALYST 7566 03-12-81 3000 20
  20. 7934 MILLER CLERK 7782 23-1 -82 1300 10

sql> –查询名字中含有下划线的员工
sql> select *
2 from emp
3 where ename like ‘%_%’;

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 1001 Tom_AB 3000 10
  4. 7369 SMITH CLERK 7902 17-12-80 800 20
  5. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300 30
  6. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  7. 7566 JONES MANAGER 7839 02-4 -81 2975 20
  8. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400 30
  9. 7698 BLAKE MANAGER 7839 01-5 -81 2850 30
  10. 7782 CLARK MANAGER 7839 09-6 -81 2450 10
  11. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20
  12. 7839 KING PRESIDENT 17-11-81 5000 10
  13. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30
  14.  
  15. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  16. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  17. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  18. 7900 JAMES CLERK 7698 03-12-81 950 30
  19. 7902 FORD ANALYST 7566 03-12-81 3000 20
  20. 7934 MILLER CLERK 7782 23-1 -82 1300 10

sql> –转义字符
1 select *
2 from emp
3* where ename like ‘%_%’ escape ‘\’
sql> /

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 1001 Tom_AB 3000 10

sql> –查询员工信息,按照月薪排序
sql> select *
2 from emp
3 order by sal;

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 7369 SMITH CLERK 7902 17-12-80 800 20
  4. 7900 JAMES CLERK 7698 03-12-81 950 30
  5. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  6. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  7. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400 30
  8. 7934 MILLER CLERK 7782 23-1 -82 1300 10
  9. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30
  10. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300 30
  11. 7782 CLARK MANAGER 7839 09-6 -81 2450 10
  12. 7698 BLAKE MANAGER 7839 01-5 -81 2850 30
  13. 7566 JONES MANAGER 7839 02-4 -81 2975 20
  14.  
  15. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  16. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  17. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20
  18. 7902 FORD ANALYST 7566 03-12-81 3000 20
  19. 7839 KING PRESIDENT 17-11-81 5000 10

sql> –order by 后面 + 列,表达式,别名,序号
sql> select ename,sal*12
2 from emp
3 order by sal*12 desc;

  1. ENAME SAL SAL*12
  2. -------- ----- ----------
  3. KING 5000 60000
  4. FORD 3000 36000
  5. SCOTT 3000 36000
  6. JONES 2975 35700
  7. BLAKE 2850 34200
  8. CLARK 2450 29400
  9. ALLEN 1600 19200
  10. TURNER 1500 18000
  11. MILLER 1300 15600
  12. WARD 1250 15000
  13. MARTIN 1250 15000
  14.  
  15. ENAME SAL SAL*12
  16. -------- ----- ----------
  17. ADAMS 1100 13200
  18. JAMES 950 11400
  19. SMITH 800 9600

sql> –多个列排序
sql> select *
2 from emp
3 order by deptno,sal;

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 7934 MILLER CLERK 7782 23-1 -82 1300 10
  4. 7782 CLARK MANAGER 7839 09-6 -81 2450 10
  5. 7839 KING PRESIDENT 17-11-81 5000 10
  6. 7369 SMITH CLERK 7902 17-12-80 800 20
  7. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  8. 7566 JONES MANAGER 7839 02-4 -81 2975 20
  9. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20
  10. 7902 FORD ANALYST 7566 03-12-81 3000 20
  11. 7900 JAMES CLERK 7698 03-12-81 950 30
  12. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400 30
  13. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  14.  
  15. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  16. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  17. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30
  18. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300 30
  19. 7698 BLAKE MANAGER 7839 01-5 -81 2850 30

sql> –order by 作用于后面所有的列,desc只作用于离他最近的一列

sql> –查询员工信息,按照奖金排序
sql> select *
2 from emp
3 order by comm;

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30
  4. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300 30
  5. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  6. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400 30
  7. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20
  8. 7839 KING PRESIDENT 17-11-81 5000 10
  9. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  10. 7900 JAMES CLERK 7698 03-12-81 950 30
  11. 7902 FORD ANALYST 7566 03-12-81 3000 20
  12. 7934 MILLER CLERK 7782 23-1 -82 1300 10
  13. 7698 BLAKE MANAGER 7839 01-5 -81 2850 30
  14.  
  15. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  16. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  17. 7566 JONES MANAGER 7839 02-4 -81 2975 20
  18. 7369 SMITH CLERK 7902 17-12-80 800 20
  19. 7782 CLARK MANAGER 7839 09-6 -81 2450 10

sql> –a命令 append
sql> a desc
3* order by comm desc
sql> /

  1. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
  2. ---------- -------- --------- ---------- -------------- ----- ---------- ----------
  3. 7369 SMITH CLERK 7902 17-12-80 800 20
  4. 7782 CLARK MANAGER 7839 09-6 -81 2450 10
  5. 7902 FORD ANALYST 7566 03-12-81 3000 20
  6. 7900 JAMES CLERK 7698 03-12-81 950 30
  7. 7876 ADAMS CLERK 7788 23-5 -87 1100 20
  8. 7566 JONES MANAGER 7839 02-4 -81 2975 20
  9. 7698 BLAKE MANAGER 7839 01-5 -81 2850 30
  10. 7934 MILLER CLERK 7782 23-1 -82 1300 10
  11. 7788 SCOTT ANALYST 7566 19-4 -87 3000 20
  12. 7839 KING PRESIDENT 17-11-81 5000 10
  13. 7654 MARTIN SALESMAN 7698 28-9 -81 1250 1400 30
  14. 7521 WARD SALESMAN 7698 22-2 -81 1250 500 30
  15. 7499 ALLEN SALESMAN 7698 20-2 -81 1600 300 30
  16. 7844 TURNER SALESMAN 7698 08-9 -81 1500 0 30

Oracle数据库总结:

Oracle数据库之集合运算
Oracle数据库之数据处理
@L_404_7@
Oracle数据库之对象视图、索引、序列、同义词

猜你在找的Oracle相关文章