T-SQL基础知识
1. 索引 ?
(1) 建立索引 ?
create [unique][cluster] index <索引名> on <表名> (<列名>[<次序>]) ? ?
unique是唯一索引,保證列不重復(fù);而cluster是聚簇索引,是指索引項的順序與表中的記錄的物理順序一致的索引組合,一個表只能建立一個聚簇索引,如果該列經(jīng)常更新,就不宜在該列上建立聚簇索引 .
?例子:?Create unique index stuIndex on stu(ID asc,name desc) ? ?
(2) 刪除索引 ?drop index <索引名> on 表
2. 查詢 ?select [all|distinct] 字段名 from 表或者視圖 where 條件表達式 group by [沒有使用聚合函數(shù)的字段] having 條件 order by [asc|desc] ? ?
UNION連接表:UNION并不像JOIN關(guān)鍵字一樣是個真正的聯(lián)接,它更像是聯(lián)接兩個查詢結(jié)果. ?
需要注意的地方: ?
a. 所有進行UNION的查詢,SELECT列表中列的 數(shù)量 必須相同. ?
b. 為合并的結(jié)果集返回的標(biāo)頭(查詢結(jié)果集的列名)僅取第一個查詢. ?
c. 一個查詢中的每一列數(shù)據(jù)類型必須與其他查詢中對應(yīng)的列的數(shù)據(jù)類型隱式兼容. ?
d. UNION默認返回的方式是DISTINCT而非ALL,除非指定了ALL關(guān)鍵字,否則,只返回一個有重復(fù)的行. ??
例如: select col1 from t1 uncion all select col2 from t2; –> 這樣就能返回所有的行了。
3. 插入 ?
(1) 單一直插入 ?insert into 表 (字段) values (值).
(2) 整體插入 ?insert into 表 子查詢.
4. 更新數(shù)據(jù) ?
update 表 set 字段=值 where 條件表達式.
5. 刪除 ?
delete from 表 where 條件表達式.
6. 視圖 ?
(1) 視圖的建立 ?
create view 視圖名 (字段) as 子查詢 [with check option] ?其中,子查詢可以是任意復(fù)雜的select語句,但通常不允許含有order by子句合distinct短語. ?
[with check option]書上解釋得不清楚,用到時上網(wǎng)學(xué)習(xí).
(2) 視圖的刪除
drop view 視圖名 [cascade] ?
注:如果該視圖上還導(dǎo)出了其他視圖,則使用cascade級聯(lián)刪除語句,把該視圖和由它導(dǎo)出的所有視圖一起刪除.
7. 觸發(fā)器 ?
觸發(fā)器的建立 ?
create trigger trigger_name on table|view alter|instead of [insert,update,delete] ?as ?begin???功能語句塊 ?end
?注:sql為每個觸發(fā)器都自動創(chuàng)建了兩種特殊的表,即deleted表和inserted表. ?
(1)deleted表用于存儲delete和update所影響的行的副本. ?
(2)inserted表用于存儲insert和update所影響的行的副本.
?如果一個觸發(fā)器執(zhí)行引發(fā)了另一個觸發(fā)器,叫嵌套觸發(fā)器,觸發(fā)器最多可以嵌套32層. ?
(1)RaisError?自定義錯誤提示. ?
(2)RollBack?回滾. ?
8. 存儲過程 ?
create procedure 存儲過程名 [@參數(shù)名[=default][=output]] ??as ??begin ???功能語句塊 ??end
9. 游標(biāo) ?
(1) 聲明游標(biāo) ?declare cursor_name cursor [forward_only(默認)|scroll] [static|keyset|dynamic(默認,每次讀取都更新表)] for 查詢語句.
(2) 打開游標(biāo) ?open 游標(biāo)名稱 ? ?
(3) 讀取游標(biāo)
fetch [next|prior|first|last] from into @局部變量名?????
? (1) current of 游標(biāo)名 表示當(dāng)前游標(biāo) ??
? (2) @@fetch_status=0 表示讀取成功
(4) 關(guān)閉游標(biāo) ?close 游標(biāo)名稱
(5) 刪除游標(biāo) ?DealLocal 游標(biāo)名稱
10. 事務(wù) ?Begin TransAction ?commit ?TransAction ?rollBack TransAction
11. 部分全局變量參數(shù)
?@@ERROR???最后一個T-SQL錯誤的錯誤號. ?
?@@INENTITY??最后一次插入的標(biāo)識值.??
?@@LANGUAGE??當(dāng)前使用的語言的名稱.??
?@@MAX_CONNECTIONS?可以創(chuàng)建的同時連接的最大數(shù)目. ?
?@@ROWCOUNT??受上一個SQL語句影響的行數(shù).
?@@TRANSCOUNT??當(dāng)前連接打開的事務(wù)數(shù).
?@@VERSION??SQL Server的版本信息.
12. 相關(guān)設(shè)置 ?
(1)?set nocount on/off??打開、關(guān)閉提示影響的行數(shù).
(2)?set xact_abort on/off??打開、關(guān)閉事務(wù).
(3)?set implicit_transactions on/off將連接設(shè)置為隱式事務(wù)模式,如果設(shè)置為0ff,則使連接恢復(fù)為自動提交事務(wù)模式;如果設(shè)置為on,用戶每次必須顯示提交或回滾,否則當(dāng)用戶斷開連接時,事務(wù)及其所包含的所有數(shù)據(jù)更改將回滾.
?
?
?
?
?
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/Jonish/p/3272308.html
總結(jié)
- 上一篇: .NET Mvc Razor也可以这样玩
- 下一篇: 6kzz整合ueditor