模擬銀行業務 函數的用意,通常情況下是可以重複使用的,如果僅僅為了這次(只用一次),工作量並沒有降低,如果很多時候都要用,就可以用函數。 範例1: case end 寫成函數 先查詢出來後,可以將兩個case end寫成兩個函數 --(4)查詢銀行卡信息,將銀行卡狀態1,2,3,4分別轉換為漢字"正常,掛失,凍結,註銷" --根據銀行卡餘額顯示銀行卡等級30萬以下為"普通用戶",30萬...
[SQL筆記] 函數一
模擬銀行業務 函數 函數分為:(1)系統函數 (2)自定義函數 自定義函數又分為: 純量值函數/標量值函數(返回單個值)select 純量值函數 資料表值函數/表值函數(返回查詢結果)select * from 資料表值函數 刪除函數:drop function 函數名 drop function GetRecordByTime 語法:純量值函數(返回單...
[SQL筆記] Cursor 指標
Cursor 指標 定位到結果集中某一行 靜態指標Static:在操作指標的時候,數據發生變化,指標中的數據不變。 動態指標Dynamic:在操作指標的時候,數據發生變化,指標中的數據改變,默認值。 鍵集驅動指標KeySet:在操作指標的時候,被標識的列發生變化,指標中的數據改變,其他列改變,指標中數據不變。(只有部分數據變化) 建立指標是用declare 建立測試資料...
[SQL筆記] View (檢視表/視圖)
View (檢視表/視圖) 視圖:可以理解成虛據表 功能:主要是用數據的展示,如果要做insert/update/delete,千萬不要在視圖裡做。 如果這個查詢會多次使用,我們可以用視圖來解決。 將複雜的SQL語句封裝變成一個View 檢視(視圖),直接用select * from 視圖 語法: create view 視圖名字 as SQL語句 go 模擬銀行業務 --(1)顯示...
[SQL筆記] 索引
索引 提高檢索查詢效率。 索引可以加快查詢速度,但注意它是以空間換取時間。 所以當你索引越多時,你所需要的記憶體與維護索引的 cpu 運算就需要越多。 使用場景 TODO 如果查詢速度慢,就會建索引來增加速度 聚集索引(唯一索引/單列索引) 類似字典中的拼音索引,物理儲存順序。 每個表只能有一個聚集索引,通常主鍵會是這張表的聚集索引。 非聚集索引(非唯一索引/多列索引) 類似字...
[SQL筆記] Begin Transaction 交易(事務)
begin transaction、commit transaction、rollback transaction 要馬同時成功,要馬同時失敗。 模擬銀行業務 check 約束:alter table BankCard add constraint ck_money check(CardMoney >= 0) @@error沒有報錯 @@error=0,不是0就是有問題...
[SQL筆記] 分頁
R 分頁 方案一:Top方式分頁(但top效率不是很高) 方案二:使用row_number分頁 row_number 分頁 --假設每頁5條數據 --第1頁: 1 to 5 --第2頁: 6 to 10 select * from (select ROW_NUMBER() over(order by StuId) RowId, * from Student) Temp wher...
[SQL筆記] 子查詢
模擬銀行業務 範例1 (1)李四的銀行卡號為”999998888801” 查出餘額比李四多的銀行卡信息、顯示卡號、身份証、姓名、餘額 方案一:使用變量 Step1: 先查出要顯示的資訊欄位(inner join) Step2: 再查出李四的卡餘額(使用變量declare, select =(查詢條件)) Step3: 再將Step1加上where條件 --(1)李四的銀行卡號...
[SQL筆記] 流程控制
R if begin-end else case when-then-else end while begin-end 特殊字符: Tab: char(9) 換行: char(10) ENTER char(13) 選擇分支結構 if else if begin end else begin end case end cas...
[SQL筆記] 運算符
R 數據轉換類型:Convert、cast Convert(varchar(10),@Area) => Convert(轉換類型,要轉換的變數) cast(@Area as varchar(10)) => cast(變數 as 轉換的類型) All所有的才成立,Any任一個就成立。 All、Any邏輯判斷的時候,數字...