资源描述:
《SQL Server数据库 第8章课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章.数据库更新内容提要数据库更新操作用于对数据库数据的插入、删除和修改。一个数据库的信息能够保持及时性、正确性和一致性,很大程度上依赖于数据库的更新功能是否能准确地执行。本章将分别讲述如何使用SQLServer数据库的更新操作来有效地更新数据库。这些语句包括:INSERT语句;UPDATE语句;DELETE语句。本章要点添加数据修改数据删除数据事务锁8.1添加数据在表中添加一行数据,可以使用SQL标准指令INSERT,也可以使用管理器集成环境。管理器集成环境只能按行添加数据,不能大量地插入数据。一般来讲,可以使用数据库数据添加指令I
2、NSERT来完成。INSERT语句介绍INSERT语句的语法INSERT[INTO]{table_nameWITH([...n])
3、view_name
4、rowset_function_limited}{ [(column_list)]{VALUES({DEFAULT
5、NULL
6、expression}[,...n])
7、derived_table
8、execute_statement}}
9、DEFAULTVALUESINSERT语句使用说明(column_list)可以省略,如果省略,则VALUES
10、中的值列表或SELECT子查询语句结果集的列表必须与目标表列的顺序相同。如果将值加载到带有char、varchar或varbinary数据类型的列,尾随空格(对于char和varchar是空格,对于varbinary是零)的填充和截断是由SETANSI_PADDING设置确定的。表8-1显示了当开关配置语句SETANSI_PADDING为OFF时的默认操作。如果将一个空字符串(‘’)加载到带有varchar或text数据类型的列,那么默认操作是加载一个零长度的字符串。如果INSERT语句违反约束或规则,或者它有与列的数据类型不兼容的值,
11、那么该语句就会失败,并且SQLServer显示错误信息。不能将空值插入text列或image列,否则将显示错误信息。如果INSERT正在使用SELECT或EXECUTE加载多行,正在加载的值中出现任何违反规则或约束的行为都会导致整个语句终止。当向远程SQLServer表中插入值但没有为所有列指定值时,则用户必须标识将向其中插入指定值的列。使用INSERTINTO…VALUES语句插入单行数据INSERTINTORegion(RegionID,RegionDescription)VALUES(5,'南方')INSERTINTORegion
12、VALUES(5,‘南方’)--省略列表INSERTINTOEmployees(LastName,FirstName,Title,HireDate)VALUES('wang','bing','Manager',DEFAULT)SETIDENTITY_INSERTRegionOnDELETERegionWHERERegionID=4INSERTINTORegion(RegionID,RegionDescription)VALUES(4,'北方')SETIDENTITY_INSERTRegionOFFSELECT*FROMRegion使用I
13、NSERT…SELECT语句插入多行数据CREATETABLECategoryInfo(CategoryIDint,pQuantityint)GOINSERTINTOCategoryInfo(CategoryID,pQuantity)SELECTCategoryID,count(*)ASpQuantityFROMProductsGROUPBYCategoryIDSELECT*FROMCatogoryInfoCREATETABLECategoryInfo(CategoryIDint,pQuantityint)GOINSERTINTOCat
14、egoryInfoSELECTCategoryID,count(*)FROMProductsGROUPBYCategoryIDSELECT*FROMCatogoryInfoINSERTXSELECTselect_listINTOY使用存储过程插入数据在INSERT语句中,可以通过执行存储过程来得到要插入的数据,所插入的数据是存储过程中SELECT语句所检索的结果集。使用存储过程插入数据的语法:INSERT[INTO]{table_nameWITH([...n])
15、view_name
16、rowset_
17、function_limited}{[(column_list)]}EXECUTEprocedureCREATETABLECategoryInfo(CategoryIDint,pQuantityint)GO