SQL Server中T—SQL语句的使用

2016-03-28 08:12许漫
新校园·上旬刊 2016年1期
关键词:数据表数据库

许漫

摘 要:虽然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}]

::={column_namedata_type}

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

猜你喜欢
数据表数据库
联合收获机知识库数据多表联合查询方法研究
湖北省新冠肺炎疫情数据表(2.26-3.25)
基于列控工程数据表建立线路拓扑关系的研究
图表
基于VSL的动态数据表应用研究