程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oracle基本查詢過濾排序示例解析

Oracle基本查詢過濾排序示例解析

編輯:關於Oracle數據庫
    以下是對Oracle中的基本查詢過濾排序示例進行了詳細的分析介紹,需要的朋友可以參考下  

    基本查詢:

    復制代碼 代碼如下:
    --查詢所有員工的信息
    select * from emp;
    --設置行寬
    set linesize 120;
    --設置列寬為四個數字的寬度
    col empno for 9999;
    --設置列寬,a表示字符串共八位長度
    col ename for a8
    --設置pageSize每頁顯示30條記錄
    set pagesize 30;
    --sql中支持算數表達式,注意:如果一個表達式中含有空值,則整個表達式為空
    select empno,ename,sal,sal*12,comm,sal*12+comm from emp;
    --使用濾空函數如果comm為空將以0代替
    select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0) from emp;
    --使用別名的三種方式,別名中有無雙引號的區別:帶雙引號的可以包含空格和特殊字符,不帶雙引號的則不能
    select empno as "員工編號",ename "姓名",sal 月薪,comm,sal*12+nvl(comm,0)年收入 from emp;
    --關於disctinct,相同記錄只取一次
    select distinct deptno from emp;
    --當disctinct跟多個值時,當deptno和job均一樣時,才認為是相同記錄
    select distinct deptno,job from emp;
    --連接符的使用
    select ename ||'的薪水是'||sal from emp;


    注意:
    SQL 語言大小寫不敏感。
    SQL 可以寫在一行或者多行
    關鍵字不能被縮寫也不能分行
    各子句一般要分行寫。
    使用縮進提高語句的可讀性。

    過濾和排序

    復制代碼 代碼如下:
    --查詢系統參數
    select * from v$nls_parameters;
    --修改日期格式
    alter session set NLS_DATE_FORMAT='yyyy-mm-dd';
    --隱士方式轉換日期,會影響性能
    select * from emp where hiredate='1981-11-17';
    --顯示方式轉換日期
    select * from emp where hiredate=to_date('1981-11-17','yyyy-mm-dd');
    --比較運算符,查詢工資大於1000,小於2000的員工,between and含邊界
    select * from emp where sal>=1000 and sal<=2000;
    select * from emp where sal between 1000 and 2000;
    --in: 在集合中,查詢10號部門和20號部門的員工
    select * from emp where deptno=10 or deptno=20;
    select * from emp where deptno in (10,20);
    --模糊查詢:查詢名字以S打頭的員工
    select * from emp where ename like 'S%';
    --查詢名字有四個字的員工,要求四個下劃線
    select * from emp where ename like '____';
    --查詢姓名中含義下劃線的員工,_下劃線為特殊字符需要轉義,escape 聲明轉義
    select * from emp where ename like '%_%' escape '';
    --查詢獎金不為空的員工
    select * from emp where comm is not null;
    --查詢員工信息,按照月薪排序
    select * from emp order by sal;
    --a命令:追加命令,將上邊改為降序排序
    a  desc
    --查詢員工信息,按照年薪排序
    select empno,ename,sal,sal*12 from emp order by sal*12;
    --order by後面可以跟別名
    select empno,ename,sal,sal*12 年薪 from emp order by 年薪;
    --order by後面可以跟序號
    select empno,ename,sal,sal*12 from emp order by 4;
    --order by作用於多列,先按照第一列排序;然後按照第二列排
    select * from emp order by deptno,sal;
    --order by作用於多列,降序需要每列均有desc
    select * from emp order by deptno desc,sal desc
    --將空值排到最後
    select * from emp order by comm desc nulls last;
    --屏蔽/開啟反饋信息
    set feedback off/set feedback on


    排序的規則 :
    可以按照select語句中的列名排序
    可以按照別名列名排序
    可以按照select語句中的列名的順序值排序
    如果要按照多列進行排序,則規則是先按照第一列排序,如果相同,則按照第二列排序;以此類推

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved