DELETE语句的作用是删除表中的所有行,而不记录单个行删除操作。TRUNCATE TABLE在功能上与没有 WHERE 子句的 DELETE 语句相同;但是,TRUNCATE TABLE 速度更快,使用的系统资源和事务日志资源更少。其语法格式如下:
其中,参数说明如下:
➢Tablename:需要更新行的表的名称。
同时,使用TRUNCATE TABLE语句的时候,应注意以下事项:
➢TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。若要删除表定义及其数据,请使用 DROP TABLE 语句。
➢如果表包含标识列,该列的计数器重置为该列定义的种子值。如果未定义种子,则使用默认值 1。若要保留标识计数器,请使用DELETE。
➢不能对由 FOREIGN KEY 约束引用的表使用TRUNCATE TABLE,此时请使用DELETE。
➢对于具有以上一个或多个特征的表,请使用 DELETE 语句。
➢TRUNCATE TABLE 不能激活触发器,因为该操作不记录各个行删除。
与 DELETE 语句相比,TRUNCATE TABLE 具有以下优点:
➢所用的事务日志空间较少。
➢使用的锁通常较少。
➢表中将毫无例外地不留下任何页。
以下示例删除Users表中的所有数据。
总结
表中数据的各种数据操作命令包括:
➢INSERT(增加记录)
➢UPDATE (修改记录)
➢DELETE(删除记录)
➢TRUNCATE (释放存储表数据所用的数据页)
TRUNCATE用于释放存储表数据所用的数据页,DELETE用于删除表中的数据。
作业
1.假设正在设计一个数据库应用程序,在设计过程中,数据库进行了重新规划,对原来的数据做了调整。其中对一个很重要的表进行简化,选择原表中的若干列组成了一个新的表结构。由于原表中已经保存了大量数据,为了把原表中的数据移动到新表中,以下( )方法是最好的。(选择一项)
A.重新在新的数据库表中录入数据
B.使用数据转换服务的输出功能把原来的数据保存为文本文件,再把文本文件复制到新的数据库中
C.使用一个“INSERT INTO【新的表名】SELECT【旧的表名】”的插入语句进行数据添加
D.使用UNION语句一次插入多个数据行
2.假设表Employee中包含主键列EmpName,则执行更新语句:UPDATE Employee SET EmpName=177 WHERE B=188,执行的结果可能是( )。(选择一项)
A.更新了多行数据 B.没有数据更新(www.xing528.com)
C.T-SQL语法错误,不能执行 D.错误,主键列不允许更新
3.假设Students表中的SEMail列的默认值为OEAC@163.Com,同时还有SAddress列和SSex列,则执行T-SQL:INSERT Students(SAddress,SSex)VALUES('OEAC',1),下列说法中正确的选项是( )。(选择一项)
A.SEMail列的值为“OEAC” B.SAddress列的值为空
C.SSex列的值为1 D.SEMail列的值为空
4.假设Employee表中的EmpID列为主键,并且为自动增长的标识列,同时还有EmpGrade列和EmpSalaryGrade列,所有列的数据类型都是整数,目前还没有数据,则执行插入数据的T-SQL语句:INSERT Employee(EmpID,EmpGrade,EmpSalaryGrade) VALUES (1,2,3),运行结果将是( )。(选择一项)
A.插入数据成功,EmpID列的数据为1
B.插入数据成功,EmpID列的数据为2
C.插入数据成功,EmpGrade列的数据为3
D.插入数据失败
5.为HR数据库中的职位表添加数据,如图3.7所示。
图3.7 职位表数据
6.为HR数据库中的部门表添加数据,如图3.8所示。
图3.8 部门表数据
7.为HR数据库中的职员表新增总裁信息,如图3.9所示。同时更新部门表中总裁办公室的部门主管编号(MANAGER_ID)为总裁的职员编号。
图3.9 总裁信息
8.添加其他员工的信息,同时注意修改部门表的相应信息,如图3.10、图3.11所示。
图3.10 职员表数据
图3.11 修改后的部门表
扩展练习
根据图3.10和图3.11所示信息,变更职员编号为103的员工至市场部。
(1) 修改其部门编号、部门主管编号,同时更换职位为市场代表,工资不变;
(2) 向任职历史记录表中新增历史记录,如图3.12所示。
图3.12 任职历史记录表信息
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。