Transact-SQL提供了很多进行数据处理和程序控制的语句,利用这些语句,可以写出功能复杂的程序,或建立驻留在服务器上的基于代码的对象,如存储过程和触发器。
1.CREATE语句
CREATE可以创建数据库中多种对象,如数据库、数据表、视图、查询、规则、默认等。
(1)创建数据库
SQL使用CREATE DATABASE语句创建一个新数据库及存储该数据库的文件,或从先前创建的数据库的文件中附加数据库。
例2-42 创建一个数据库Sales。
(2)创建表
SQL使用CREATE TABLE语句创建新表。
例2-43 利用CREATE语句创建一个示例表,如图2-64所示。
图2-64 利用CREATE语句创建示例表
(3)创建索引
SQL提供CREATE INDEX语句为给定表或视图创建索引。只有表或视图的所有者才能为表创建索引。
例2-44 创建一个索引index1。
(4)创建视图
SQL使用CREATE VIEW语句来创建一个视图。
例2-45 创建一个视图titles_view
2.ALTER语句
ALTER语句可以修改数据库中多种对象,如数据库、数据表、索引、过程、规则、默认等。
(1)修改数据库
ALTER DATABASE语句可以在数据库中添加或删除文件和文件组,更改文件和文件组的属性,更改数据库名称、文件组名称以及数据文件和日志文件的逻辑名称等。
例2-46 本例创建数据库Test1,并更改该数据库以添加一个5 MB大小的新数据文件。
(2)修改表
ALTER TABLE语句可以更改、添加、删除列或约束,或者通过启用或禁用约束和触发器来更改表的定义。
例2-47 本例添加一个允许空值的列,而且没有通过DEFAULT定义提供值。各行的新列中的值将为NULL。
(3)修改视图
用ALTER VIEW语句可以更改一个先前创建的视图,包括索引视图,但不影响相关的存储过程或触发器,也不更改权限。
3.DROP语句
DROP语句可以删除数据库中多种对象,如数据库、数据表、索引、过程、规则、默认等。
(1)删除数据库
DROP DATABASE语句可以删除一个或多个数据库。删除数据库将删除数据库所使用的数据库文件和磁盘文件。
例2-48 删除数据库Test1。
(2)删除表
DROP TABLE语句删除表定义及该表的所有数据、索引、触发器、约束和权限规范。
例2-49 删除表doc_exa。
(3)删除索引
DROP INDEX语句从当前数据库中删除一个或多个索引。
例2-50 删除学生基本情况表的的索引index1。(www.xing528.com)
(4)删除视图
DROP VIEW语句可以从当前数据库中删除一个或多个视图。
例2-51 删除视图titles_view。
4.数据的插入与删除
SQL中数据的插入与删除命令是INSERT和DELETE。
(1)INSERT语句
INSERT语句可给表添加一个或多个新行。
例2-52 往成绩表中插入记录(2005071101,K004,86)。
(2)DELETE语句
DELETE语句将指定表中符合条件的一行或者多行从表中删除。
例2-53 从成绩表中删除课程编号为‘K004’的记录,如图2-65所示。
图2-65 从数据表中删除指定条件的记录
5.数据的更新
SQL中使用UPDATE语句可以对目标表中的一行或多行进行修改。
例2-54 对成绩表中课程编号为‘K003’的记录的成绩字段的值增加10%,如图2-66所示。
6.注释符
注释符是对程序的说明,Transact-SQL提供了两类注释符:
1)用于单行的注释符--。
2)用于多行的注释符/*…*/。
分析器和优化器碰到注释符的语句后会忽略注释符内的所有注释文本。
7.GOTO语句
使用GOTO语句可以使SQL程序无条件地转移到指定的标号位置。GOTO语句和标号可以用在语句块、批处理和存储过程中,标号的命名要符合标识符命名规则。GOTO语句经常用在WHILE和IF语句中以跳出循环或分支处理。
图2-66 使用UPDATE语句修改记录
GOTO语句的语法形式如下:
8.PRINT语句
PRINT语句将用户定义的消息返回客户端。
例2-55 在屏幕上显示“任务完成”。
9.DECLARE语句
DECLARE语句用来声明变量,并用SET或SELECT语句给变量赋值。
例2-56 声明变量S、I并给它们赋值。
10.RETURN语句
RETURN语句从查询或过程中无条件退出,一般用在程序末尾。
11.WAITFOR语句
使用WAITFOR语句可以在某一个时刻或某一个时间间隔之后执行SQL语句、语句块、存储过程等。
其中,DELAY指定时间间隔,TIME指定某一时刻。TIME参数的数据类型为datetime,格式为‘hh:mm:ss’
例2-57 等待1小时2分零3秒后才执行SELECT语句。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。