1.2建立視圖web
視圖存儲在數據庫中,但並不保存數據,指示一個通過優化的SELECT查詢。數據庫
1.3建立存儲過程函數
存儲過程能夠執行操做和業務功能,例如插入,更新,刪除表數據。經過參數傳遞,判斷是選擇執行的操做。輸入需在AS字符前定義。測試
1.4建立觸發器優化
觸發器對錶的記錄執行特定的操做時執行。觸發器一般應用特殊的業務規則來保證數據的完整性。觸發器獨有的特性包括賦予DML的操做、隱式事務控制,以及虛表引用。編碼
1.5建立用戶自定義函數url
主要實現定製的業務邏輯。CREATE命令以後是函數名,函數名後的括號中包含對一個或多個參數的引用。每一個參數後跟數據類型。Returns關鍵字後的文本表名函數返回的數據類型。spa
DML(Data Manipulation Language)數據操縱語言。code
子句orm |
解釋 |
SELECT |
後跟一組列的列表,或者一個星號,表示要返回全部的列 |
FROM |
後跟一個表或視圖的名字,或者帶有鏈接表達式的多個表 |
WHERE |
後跟過濾規則 |
ORDER BY |
後跟一組列的列表,用於對這些列進行排序 |
2.1列的選擇
返回yhid,yhmc對應的列。用(*)來表明全部列執行查詢會下降處理器的效率,通常儘可能不是用(*)來返回全部列數據。
在執行多表查詢的時候,若是表之間有相同名稱的列,必須制定所屬表。例如上例的yhid爲Sys_Yonghu.yhid
2.2列的別名
別名的設置主要方便業務層,數據層編碼人員對列明的理解和描述。常見別名方法有
語法 |
描述 |
列AS別名 |
|
列別名 |
|
別名=列 |
|
2.3被計算和繼承的列
Margin爲被計算生成的新列
2.4行的過濾
行的過濾有兩種方法:是用WHERE子句根據過濾條件來限制每一個行,或使用TOP子句使列表中只包含指定數量的列。
2.5 WHERE子句
SQL Server在檢索數據以前會先運行WHERE子句,節省內存和I/O資源。
2.51比較運算符
比值與限定值一般可總結爲:一個值等於、小於或大於另外一個值。
運算符 |
描述 |
= |
等於。可用於幾乎全部數據類型 |
<>或者!= |
不等於 |
< |
小於。用於數值與日期 |
> |
大於 |
!< |
不小於 |
!> |
不大於 |
<= |
小於等於 |
>= |
大於等於 |
Like |
用於對字符型的值進行通配符匹配 |
對於Like運算經常使用的通配符有
運算符 |
說明 |
% |
0個或多個字符 |
_ |
單個字符 |
[] |
在指定範圍或集合內的單個字符 |
[^] |
不在指定範圍或集合內的單個字符 |
找出以某個值結束的字符串,只需把通配符放在字符串的開頭
select jgid from sys_yonghu where jgid like'%02'
運行結果:0102
找出包含某個字符串的值,在開頭和結尾使用通配符
運行結果:0104
找出包含某個字符串的值,使用下劃線
運行結果:0104
找出單個字符在指定範圍或集合中的值,可使用方括號
運行結果:0104,0102
在一個範圍內搜索,在字母之間添加短橫線
運行結果:0104,0102
搜索不包含某些字符的值,使用^符號
運行結果:0102
查找不相似某規則的字段,使用NOT
select jgid from sys_yonghu where jgid notlike'0102%'
運行結果:01,0104
2.52邏輯比較
邏輯門分爲三種:與(And)、或(Or)、非(Not)
And運算符:若是整個表達式的結果是真,則表達式中的每一個語句都必須是真。只有匹配where後面兩個過濾器才能查詢獲得。
Or運算符:只要執行匹配任何一個條件,就會被返回。
NOT運算符:該運算符不是獨立的,它是一個能夠放在任何邏輯表達式前面的修飾符,能獲得與結果相反的結果。NOT運算符一般效率比較低,SQL Server實際上將銜處理基本表達式,而後才提取不包含在原結果中的行。
2.53 NULL
Null值不等於任何值,甚至它本身。可用IS運算符來測試Null。也可使用IS NOT來測試非NULL值。
2.54被擴展的過濾技術
通常爲日期和數值的範圍匹配。
2.55 BETWEEN運算符
簡化範圍表達式,在值範圍之間,幷包括值範圍的邊界。
2.56 IN()函數
可也把一個字段與列表中的數值進行匹配。
in函數也能夠用於子查詢。
2.57運算符優先級
NOT運算符最早被處理,其次是AND,而後是OR,最後才考慮運算符。
2.58使用括號
使用括號來分隔表達式,以制定運算符的優先次序。處理多個運算時,使用括號就不用關心運算符的正常優先級。
2.59結果排序
排序規則:若是但願行以某種順序返回,就必須使用ORDER BY 子句來強制排序。ORDER BY 子句老是放在WHERE子句後面,它能夠包含一個或多個列,每一個列之間用括號分割。默認爲升序ASC,若是須要降序則使用DESC
2.510排在前面的值
返回排序排在前面的值,能夠指定固定數量的行或者指定總行數的百分比。
WITH TIES語句:把全部和最後一行相同的已排序記錄都加到結果集中。
百分比:用百分比來指定整個結果集的百分比,SQL SERVER對記錄進行計算,並圓整爲最近的整數。