T-SQL 程式設計 儲存過程
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
END
ELSE
BEGIN
語句或語句塊2
END
WHILE迴圈語句
語法:WHILE(條件)
BEGIN
語句或語句塊
BREAK
END
CASE多分支語句
語法: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
AS
SQL語句
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 程式設計 儲存過程
T-SQL程式設計 1.變數 全域性變數 變 量 含 義 @@ERROR 最後一個T-SQL錯誤的錯誤號 @@IDENTITY 最後一次插入的識別符號 @@LANGUAGE 當前使用的語言名稱 @@MAX_CONNECTIONS 可以建立的同時連線的最大數目 @@ROWCOUNT 受上一個SQL語句影
T-SQL刪除儲存過程
使用T-SQL指令碼刪除儲存過程 語法: --宣告資料庫引用use 資料庫名稱;go --判斷是否存在儲存過程,如果存在則刪除if exists(select * from sys.procedures where name=儲存過程名稱)drop { proc | procedure } [架構名][
Oracle PL/SQL程式設計-儲存過程優缺點及實現過程【1】
如果儲存過程名已經被佔用,兩種方式:1.修改儲存過程名;2新增關鍵字 or replace :表示如果有yao_prol,就替換。eg:SQL> create or replace procedure yao_prol is 2 begin 3 insert into YAO_T
SQL Server Transact-SQL程式設計/儲存過程/觸發器
1.T-sql語言 資料定義語言DDL對錶或檢視的操作 資料操縱語言DML對資料進行操作 資料控制語言 其他常用型別: 事務管理語言 流程控制語言 迴圈 分支 選擇  
oracle中pl/sql程式設計---儲存過程,函式,觸發器,包
1.pl/sql程式設計 pl/sql 指procedure language 過程化/sql. pl/sql 是oracle在標準的sql語句基礎上擴充套件的一種對oracle資料庫進行程式設計的的語言。 可以定義變數和常量,而且可以使用條件語句和迴圈語句。 2.為什麼要有pl/sql程式設計? 平時是通過
SQL server T-SQL存儲過程
lB row 回滾事務 put spa 間接 var uid pan 簡介 存儲過程是由一些SQL語句和控制語句組成的被封裝起來的過程,它駐留在數據庫中,可以被客戶應用程序調用,也可以從另一個過程或觸發器調用。它的參數可以被傳遞和返回。與應用程序中的函數過程類似,存
SQL server 儲存過程的編寫
USE [資料庫名稱] GO /****** Object: StoredProcedure [dbo].[insertbGait] Script Date: 2018/7/17 15:51:22 ******/ SET ANSI_NULLS ON GO
SQL SERVER儲存過程加密和安全上下文
對SQL Server 2008的安全入門略作小結,以作備忘。本文涉及兩個應用:儲存過程加密和安全上下文。 <一>儲存過程加密 SQL server,我已經成了儲存過程的忠實擁躉。在直接使用SQL語句還是儲存過程來處理業務邏輯時,我基本會毫不猶豫地選擇後者。 理由如下:
SQL Server資料庫開發(2.T-Sql程式設計)
一,批處理(GO) --可以使不在同一批處理中的sql語句相互之間不受影響 --把相互聯絡的放在同一批次,沒聯絡的放在不同批次
SQL Server 儲存過程返回值的幾種方式
獲得儲存過程的返回值–通過查詢分析器獲得 (1)不帶任何引數的儲存過程(儲存過程語句中含有return) —建立儲存過程 CREATE PROCEDURE testReturn AS return 145 GO —執行儲存過程 DECLARE @RC int exec @RC=
Yii2.0呼叫sql server儲存過程並獲取返回值
1、首先展示建立sql server儲存過程的語句,建立一個簡單的儲存過程,測試用。 1 SET ANSI_NULLS ON 2 GO 3 SET QUOTED_IDENTIFIER ON 4 GO 5 6 CREATE PROCEDURE [dbo].[register_info]
資料庫系統概論05-動態SQL&儲存過程&函式
動態SQL 使用SQL語句主變數 EXEC SQL BEGIN DECLARE SECTION; const char *stmt="CREATE TABLE test(a int);"/*SQL語句主變數,內容是建立表的SQL語句*/ EXEC SQL END DECLARE SE
SQL Server儲存過程的使用
儲存過程概述 簡單來說,儲存過程就是一條或者多條sql語句的集合,可視為批處理檔案,但是其作用不僅限於批處理。 基本概念: SQL Server中的儲存過程是使用T_SQL編寫的程式碼段。它的目的在於能夠方便的從系統表中查詢資訊, 或者完成與更新資料
第二章 T-SQL程式設計
---批處理 go是批處理的標誌,表示SQL Server將這些T-sql語句編譯為一個執行單元,提高執行效率 SQL Server規定:如果是建庫語句、建表語句以及我們後面學習的儲存過程和檢視等,則必須在語句末尾新增go批處理標誌 刪除、重建為一條語句,中
mybaits(查詢與別名、日誌框架顯示sql語句、物件屬性和資料庫表字段不匹配resultMap使用、mysql資料查詢分頁、執行sql和儲存過程、動態SQL語句)
主要是各種配置檔案,建議把整個專案搬到自己電腦上慢慢看。 建立maven專案 首先是各種配置檔案: pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://m
【SQL】儲存過程
前言 儲存過程(Stored Procedure)是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集 區別 觸發器與儲存過程的唯一區別是觸發器不能執行EXECUTE語句呼叫,而是在使用者執行Transact-SQL語句時自動觸發執行 作用
SQL Server 儲存過程返回值彙總
獲得儲存過程的返回值–通過查詢分析器獲得 (1)不帶任何引數的儲存過程(儲存過程語句中含有return) —建立儲存過程 CREATE PROCEDURE testReturn AS return 145 GO —執行儲存過程 DECLARE @RC in
sql語句---儲存過程、函式和觸發器
儲存過程、函式和觸發器的原理: 實際上都是使用Transact-SQL語言編寫的程式。儲存過程和函式需要顯式呼叫才能執行,而觸發器則在滿足指定條件時自動執行。 1、儲存過程 1.1 定義 儲存過程是Transact-SQL語句的預編譯集合,這些語句在一個名稱下儲
Sql Server 儲存過程 - 使用者操作例項
使用者的增刪改查 新增 --新增使用者 create procedure addDeviceUser @name nvarchar(36) , @phone nvarchar(36) , @password nvarchar(255) as begin if exists(
Sql server 儲存過程
-- ======================================= -- Author: <zengyongbin> -- Create date: <2018-11-11> -- Description: <新增> --