這禮拜開始在下班坐捷運的時候看看SQL的筆記
以下為心得
如果覺得不錯,希望給個鼓勵
如果有誤,也請多多指教


一、去掉重複欄位(DISTINCT的用法)
select distinct 欄位名稱 from 資料表名稱
註1.null也算是一種重複欄位
註2.如果distinct後面不只一個欄位,要全部相同才會去掉

二、如果欄位內有null要怎處理??(isnull函數的用法)
select 12*sal+isnull(comm,o) as 年薪 from 資料表
這是從資料表中抓出sal(月薪)的資料*12加上comm(成交獎金)以年薪欄位來顯示
有人會問會啥不用select 12*sal+comm as 年薪 from 資料表來表示
這又牽扯到null+任意值還是null的觀念
最後公式的說明可以用下面來表示
isnull(欄位1,a) 假如欄位1有值,以欄位內的值做計算,假設是null用a來計算
好像程式邏輯的if一樣,假如欄位是null用a來相加,不是就用comm裡的值來相加

三、運算子判斷先後() > and > or
這部分真的很有趣,如果寫過簡單的程式(像肉腳的版主><..)
應該很容易理解,不過還是做個說明會比較清楚
請看看以下兩個例子:
select * from 資料表 where job='程式設計師' or job='客服'and sal>30000
select * from 資料表 where (job='程式設計師' or job='客服') and sal>30000
這兩個SQL下的查詢命令看起來很像,可是查出來結果可是差很多@@
第一個是查資料表中 工作職稱為程式設計師或是(薪水超過三萬且職稱為課服)的所有資料
也就是說不管程式設計師薪水多少都會被查詢出來
第二個是查資料表中 工作職稱為程式設計師或客服且薪水都要超過三萬的所有資料
最簡單的說明就是如果資料表中有程式設計師薪水29999的話
在第一個資料表會顯示可是第二個就不會被查詢到

下次預告
升降冪、模糊查詢、新增刪除修改
等等要去看書了
今天目標看完group by

arrow
arrow
    全站熱搜

    kulo 發表在 痞客邦 留言(2) 人氣()