t-sql程式設計
1.變數
全域性變數
變 量含 義@@error
最後乙個t-sql錯誤的錯誤號
@@identity
最後一次插入的識別符號
@@language
當前使用的語言名稱
@@max_connections
可以建立的同時連線的最大數目
@@rowcount
受上乙個sql語句影響的行數
@@servername
本地伺服器的名稱
@@servicename
該計算機上的sql服務名稱
@@timeticks
當前計算機每刻度的微秒數
@@transcount
當前連線開啟的事務數
@@version
sql server的版本資訊
區域性變數 關鍵字declare
宣告:declare @變數名 資料型別
示例:declare @name varchar(8)
賦值:方法1:select @a=1, @b=3
方法2:set @a=2
(注:select一次可以給多個變數賦值,而set只能賦值乙個)
2.輸出語句
語法:print 變數或字串
select 變數 as 自定義列名
示例:print 『伺服器名稱』+ @@servername
select @@servername as 『伺服器名稱』
3.邏輯控制語句
if-else條件語句
語法:if(條件)
begin
語句或語句塊1
endelse
begin
語句或語句塊2
endwhile迴圈語句
語法:while(條件)
begin
語句或語句塊
break
endcase多分支語句
語法:case
when 條件1 then 結果1
when 條件1 then 結果1
else 其它結果
go批處理語句
逐條語句執行
子查詢
1.子查詢語法
示例:select * from表名where 字段》(子查詢)
(注:子查詢作為where條件的一部分也可和delete,select,update,insert一起連用,語法類似select)
2.in 和not in子查詢
示例1:select * from表名where 字段 in (子查詢)
示例2:delete * from 表名 where 字段 not in(子查詢)
(注:in後面的子查詢可以返回多條記錄,如果查詢結果為多條用=會出現編譯錯誤)
3.exists 和not exists子查詢
示例:if exists (子查詢)
begin
語句塊end
(注:exists一般用於子查詢的存在檢測,結果非空返回真,否則返回假)
事務
事務(transaction)是單個的工作單元。如果某一事物成功,則在該事務中進行的所有資料更改均會提交,成為資料庫的永久組成部分。如果事務遇到錯誤切必須取消或回滾,則所有資料更改均被清除
語法:開始事務:begin transaction
回滾事務:rollback transaction
提交事務:commit transaction
索引
索引提供指標以指向儲存在表中指定列的資料值,然後根據指定的排列次序排列這些指標。資料庫使用索引的方式與使用書的目錄很相似:通過搜尋索引找到特定的值,然後跟隨指標到達包含該值的行
unique :唯一索引(可選)
clustered:聚集索引(如:拼音)
nonclustered:非聚集索引(如:筆畫)
fillfactor:填充因子(1-100)
1.建立索引
示例:create unique clustered index 索引名
on 表名 (列名1,列名2)
with fillfactor=30
2.刪除索引
示例:drop index 表名.索引名
3.使用索引查詢
示例:select * from stumarks
(index = 索引名)
where writtenexam between 60 and 90
檢視
使用檢視是另一種檢視資料庫中乙個或多個表中資料的方法,檢視是一種虛擬表,通常是作為來自乙個或多個表的行或列的子集建立的,它的行和列來自查詢中引用的表
1.建立檢視
語法:create view 檢視名
as select語句
2.刪除檢視
語法:drop view 檢視名
儲存過程
儲存過程是sql語句和控制流語句的預編譯集合,儲存在資料庫內,可由應用程式呼叫執行,它可以接收引數,輸出引數,返回單個或多個結果集以及返回值
1.系統儲存過程
系統儲存過程
說明sp_databases
列出伺服器上的所有資料庫
sp_helpdb
報告有關知道那個資料庫或所有資料庫的資訊
sp_renamedb
更改資料庫的名稱
sp_tables
返回當前環境下可查詢物件的列表
sp_columns
返回某個表列的資訊
sp_help
檢視某個表的所有資訊
sp_helpconstraint
檢視某個表的約束
sp_helpindex
檢視某個表的索引
sp_stored_procedures
列出當前環境中的所有儲存過程
sp_password
新增或修改登入賬戶的密碼
sp_helptext
顯示預設值,未加密的儲存過程,使用者定義的儲存過程,觸發器或試圖的實際文字
2.建立儲存過程
create procedure 儲存過程名
引數1,引數2
assql語句
3.建立帶輸出引數的儲存過程
定義引數的時候後面加output(呼叫的時候也要加output)
如:@sum int output
4.刪除儲存過程
drop procedure 儲存過程名
5.呼叫儲存過程 exec 關鍵字
語法:1) exec 儲存過程名
2) exec 儲存過程名 引數1,引數2
3) exec 儲存過程名 變數名1=引數1,變數名2=引數2
4) exec 儲存過程名 變數名1 output,變數名2=引數2
6.return 關鍵字
return 關鍵字表明儲存過程結束並能返回整型狀態值給呼叫者
7.自定義錯誤資訊
語法:raiserror (『自定義錯誤提示』,錯誤嚴重性級別,呼叫狀態)
示例:raiserror (『及格線錯誤,請指定0-100之間的分數』,16,1)
(注:錯誤嚴重性級別0-18,呼叫狀態1-127)
T SQL 儲存過程
1 允許模組化程式設計 2 執行速度快 3 減少網路流通量 4 提高系統安全性 儲存過程分為 系統儲存過程和使用者自定義儲存過程 系統儲存過程 由系統定義,存放在master資料庫中以sp 或者xp 開頭 儲存過程的分為帶引數和不帶引數 帶引數的儲存過程 有 輸入引數和輸出引數,輸出引數在定義時除了...
理解T SQL 儲存過程
儲存過程的定義 描述就不多說了,都明白。直接從基本的儲存過和開始講起。1.建立儲存過程 create schema name.procedure name number varying default out put n with n procedure option可以有recompile enc...
T SQL 儲存過程的編寫
use salemanagerdb go 普通查詢 select products.productid,productname,unit,unitprice,totalcount,maxcount,mincount,statusdesc from products inner join produc...