Chinaunix首页 | 论坛 | 博客
  • 博客访问: 24354
  • 博文数量: 11
  • 博客积分: 240
  • 博客等级: 二等列兵
  • 技术积分: 135
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-19 14:18
文章分类
文章存档

2011年(11)

我的朋友

分类: Oracle

2011-04-06 13:31:45

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
----------

 
阅读(960) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~