T SQL 程式設計 儲存過程

2021-07-10 03:10:13 字數 4104 閱讀 6003

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...