资源描述
,Click to edit Master title style,Click to edit Master text styles,融智,技术学院,第8,章 数据的更新,作为进阶篇的开始,本章主要讲述数据更新方面的内容。数据的更新涉及数据修改的的各个方面,即包括插入新行、更新已有数据等逻辑层面的数据修改,还包括批量数据处理等性能方面的数据修改。根据数据修改的主要类型,具体可分为以下三部分:,插入,-,INSERT,修改,-,UPDATE,删除,-,DELETE,8.1,插入,-,INSERT,INSERT,语句用来向表或视图中插入新的数据或数据行,执行插入数据的语法为:,INSERT INTO,table_name WITH(.n )|view_name|,rowset,_function_limited,(column_list),VALUES(DEFAULT|NULL|expression ,.n),|derived_table|execute_statement,8.1.1,插入单行数据,单行数据的插入有两种方式:一种是不指定列的列表,,INSERT,语句中的每一个值与表中同样顺序处的每一列值相匹配;另一种方式是指定列的列表,在,VALUES,中对每一列赋予相应的值。下面通过两个实例来说明,INSERT,语句的两种不同用法。,1,插入完整数据行,2,插入指定数据行,8.1.1,插入单行数据,8.1.2,插入多行数据,单独使用,INSERT,语句每次只能插入一行,然而在实际的数据库开发过程中,经常会有一次性插入多条数据的业务需求。这时候就要使用另一种批量插入数据的方式,即,SELECT,和,INSERT,语句的组合,一次输入多行数据,语法格式为:,INSERT table_name,SELECT,colum,_list FROM table_list WHERE search_conditions,8.1.2,插入多行数据,8.1.3,技术提升,在掌握插入语句,INSERT,的基础知识之后,下面介绍一些高级应用。,1,SELECT INTO,语句的使用,2,INSERT EXEC,语句的使用,3.,带有,OUTPUT,的,INSERT,8.1.3,技术提升,8.2,修改,-,UPDATE,UPDATE,语句用来修改表中已经存在的数据,可以一次修改一条数据中的值,也可以同时修改多条数据的值。,UPDATE,语句的语法如下。,UPDATE table_name,SET|column_name=|expression|DEFAULT|NULL|,n|,FROM table_name,WHERE,8.2.1,修改单行数据,单行数据的修改中,可以修改不止一列的内容,只需要子在要修改的列后加入分隔符“,”,然后加上列一个列的表达式即可。,8.2.2,修改多行数据,实际的业务处理过程中,有时需要同时更新整个表的某些数据列,或者是符合某条件的数据列。比如所有的学生同时注册,或者男女生分别住不同宿舍楼,都需要同时更改或者设置多行数据的值。具体的操作如下:,1,修改整个表的某列数据,2,修改部分行的数据,8.2.2,修改多行数据,8.2.3,技术提升,除了基本的,T-SQL,所支持的标准,UPDATE,SQL Server 2005,还提供了几种用于数据修改的更为高级的操作语言,它们的优化程度更高,实现功能更为丰富。包括基于级联的,UPDATE、,带有,OUTPUT,的,UPDATE,和,UPDATE,赋值语句。,需要注意的是,在使用,OUTPUT,子句把输入保存到一个表时,不会激活该表的触发器或者,CHECK,约束,同样不会参与任何一侧的外键约束。如果这时需要激活目标表的触发器或,CHECK,约束,可以把输入保存到临时表或表变量,然后在复制到目标表。,8.3,删除数据,DELETE,语句用来删除数据表中的数据,可以一次性删除一条或多条数据,也可以一次性删除整个表中的全部数据。,DELETE,语句的语法如下。,DELETE table_name,FROM table_name,n,WHERE|,DELETE,语句中关键部分的含义如下。,table_name:,指要需要删除数据的的表名称,可以是一个表或多个表。,search_,conditon,:,指定表删除数据需符合的条件。,8.3.1,删除部分数据,下面使用具体实例展示删除部分数据的方法:,(,1,)打开,SSMS,的查询窗口。,(,2,)在查询窗口中输入如下所示的代码。,USEUniversity,SELECT*FROM,studentInfo,GO,DELETE FROM,studentInfo,WHERE,stuID,=2009001,GO,SELECT*FROM,studentInfo,(3),执行后观察图,8.8,所示结果,执行语句“,DELETE FROM,studentInfo,WHERE,stuID,=2009001”,后,,stuID,为2009001,的数据已经不存在。,8.3.1,删除部分数据,8.3.2,删除表中所有数据,下面使用具体实例展示删除表中所有数据的方法:,(,1,)打开,SSMS,的查询窗口。,(,2,)在查询窗口中输入如下所示的代码。,USEUniversity,SELECT*FROM,tempStuInfo,GO,DELETE,tempStuInfo,GO,SELECT*FROM,tempStuInfo,(3),执行后观察图,8.9,所示结果,在表名称后不加任何限定条件,将删除表中所有的数据记录。该语句一般用于数据的重写。,8.3.2,删除表中所有数据,8.4,小结,本章重点讲述了,TSQL,中数据更新语句的用法,主要包括数据添加、数据修改以及数据删除语句的使用,读者要能够根据实际需要对数据作出相应的更新操作。,INSERT,语句用来向表或视图中插入新的数据或数据行,其中要插入的数据值可以直接写入,也可以使用,SELECT,语句从其他的数据源获取数据,特别需要注意的是在插入指定列的时候,插入列的数据类型与个数要和指定列的数据类型与个数一一对应。,UPDATE,语句用来修改表中的数据,可以一次修改一条数据中的某列值,也可以同时修改多条数据的值,满足不同开发应用的需求。,DELETE,语句用来删除数据表中的数据,可以一次性删除一条或多条数据,也可以一次性删除整个表中的全部数据。,
展开阅读全文