免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1003 | 回复: 0
打印 上一主题 下一主题

oracle 11g 007 sql 第7章 sql更新数据语句 笔记 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:48 |只看该作者 |倒序浏览
oracle 11g 007 sql 第7章 sql更新数据语句 笔记
7.1 sql更新数据主要分为3种:插入数据(insert)、修改数据(update)、删除数据(delete)
7.2 单条数据插入(insert)
对于insert操作来说,单条插入是最常用的方式,其语法形式如下:
insert inot table (column1,column2.....column n)
values (值1,值2........值n);
在insert 操作中,列名列表中的各列需要以逗号进行分隔,而值的列表指定各列的值,列名于值需要一一对应。
SQL> select * from strom_00702_a;
 
         A
----------
         3
         4
         5
         7
         1
 
6 rows selected
SQL> create table temp_00707_a as select * from strom_00702_a
  2  where 1<>1;
 
Table created
 
SQL> commit;
 
Commit complete
 
SQL> insert into temp_00707_a(A)
  2  select * from strom_00702_a
  3  where rownum < 5;
 
4 rows inserted
 
SQL> commit;
 
Commit complete
 
SQL> select * from temp_00707_a;
 
         A
----------
         3
         4
         5
         7
        
        
注意事项与技巧:1.应该养成使用列名列表的习惯。2.快速获得列名列表。
7.3 Update 更新单列:
Update操作的语法形式如下所示:
update table set column = 新值
7.3.1 其中Update命令用于更新表中的数据,其后紧跟表名。set命令用于重新设置列值,其后紧跟列名并用等号指定新值。
SQL> select * from temp_00707_a;
 
         A
----------
         3
         4
         5
         7
 
SQL> update temp_00707_a set A=6
  2  where rownum < 2;
 
1 row updated
 
SQL> commit;
 
Commit complete
 
SQL> select * from temp_00707_a;
 
         A
----------
         6
         4
         5
         7
        
7.3.2 Update更新列
使用Update语句,同样可以更新多列,其语法如下所示。在set命令之后,可以为多列同时赋值,而这些列之间使用逗号进行分隔。
SQL> update temp_00707_a set A=A+1 where rownum < 4;
 
3 rows updated
 
SQL> commit;
 
Commit complete
 
SQL> select * from temp_00707_a;
 
         A
----------
         7
         5
         6
         7
        
注意事项:对Update操作,最容易被用户忽视的就是添加where的条件。因为,没有添加任何限制条件。因此,oracle将更新表中所有
的数据,而实际应用中,往往只需更新部分数据。
7.4 删除数据————delete操作
delete 操作用于删除表中数据。除了delete语句之外,truncate命令同样可以删除表中的数据。本小节着重讲述delete操作及delete
操作与truncate操作的区别。
7.4.1 其使用语法如下所示:
delete from table
delete from 指定从那张表中删除数据。因为,删除动作的作用对象为记录级别,因此无需指定列名信息。
SQL> select * from temp_00707_a;
 
         A
----------
         7
         5
         6
         7
        
SQL> delete from temp_00707_a
  2  where rownum < 2;
 
1 row deleted
 
SQL> commit;
 
Commit complete
 
SQL> select * from temp_00707_a;
 
         A
----------
         5
         6
         7
        
delete命令,oracle还可以利用truncate table 命令来删除表中的数据,但是truncate table 语句与 delete语句是有着本质的区别的
delete语句与insert、update语句属于DML——数据操作语言的范畴,当数据修改之后,可以通过回滚操作,来忽略所做的数据修改。
而truncate table 语句则是属于DDL——数据定义语言的范畴,当数据被删除之后,无法回滚。
SQL> select * from temp_00707_a;
 
         A
----------
         5
         6
         7
        
SQL> truncate table temp_00707_a;
 
Table truncated
 
SQL> commit;
 
Commit complete
 
SQL> select * from temp_00707_a;
 
         A
----------

 
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP