學SQL(Select,order by,where(1))


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頁))。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM