1. 程式人生 > >Oracle OCP 學習日誌-對資料進行限制和排序-02

Oracle OCP 學習日誌-對資料進行限制和排序-02

  • 字串和日期

字串和日期在單引號內;

字元區分大小寫,日期區分格式;

預設日期何氏為DD-MON-RR。

SELECT last_name 
    FROM   employees
    WHERE  hire_date 
    = '17-FEB-96' ;
  • 比較運算子

請注意,不能在WHERE子句中使用別名。 注:符號!=和^=也可以表示“不等於”條件。    
SELECT last_name, salary
    FROM   employees
    WHERE
salary BETWEEN 2500 AND 3500 ;
  •  IN運算子

注:在Oracle Server內部將IN運算子作為一組OR條件(如a=value1 or a=value2 or a=value3)進行求值。因此,使用IN運算子對改進效能並無益處,只能達到簡化邏輯 的目的。  
  • 使用LIKE運算子執行模式匹配

%表示零個或多個字元; _表示一個字元;    
  • ESCAPE識別符號

如果需要與實際的%和_字元完全相匹配,請使用ESCAPE識別符號。此選項指定轉義符是什麼。如果要搜尋包含SA_的字串,則可使用下面的SQL語句:
SELECT
employee_id, last_name, job_id FROM employees WHERE job_id LIKE '%SA\_%' ESCAPE '\';

 

ESCAPE識別符號將反斜槓(\)標識為轉義符。在SQL語句中,轉義符位於下劃線(_)之前。這樣Oracle Server將按字面意義解釋下劃線。   I
  • 優先順序規則

  • 排序

按select子句中第三列排序

 
SELECT
last_name, job_id, department_id, hire_date FROM employees ORDER BY 3;

order by 可用列別名

SELECT employee_id, last_name, salary*12 annsal
FROM   employees
ORDER BY annsal ;
  • Using SQL Row Limiting Clause in a Query

SELECTFROM[ WHERE …  ]
 [ ORDER BY …  ]
 [OFFSET offset { ROW | ROWS }]
[FETCH { FIRST | NEXT } [{ row_count | percent PERCENT }] { ROW | ROWS } 
  { ONLY | WITH TIES }]

顯示前5行

方法一

 SELECT employee_id, first_name
 FROM employees
 ORDER BY employee_id
 FETCH FIRST 5 ROWS ONLY;

 

方法二

 
 SELECT employee_id, first_name
 FROM employees 
 WHERE ROWNUM <=5
 ORDER BY employee_id;

顯示第6-8行(第5行後取3行)

 SELECT employee_id, first_name
 FROM employees
 ORDER BY employee_id
 OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY;

顯示前2行,返回額外的行

SELECT FIRST_NAME||' '||LAST_NAME,SALARY 
FROM EMPLOYEES
ORDER BY SALARY
FETCH FIRST 2 ROWS WITH ties;

  • 替代變數

  使用以與號(&)為字首的變數可提示使用者輸入一個值
SELECT employee_id, last_name, salary, department_id
FROM   employees
WHERE  employee_id = &employee_num ;

 

對日期值和字元值使用單引號:

SELECT last_name, department_id, salary*12
FROM   employees
WHERE  job_id = '&job_title' ;
在WHERE子句中,日期值和字元值必須放在單引號中。這一規則也適用於替代變數。   指定列名、表示式和文字 不但可以在SQL語句的WHERE子句中使用替代變數,還可以對列名、表示式或文字使用替代變數。
SELECT employee_id, last_name, job_id,&column_name
FROM   employees
WHERE  &condition
ORDER BY &order_column ;

 

  如果要重複使用變數值而不每次都顯示提示,請使用雙與號(&&):
SELECT   employee_id, last_name, job_id, &&column_name
FROM     employees
ORDER BY &column_name ;

 

DEFINE建立變數並賦值

DEFINE  employee_num=112;

UNDEFINE刪除變數

DEFINE  employee_num=112;

 

開啟/關閉顯示替換後命令

 SET VERIFY ON|OFF