複製鏈接
請複製以下鏈接發送給好友

數據控制語言

鎖定
數據控制語言(DCL:Data Control Language)是用來設置或者更改數據庫用户或角色權限的語句,這些語句包括GRANT、DENY、REVOKE等語句,在默認狀態下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成員才有權利執行數據控制語言。
中文名
數據控制語言
外文名
Data Control Language
類    型
授權語句
授    予
語句權限或者對象權限
DENY語句
角色授予權限

數據控制語言語法語句

數據控制語言GRANT語句

GRANT語句是授權語句,它可以把語句權限或者對象權限授予給其他用户和角色。
授予語句權限的語法形式為:
GRANT {ALL | statement[,...n]} TO security_account [ ,...n ]
授予對象權限的語法形式為:
GRANT{ ALL [ PRIVILEGES ] | permission [ ,...n ] }{[ ( column [ ,...n ] ) ]ON { table | view }| ON { table | view } [ ( column [ ,...n ] ) ]| ON {stored_procedure | extended_procedure }| ON { user_defined_function } }TO security_account [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role} ]

數據控制語言DENY語句

DENY語句用於拒絕給當前數據庫內的用户或者角色授予權限,並防止用户或角色通過其組或角色成員繼承權限。否定語句權限的語法形式為:
DENY { ALL | statement [ ,...n ] } TO security_account [ ,...n ]
否定對象權限的語法形式為:
DENY{ ALL [ PRIVILEGES ] | permission [ ,...n ] } { [ ( column [ ,...n ] )] ON { table | view } | ON { table | view } [ ( column [ ,...n ] ) ] |ON { stored_procedure | extended_procedure } | ON {user_defined_function } } TO security_account [ ,...n ] [ CASCADE ]

數據控制語言REVOKE語句

REVOKE語句是與GRANT語句相反的語句,它能夠將以前在當前數據庫內的用户或者角色上授予或拒絕的權限刪除,但是該語句並不影響用户或者角色從其他角色中作為成員繼承過來的權限。
收回語句權限的語法形式為:
REVOKE { ALL | statement [ ,...n ] } FROM security_account [ ,...n ]
收回對象權限的語法形式為:
REVOKE[ GRANT OPTION FOR ] { ALL [ PRIVILEGES ] | permission [ ,...n ] } { [( column [ ,...n ] ) ] ON { table | view } | ON { table | view } [ (column [ ,...n ] ) ] | ON { stored_procedure | extended_procedure } |ON { user_defined_function } } { TO | FROM } security_account [ ,...n ][ CASCADE ] [ AS { group | role } ]

數據控制語言系統存儲過程

系統存儲過程是SQLServer系統創建的存儲過程,它的目的在於能夠方便地從系統表中查詢信息,或者完成與更新數據庫表相關的管理任務或其它的系統管理任務。系統存儲過程可以在任意一個數據庫中執行。系統存儲過程創建並存放於系統數據庫master中,並且名稱以sp_或者xp_開頭。
系統存儲過程的部分示例如下:
sp_addtype:用於定義一個用户定義數據類型。
sp_configure:用於管理服務器配置選項設置。
xp_sendmail:用於發送電子郵件或尋呼信息。
sp_stored_procedures:用於返回當前數據庫中的存儲過程的清單。
sp_help:用於顯示參數清單和其數據類型。
sp_depends:用於顯示存儲過程依據的對象或者依據存儲過程的對象。
sp_helptext:用於顯示存儲過程的定義文本。
sp_rename:用於修改當前數據庫中用户對象的名稱。

數據控制語言其它語言元素

數據控制語言註釋

註釋是程序代碼中不執行的文本字符串(也稱為註解)。在SQL Server中,可以使用兩種類型的註釋字符:一種是ANSI標準的註釋符“--”,它用於單行註釋;另一種是與C語言相同的程序註釋符號,即“/* */”。

數據控制語言變量

變量是一種語言中必不可少的組成部分。Transact-SQL語言中有兩種形式的變量,一種是用户自己定義的局部變量,另外一種是系統提供的全局變量

數據控制語言局部變量

局部變量是一個能夠擁有特定數據類型的對象,它的作用範圍僅限制在程序內部。局部變量可以作為計數器來計算循環執行的次數,或是控制循環執行的次數。另外,利用局部變量還可以保存數據值,以供控制流語句測試以及保存由存儲過程返回的數據值等。局部變量被引用時要在其名稱前加上標誌“@”,而且必須先用DECLARE命令定義後才可以使用。

數據控制語言全局變量

全局變量是SQLServer系統內部使用的變量,其作用範圍並不僅僅侷限於某一程序,而是任何程序均可以隨時調用。全局變量通常存儲一些SQLServer的配置設定值和統計數據。用户可以在程序中用全局變量來測試系統的設定值或者是Transact-SQL命令執行後的狀態值。
使用全局變量時應該注意以下幾點:
①全局變量不是由用户的程序定義的,它們是在服務器級定義的。
②用户只能使用預先定義的全局變量。
③引用全局變量時,必須以標記符“@@”開頭。
局部變量的名稱不能與全局變量的名稱相同,否則會在應用程序中出現不可預測的結果。

數據控制語言運算符

運算符是一些符號,它們能夠用來執行算術運算、字符串連接、賦值以及在字段、常量和變量之間進行比較。在SQL Server 2000中,運算符主要有以下六大類:算術運算符賦值運算符、位運算符、比較運算符邏輯運算符以及字符串串聯運算符
算術運算符
算術運算符可以在兩個表達式上執行數學運算,這兩個表達式可以是數字數據類型分類的任何數據類型。算術運算符包括加(+)、減(—)、乘(*)、除(/)和取模(%)。
賦值運算符
Transact-SQL 中只有一個賦值運算符,即等號(=)。賦值運算符使我們能夠將數據值指派給特定的對象。另外,還可以使用賦值運算符在列標題和為列定義值的表達式之間建立關係。
位運算符
位運算符使我們能夠在整型數據或者二進制數據(image 數據類型除外)之間執行位操作。此外,在位運算符左右兩側的操作數不能同時是二進制數據。
比較運算符
比較運算符用於比較兩個表達式的大小或是否相同,其比較的結果是布爾值,即TRUE(表示表達式的結果為真)、FALSE(表示表達式的結果為假)以及UNKNOWN。除了 text、ntext 或 image 數據類型的表達式外,比較運算符可以用於所有的表達式。
邏輯運算符可以把多個邏輯表達式連接起來。邏輯運算符包括AND、OR和NOT等運算符。邏輯運算符和比較運算符一樣,返回帶有 TRUE 或 FALSE 值的布爾數據類型。
字符串串聯運算符
字符串串聯運算符允許通過加號 (+) 進行字符串串聯,這個加號即被稱為字符串串聯運算符。例如對於語句SELECT ‘abc’+’def’,其結果為abcdef。
運算符的優先等級從高