Oracle學習日誌-5(算數運算符,比較運算符和邏輯運算符)

由於有編程基礎,因此對於這一章仍是很好理解,只須要注意對NULL的運算。
操做的表格
sql

算數運算符

查詢商品名字和商品售價,並商品售價乘2編程

SELECT product_name,sale_price * 2 AS "sale_price * 2" 
FROM Product;


查詢商品名字,並查詢商品利潤code

SELECT product_name,sale_price-purchase_price AS "利潤" 
FROM Product;


加法和除法也是同樣的操做,注意包含NULL的運算結果都是NULL。blog


比較運算符

運算符:
等於:=
不等於:<>
大於等於>=
大於:>
小於等於:<=
小於:<
好比查詢售價大於1000的商品。字符串

SELECT product_name,sale_price 
FROM Product
WHERE sale_price>1000;


查詢2019年1月4日以前登記的商品class

SELECT product_name,regist_date 
FROM Product
WHERE regist_date<to_date('2019-1-4','yyyy-mm-dd');


注意

對字符串進行比較查詢時,如 1,2,3,10,15,123,32按照字符串類型儲存時,按照從小到大的順序排列是:1<10<123<15<2<3<32。
由於字符串的比較是先比較首位,1,10,123的首位1比2,3,32的首位小。若是首位相同,就比較下一位。
不能對NULL使用比較運算符。好比查詢售價<>2800的商品名字,售價爲NULL的的記錄不會被選取。一樣,若是要查詢售價爲NULL的商品名字,也特殊一點。基礎

SELECT product_name, purchase_price
FROM Product
WHERE purchase_price IS NULL;


或者用IS NOT NULL查詢不爲空的記錄。date

邏輯運算符

這部分很簡單,平時都有用到,因此只列幾個列子。im

  • AND運算符
    查詢分類爲廚房用具,而且售價大於1000的記錄:
SELECT *
FROM Product
WHERE product_type='廚房用具' AND sale_price>1000;

  • NOT運算符
    查詢分類不爲辦公的記錄:
SELECT *
FROM Product
WHERE NOT product_type='辦公';

  • OR運算符
    查詢售價大於3000.或者小於1000的記錄:
SELECT *
FROM Product
WHERE  sale_price>3000 OR sale_price<1000;

  • 組合使用
    查詢廚房用品中,售價大於3000或者小於1000的記錄:
SELECT *
FROM Product
WHERE  product_type='廚房用具' AND (sale_price>3000 OR sale_price<1000);

  • NULL的區別對待。 在邏輯運算中,除了真與假,還有第三種狀況。不肯定(UNKNOWN),真值表:
相關文章
相關標籤/搜索