許漫
摘 要:雖然SSMS提供的可視化方式很容易操縱數據庫中的各種對象,可當應用程序訪問數據庫時,就只能借助T-SQL語言。T-SQL語言是SQL程序設計語言的增強片,它是應用程序與SQL Server溝通的主要語言。本文介紹T-SQL語言的相關語法,如創建、修改和刪除等。
關鍵詞:T-SQL語句;數據庫;數據表
SQL,即Structured Query Language,結構化查詢語句,是關系型數據庫的標準。Oracle使用的SQL被稱為PL-SQL,而SQL Server使用的則被稱為T-SQ(Transact-SQL)。T-SQL語言包括數據定義語言、數據控制語言和數據操縱語言等三種類型。
一、T-SQL語言簡介
1.數據定義語言
數據定義語言(Data Definition Language,DDL)用于創建數據庫和數據庫對象,為數據庫操作提供對象。常用的數據定義語言有:
(1)CREATE TABLE,用于建立數據表;
(2)DROP TABLE,用于刪除數據表;
(3)ALTER TABLE,用于修改數據表。
例如,使用T-SQL語言,在StuSelDB數據庫中創建名為CourseType的表,該表包含CourseTypeID、CourseTypeName兩列,可以利用以下命令實現:
USE StuSelDB
CREATE TABLE CourseType
(CourseTypeID int NOT NULL,
CourseTypeName varchar(10) NOT NULL)
GO
2.數據控制語言
數據控制語言(Data Control Language ,DCL)用來執行有關安全管理的操作,包括對表和視圖的訪問權限及對數據庫操作事務的控制。
GRANT:將指定的安全對象的權限授予相應的主體。
DENY:拒絕授予主體權限,并且防止主體通過組或角色成品繼承權限。
REVOKE:刪除授予的權限。
例如,將CourseType表的查詢權限授予public角色,可以利用以下命令實現:
GRANT SELECT ON CourseType TO public
GO
3.數據操縱語言
數據操縱語言(Data Manipulation Language,DML)用于操縱表和視圖中的數據。其中,
SELECT命令,用于查詢;
INSERT命令,用于插入;
DELETE命令,用于刪除;
UPDATE命令,用于更新。
例如,查詢CourseType表中CourseTypeID和CourseTypeName兩列數據,編輯兩行數據,可以利用以下命令實現:
SELECT CourseTypeID,CourseTypeName
FROM CourseType
二、使用T-SQL操作數據庫
1.創建數據庫
命令格式為:
CREATE DATABASE database_name
[
ON[PRIMARY]
[(NAME=logical_name,FILENAME=path
[,SIZE=database_size]
[,MAXSIZE=database_maxsize]
[,FILEGROWTH=growth_increment])
[,FILEGROUP filegroup_name
[(NAME=datafile_name FILENAME=path
[,SIZE=datafile_size]
[,MAXSIZE=datafile_maxsize]
[,FILEGROWTH=growth_increment])]]
]
[LOGON
[(NAME=logfile_name FILENAME=path
[,SIZE=datafile_size]
[,MAXSIZE=database_maxsize]
[,FILEGROWTH=growth_increment])]
]
例如,創建名為StuSelDBXL的數據庫,該數據庫包含主數據文件、輔助數據文件和日志文件各一個,均放在“D:\DATA”目錄下。
CREATE DATABASE StuSelDBXL
ON PRIMARY
(NAME=StuSelDBXL,
FILENAME='D:\DATA\StuSelDBXL.mdf',
SIZE=5MB,
MAXSIZE=200MB,
FILEGROWTH=1MB),
(NAME=StuSelDBXL1,
FILENAME='D:\DATA\StuSelDBXL1.ndf',
SIZE=3MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=1MB )
LOG ON
(NAME=StuSelDBXL_log,
FILENAME='D:\DATA\StuSelDBXL_log.ldf',
SIZE=1MB,
MAXSIZE=20MB,
FILEGROWTH=10% )
GO
2.修改數據庫
命令格式為:
ALTER DATABASE databasename
{ADD FILE…
REMOVE FILE…
MODIFY FILE…
MODIFY NAME=…
ADD FILEGROUP…
REMOVE FILEGROUP…
MODIFY FILEGROUP…
…
}
例如,修改剛才創建的數據庫,將主數據文件的MAXSIZE改為UNLIMITED,刪除輔助數據文件StuSelDBXL1.ndf。
ALTER DATABASE StuSelDBXL
MODIFY FILE
(NAME=StuSelDBXL,
MAXSIZE=UNLIMITED)
GO
ALTER DATABASE StuSelDBXL
REMOVE FILE StuSelDBXL1
GO
3.使用T-SQL創建表
命令格式為:
Createtable [database_name.[ower].|owner.]table_name
({
|column_nameascomputed_column_expression}[,…n])
[on{filegroup|DEFAULT}]
[TEXTIMAGE_ON{filegroup|DEFAULT}]
[[DEFAULT constant_expression]|[INDENTITY[(seed,increment)]]]
[
例如,在StuSelDB數據庫中,創建一個院系信息表DepInfo。
USE StuSelDB
CREATE TABLE DepInfo
(DepInfoID int PRIMARY KEY IDENTITY(1,1),
DepInfoCode char(3) NOT NULL,
DepInfoName varchar(50) NOT NULL,
DepInfoPreOfTech int DEFAULT 0,
DepInfoAssTech int DEFAULT 0
)
GO
4.使用T-SQL修改表
命令格式為:
ALTER TABLE table_name
{ALTER COLUM column_name
…
ADD…
DROP…
}
例如,向表中添加列。向ClassInfo表中添加名為Ctest的列,數據類型為int,不為空。
ALTER TABLE ClassInfo
ADD Ctest int NOT NULL
GO
SQL版本也經歷了SQL-89、SQL-92、SQL-99、SQL-2003及SQL-2006。T-SQL具有編程結構簡單、直觀簡潔、易學易用等特點,因而受到用戶的喜愛。
參考文獻:
[1]李錫輝.SQL Server2008數據庫案例教程[M].北京:清華大學出版社,2011.
[2]張素青.SQL Server2008數據庫應用技術[M].北京:人民郵電出版社,2013.
[3]韓永印.SQL Server2008 數據庫項目教程[M].北京:人民郵電出版社,2013.
[4]王德永.數據庫原理與應用SQL Server版項目式[M].北京:人民郵電出版社,2011.
[5]徐守祥.數據庫應用技術—SQL Server2005篇(第2版)[M].北京:人民郵電出版社,2008.