Select
檢索單獨列
Select prod_name from products;
這是一個無無序的查詢。
注:SQL語句自動忽略“空白”,不區分大小寫。
檢索多列
Select prod_id,prod_name,prod_price from products;
檢索所有列
Select * from products;
Select Distinct
Select vend_id from products; Select distinct vend_id from products;
下面的語句只返回特定(唯一)的vend_id行,需要注意的是下面這種情況:
select distinct vend_id,prod_price...
將檢索所有行,除非兩個指定的行都是特定的,即distinct將應用於所有列。
完全限定引用"."
Select products.prod_name from crashcourse.products;
prod_name來自products表;products來自crashcourse數據庫。
注釋
“--”放在一行開頭表示注釋。
“/*”開始注釋;“*/”結束注釋。
Order by
--按照prod_name對檢索結果以字母順序排序(默認升序a-z) Select prod_name from products order by prod_name;
注:也可按未檢索列進行排序。
--按多列排序(price由低到高,prod_name由a到z) Select prod_id,prod_name,prod_price from products order by prod_price,prod_name;
多列檢索時:只有當price列有重復時,按照name再排序,否則name排序無意義。
--按序號排序:按照檢索的第二列和第三列排序 Select prod_id,prod_price,prod_name from products order by 2,3;
--降序排列1 Select prod_id,prod_price,prod_name from products order by prod_price DESC; --降序排列2 Select prod_id,prod_price,prod_name from products order by prod_price DESC,prod_name;
DESC關鍵詞只對直接位於它們前面的列名起作用,若要在多列上降序,需要確保每個列都有自己的DESC關鍵字。
注:在字典(dictionary)中,A等同於a。(管理員也可以更改這種規則)
Where(1)
where子句用於定義搜索條件(search criteria)/過濾條件(filter condition)。
Select prod_name,prod_price from products where prod_price = 2.50;
注:同時使用order by與where子句時,需要確保order by出現在where 子句后面。
where子句的運算符
| 運算符 | 描述 |
| = | 相等性 |
| <>或!= | 不等性 |
| < | 小於 |
| <= | 小於或等於 |
| > | 大於 |
| >= | 大於或等於 |
| between | 在兩個指定的值之間 |
示例:
--等於 select prod_name,prod_price from products where prod_name='Fuses'; select prod_name,prod_price from products where prod_name='fuses';/*結果與上一條select不同*/ --小於 select prod_name,prod_price from products where prod_price< 10; --小於或等於 select prod_name,prod_price from products where prod_price<= 10; --不等於 select vend_id,prod_name from products where vend_id<>1003;/*“<>”的含義是小於或者大於*/ select vend_id,prod_name from products where vend_id!=1003;/*“!=”的含義是不等於*/ --檢查范圍(值或日期) select prod_name,prod_price from products where prod_price between 5 and 10; --檢查null select prod_name from products where prod_price is null;
注:字符串數據類型需要使用引號,數值列不需要使用;
由於未知(unknown)的特殊含義,在過濾匹配或不匹配的情況時不會返回具有NULL值的行。
參考文獻:《Oracle PL/SQL 必知必會》[美] Ben Forta 著 傅強 譯 (第4章~第6章(31~63頁))。
