Transact-SQL是标准SQL的增强版,是应用程序与SQL Server沟通的主要语言,本章将以T-SQL语言为基础,分别从以下几个方面详细介绍Transact-SQL中的各种语句:数据定义语句、数据操作语句、数据控制语句、其他基本语句、流程控制语句和批处理语句。
数据定义语句
数据定义语句(DDL)是用于描述数据库中要存储的现实世界实体的语言。作为数据库管理系统的一部分,DDL用于定义数据库的所有特性和属性,例如行布局、字段定义、文件位置,常见的数据定义语句有:CREATE DATABASE、CREATE TABLE、CREATE VIEW、DROP VIEW、ALTER TABLE等,
数据操作语句
数据操作语句(Data Manipulation Language,DML)是使用户能够查询数据库及操作已有数据库中数据的语句,其中包括数据库插入语句、数据更改语句、数据删除语句和数据查询语句等。
数据控制语句
数据控制语句(DCL)用来设置、更改用户或角色权限,包括GRANT、DENY、REVOKE等语句。
GRANT语句用来对用户授予权限,REVOKE语句可用于删除已授予的权限,DENY语句可用于防止主体通过GRANT获得特定权限。默认状态下,只有sysadmin、dbcreater、db_owner、db_securityadmin等成员有权执行数据控制语言。
其他基本语句
T-SQL中除了这些重要的数据定义、数据操作和数据控制语句之外,还提供了一些其他的基本语句,以此来丰富T-SQL语句的功能。本节将介绍数据声明、数据赋值和数据输出语句。
流程控制语句
介绍T-SQL代码都是按从上到下的顺序执行,但是通过T-SQL中的流程控制语句,可以根据业务的需要改变代码的执行顺序,T-SQL中可以用来编写流程控制模块的语句有:BEGIN…END语句、IF…ELSE语句、CASE语句、WHILE语句、GOTO语句、BREAKE语句、WAITFOR语句和RETURN语句。本节将分别介绍各种不同控制语句的用法。
批处理语句
批处理是从应用程序发送到SQL Server并得以执行的一条或多条T-SQL语句。使用批处理时,有下面一些注意事项。
一个批处理中只要存在一处语法错误,整个批处理都无法通过编译。
批处理中可以包含多个存储过程,但除第一个过程外,其他存储过程前面都必须使用EXECTUE关键字。
某些特殊的SQL指令不能和别的SQL语句共存在一个批处理中,如CREATE TABLE和CREATE VIEW语句。这些语句只能独自存在于一个单独的存储过程中。
所有的批处理使用GO作为结束的标志,当编译器读到GO的时候就把GO前面的所有语句当成一个批处理,然后打包成一个数据包发给服务器。
SQL是一种面向集合的说明式语言,与常见的过程式编程语言在思维上有明显不同。所以开始学习SQL时,最好先对各种数据库对象和SQL的查询有个基本理解,再开始写SQL代码。