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