在对数据进行管理时,使用SSMS进行数据维护有可视化、方便的优点,但是在批量维护或重复维护时,使用SSMS就不方便了,还容易出错,这就需要编写SQL语句对数据库进行维护
SQL和T-SQL
SQL是Structured Query Language的缩写,即结构化查询语言,是关系数据库的标准语言。如今Oracle、Sybase、Informix、SQL Server这些大型数据库管理系统都支持SQL作为查询语言
T-SQL是SQL的加强版,除了标准的SQL命令外,还支持类似于程序语言的基本功能,如流量控制、变量说明、功能函数等
T-SQL语言主要由以下几部分组成:
DML(Data Manipulation Language,数据操纵语言):用来查询、插入、删除、修改数据库中的数据,如select、insert、update、delete
DDL(Data Definition Language,数据定义语言):用来建立数据库、数据库对象和定义其列,大部分命令以create开头的命令,如create、alter、drop
DCL(Data Control Language,数据控制语言):用来控制数据库组件的存取许可、存取权限等,如grant、revoke
插入数据(INSERT)
使用INSERT语句将数据库插入到表中,语法格式如下:
insert [into] 表名 [列名] values 值列表
其中
* into是可选的,可省略
* 表名是必须的,而表的列名是可选的,如省略,值列表的顺序与数据表中字段顺序保持一致
* 多个列名和值列表用逗号分隔
例如:向学生成绩表中插入一行数据,可以使用如下T-SQL语句
SQL语句的执行一般在查询窗口中进行,单击“新建查询”按钮,选择数据库,输入SQL语句,如下图所示:
在SSMS中单击“√”,系统会检查输入的T-SQL语句是否有语法错误,之后会显示分析结果,如果无误,单击执行,可以执行T-SQL语句,然后显示执行结果,如下图所示:
在插入数据时,需要注意以下事项:
(1)每次插入一整行数据,不可能只插入半行或者几列数据
(2)数据值的数目必须与列数相同,每个值的数据类型、精度、小数位也不需与相应的列匹配
(3)对于字符类型的列,必须使用单引号
(4)插入的数据项要求符合CHECK约束的要求
更新数据(UPDATE)
使用UPDATE语句更新表中的数据,语法格式如下:
update 表名 set 列名=更新值 [where 更新条件]
其中
* set后面可以紧随多个数据列的更新值,不限一个
* where是可选的,用来限制条件,如果不限制,整个表所有数据行都将被更新
例如:更改学生成绩表中学生杨凡的CNT为95,SQL为77,可以使用如下T-SQL语句,如下图所示
删除数据
(1)使用DELETE语句删除表中的数据
delete语法格式如下
delete from 表名 [where 删除条件]
* 如果不用where,将删除表中所有数据
例如:删除学生成绩表中学生张三的记录,可以使用如下T-SQL语句
注意:delete语句用于删除整条记录,不会只删除单个字段,所以在delete后面不能出现字段名
(2)使用Truncate table语句删除表中的数据
Truncate table语句用来删除表中所有行,功能上类似于,没有where子句的delete语句, Truncate table语法格式如下:
truncate table 表名
Truncate table语句与DELETE语句的区别如下:
① Truncate table语句不带where,只能将整个表数据清空,而DELETE语句可以按照条件删除某些记录
② Truncate table语句不记录事务日志,删除后无法通过事务日志恢复;而DELETE语句每删除一行记录,都会记录一条事务日志。
③ Truncate table语句不能用于有外键约束引用的表,这种情况下,需要使用DELETE语句
综上所述,Truncate table语句执行速度更快,在情况大量数据表作业时,DBA常用此语句,但在执行前要确保数据可以删除,否则无法恢复