21天学通ORACLE(第二版)-第17章 SQL更新数据.pptVIP

21天学通ORACLE(第二版)-第17章 SQL更新数据.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第17章 SQL更新数据 Oracle中可以利用DML更新数据。其DML语句与其他数据库的SQL语法完全一致——都是遵守了工业标准。与查询操作不同,更新数据将导致数据库状态的变化,因此,Oracle同样提供了提交与回滚操作来保证数据库状态的一致性。Oracle常见的更新操作包括: 插入数据; 修改数据; 删除数据。 17.1 插入数据 插入数据即向数据表中插入新的记录,插入数据应该使用insert命令。插入数据的主要途径包括:通过指定各列的值直接插入、通过子查询插入、通过视图插入等。对于通过视图插入的方式,大多数应该使用instead of触发器来进行处理,因此,本章将着重讲述前两种插入方式。 17.1.1 insert语句向表中插入数据 insert into people values(people_seq.nextval, 张文, ACT); insert into people (id, name) values(people_seq.nextval, 柳平); 注意与说明:当使用第二种方式插入数据时,列名列表和列值列表必须保持一致,即每个列的数据类型和实际插入类型保持一致。 17.1.2 利用子查询批量插入数据 Oracle可以利用子查询向表中批量插入数据。此时的SQL语句除了包含insert into命令之外,还应该包含一个查询语句。 insert into people select employee_id, employee_name, status from t_employees where employee_id=3; 17.1.3 insert语句与默认值 当向数据表中插入数据时,如果表中某列含有默认值约束,对于该列又没有显式赋值,那么默认值将作为列值进行插入。 alter table people modify (status varchar2(3) default ACT); insert into people (id, name) values (12, 殷商); select * from people where id = 12; 17.1.4 insert语句与唯一性约束 当使用insert语句时,需要注意的是唯一性约束。当插入的列值违反了唯一性约束时,Oracle将抛出错误。例如,表people中,列id为表的主键,尝试向其中插入数据: insert into people values(11, 张三, ACT) 对于数值型主键来说,在插入数据时,使用序列来获得主键值是一个好的选择。 17.1.5 insert语句与外键约束 insert语句更新数据表时,同样会引起外键约束的检查。 alter table t_salary add constraint fk_employee_id foreign key (employee_id) references t_employees (employee_id); insert into t_salary (salary_id, employee_id, month, salary) values (31, 20, 1月, 5000); 17.2 修改数据 像其他数据库一样,Oracle使用update命令来修改数据。update修改数据一般有以下几种情况:直接修改单列的值、直接修改多列的值、利用where子句限制修改范围和利用视图修改数据。利用视图修改数据往往需要利用instead of触发器实现,因此本节将着重讲述前三种更新方式。 17.2.1 利用update修改单列的值 update可以修改单列的值。 update people set status = CXL; select * from people; 17.2.2 利用update修改多列的值 update命令既可以修改单列值,也可以同时修改多列的值。例如,有时为了合并两个表的数据,需要为其中一个的主键id添加一个基数,以避免两个表中主键的重复。此时,需要修改表中所有id的值。以表people为例,在修改列id的值的同时,也可以修改status列的值。 update people set id = (20000+id), status = ACT; 17.2.3 利用where子句限制修改范围 where子句是update命令最常用的子句。不使用where子句的update命令是不安全的。因为不使用where子句将一次性修改表中所有记录,这将带来极大的安全隐患。为了将表people中,id大于20010的status列修改为“CXL”则可以利用如下所示的SQL语句。 update people set status = CXL where

文档评论(0)

飞扬的岁月 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档