指定搜尋條件 符合條件 LIKE(%、_) --取得商品名稱含有「電腦」的商品名稱 select [商品名稱] from [dbo].[商品清單] where [商品名稱] like '%電腦%' --取得商品名稱以「電腦」開頭的商品名稱 select [商品名稱] from [dbo].[商品清單] where [商品名稱] like '電腦%' --取得商品名稱以「電腦」結尾的商品...
[SQL] IS NULL 的使用方式
Null概念 在SQL當中,NULL 代表「未定」、「不明」。 要與null來比較時,要用IS這個比較運算子,不能使用=、!=、<>等作比較,不然將無法得到正確的結果。 範例 取得已設定販賣單價的商品名稱(販賣單價為null的商品) select [商品名稱] from [商品清單] where [販賣單價] is null 如果將 Where改成下面這樣,就無...
[SQL] NOT IN 的使用方式 (同等 Where Not ...)
IN可能存在的效能疑慮(效能差),可以使用EXISTS取代。 範例一 --取得負責人ID不是1、2、3的負責人姓名 select [負責人姓名] from [負責人清單] where [負責人ID] not in (1,2,3) 執行結果 負責人姓名 藤本 小林 伊藤 佐瀨 宇賀神 岡田 Where Not Not In與下面 where not敘述方式相同: sel...
[SQL] IN 的使用方式
IN可能存在的效能疑慮(效能差),可以使用EXISTS取代。 範例一 取得負責人ID為1、2、3的負責人姓名 --取得負責人ID為1、2、3的負責人姓名 select [負責人姓名] from [負責人清單] where [負責人ID] in (1,2,3) 執行結果 負責人姓名 鈴木 小野 齋藤 in所指定之括弧內的值為「符合其中任一數值」的意思,與使用or的意思是...
[SQL] 測試用Script
Table /* * 製作表單指令檔(SQL Server 版) * * 已確認可在SQL Server 2005 + Windows XP Service Pack 2中執行 */ -- 製作表單:商品清單 CREATE TABLE 商品清單 ( 商品ID NUMERIC NOT NULL, 商品名稱 VARCHAR(30) NOT NULL, ...
[SQL筆記] 預存程序(stored procedure) 二
模擬銀行業務 [SQL筆記] 預存程序(stored procedure) 一 寫SP輸入參數:@參數名 資料型態 寫SP輸出參數:@sum 資料型態 ouput,輸出參數後面加上ouput 調用輸出參數SP:exec proc_sp名稱 輸入參數的值,@sum output,輸出參數後面加上ouput floor(rand()*10)隨機數:sele...
[SQL筆記] 預存程序(stored procedure) 一
模擬銀行業務 預存程序(stored procedure) 跟函數概念很像,他們的本質區別在:函數特點是在SQL語句中被調用,而SP預存程序是可以由外面來調用,例如在C#、Java中調用。 建立SP:create proc proc_SP名稱 刪除SP:drop porc proc_SP名稱 調用SP:exec proc_SP名稱 SQL的SP返回值必須整數 語法...
[SQL筆記] Trigger 觸發程序(觸發器)
在開發過程中,最好不要有過多的觸發器,要謹慎使用,因為觸發器會有不同觸發的渲染效果,不停的觸發下去。 例如:假設我們做了一個觸發器,刪A自動刪B,但如果有人在B表也寫了一個觸發器,刪B自動刪C,又有一個人也寫了刪C自動刪D,這樣一系列的觸發,就會發生不好的事情,你刪了A表的一個數據,結果BCD表都被觸發了,BCD的數據也都被刪了,這樣就造成了數據的丟失了。業務邏輯可能本身只是希望A刪掉的同...
[SQL筆記] 函數二
模擬銀行業務 函數的用意,通常情況下是可以重複使用的,如果僅僅為了這次(只用一次),工作量並沒有降低,如果很多時候都要用,就可以用函數。 範例1: case end 寫成函數 先查詢出來後,可以將兩個case end寫成兩個函數 --(4)查詢銀行卡信息,將銀行卡狀態1,2,3,4分別轉換為漢字"正常,掛失,凍結,註銷" --根據銀行卡餘額顯示銀行卡等級30萬以下為"普通用戶",30萬...
[SQL筆記] 函數一
模擬銀行業務 函數 函數分為:(1)系統函數 (2)自定義函數 自定義函數又分為: 純量值函數/標量值函數(返回單個值)select 純量值函數 資料表值函數/表值函數(返回查詢結果)select * from 資料表值函數 刪除函數:drop function 函數名 drop function GetRecordByTime 語法:純量值函數(返回單...