【文档说明】数据库 第10章 修改数据课件.ppt,共(21)页,514.500 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-92411.html
以下为本文档部分文字说明:
Copyright@20081第10章修改数据插入数据删除数据更新数据Copyright@20082插入数据用Values子句插入一行数据插入部分数据使用列缺省值插入数据使用INSERT…SELECT
语句使用SELECTINTO语句创建表Copyright@20083用Values子句插入一行数据使用字段列表指定用于保存新数据的列指定相应的值列表只能插入一行数据USESampleDBINSERTstudents(studid,studname,age,address,phone,email)V
ALUES(0001,’Peter’,20,’杭州市文一路65号’,’88809132’,‘peter@tom.com’)GOCopyright@20084插入部分数据如果列具有IDENTITY属性、有缺省值或允许空值
,就可以在INSERT语句中忽略该列,SQLServer将自动插入该值。只需列出正为INSERT语句提供数据所在列的名通过输入NULL来输入空值Copyright@20085插入部分数据(续)INSERTstudents(studid,studname,age,phone)
VALUES(0002,'zhangsan',20,'88809123')GOINSERTstudentsVALUES(0003,‘Tom',21,null,null,‘tom@tom.com')GO示例1示例2列出需要的列名用
null表示空值Copyright@20086使用列缺省值插入数据DEFAULT关键字INSERTstudents(studid,studname,age,address,phone,email)VALUES(0004,‘Jack',19,default,null,‘Jack
@tom.com')GO使用default默认值Copyright@20087使用INSERT…SELECT语句所有满足SELECT语句的行都被插入最外层确保数据类型是兼容的确定是否存在缺省值,或所有被忽略的列是否允许空值USEn
orthwindINSERT[INTO]customersSELECTsubstring(firstname,1,3)+substring(lastname,1,2),lastname,firstname,title,address,city,region,postalcode,country
,homephone,NULLFROMemployeesGO该表必须事先存在Copyright@20088使用SELECTINTO语句创建表可使用SELECTINTO语句创建一个表并在同一操作中往表里插入
行USEnorthwindSELECTproductnameASproducts,unitpriceASprice,(unitprice*1.1)AStaxINTOpricetableFROMproductsGOCopyright@20089使用SELECTINTO语句创建表(续)U
SEnorthwindSELECTproductnameASproducts,unitpriceASprice,(unitprice*1.1)AStaxINTO#pricetableFROMproductsGO可以创建局部的或全局的临时性表仅对当前的用户连接是可见的
,当用户实例断开连接时被自动删除任何用户都是可见的,当所有引用该表的用户断开连接时被自动删除Copyright@200810第10章修改数据插入数据删除数据更新数据Copyright@200811删除数据使用DELETE语句使用TRU
NCATETABLE语句Copyright@200812使用DELETE语句SQLServer将删除所有的行,除非在DELETE语句中加入WHERE语句每个被删去的行都被存入事务日志记录中USESampleDBDELETEstud
entsWHEREstudid<0003GO举例:删除学号0003以下的同学。Copyright@200813使用TRUNCATETABLE语句SQLServer删除表中所有的行,但保留表的结构和与之相关的对象
如果表中有IDENTITY列,TRUNCATETABLE语句会重新设置原始数据USESampleDBTRUNCATETABLEstudentsGOCopyright@200814使用TRUNCATETABLE语句(续)DELETE与TRUNCATETABL
E的比较TRUNCATETABLE在功能上与不带WHERE子句的DELETE语句相同:二者均删除表中的全部行。TRUNCATETABLE比DELETE速度快,且使用的系统和事务日志资源少。因为DELETE语句每次删除一行,而TRUNCATETABLE通过释放存储表数据所
用的数据页来删除数据。对于IDENTITY列,使用DELETE将保留标识计数值,而使用TRUNCATETABLE将重新计数。Copyright@200815第10章修改数据插入数据删除数据更新数据Copyright@200816更新数据更新数
据根据表中数据更新行根据其他表更新行Copyright@200817更新数据语法UPDATE{表名|视图名}SET列名={表达式|DEFAULT|NULL}FROM{相关表|相关视图}WHERE<搜索条件>Copyright@2008
18根据表中数据更新行每次只能修改一个表中的数据可以同时把一个或多个列、变量放在一个表达式中USEnorthwindUPDATEproductsSETunitprice=(unitprice*1.1)GO举例:把Northw
ind的产品单价全部增加10%。Copyright@200819根据其他表更新行使用FROM子句可将数据从一个或多个表或视图拉入要更新的表中。USEpubsUPDATEtitlesSETprice=price*2FROMtitlesINNERJOINpublishersONtitle
s.pub_id=publishers.pub_idANDpub_name='NewMoonBooks'GO举例:由NewMoonBooks出版的所有书籍的价格加倍。Copyright@200820根据其他表
更新行(续)使用子查询指定要更新的行举例:由NewMoonBooks出版的所有书籍的价格加倍。USEpubsUPDATEtitlesSETprice=price*2WHEREpub_idIN(SELECTpub_idF
ROMpublishersWHEREpub_name='NewMoonBooks')GOCopyright@200821回顾学习完本章后,将能够:插入数据删除数据更新数据