oracle——数据表的相关操作——删除数据——delete操作与truncate table操作

SQL更新数据

1、插入数据——insert操作

语法格式如下:

insert into 表名 (列名1,列名2……,列名n) values (值1,值2……,值n);

在insert操作中,列名列表中的各列需要以逗号分隔;而值列表指定各列的值,列名与值需要一一对应。

如果insert语句所指定的列名列表包含了表中的所有列,那么可以将列名列表省略。


create table student08 ( id number,
                         name varchar2(20),
                         sex varchar2(20),
                         age number,
                         address varchar2(20)
                    ) tablespace test
                    
select * from student08;

insert into student08(id,name,sex,age,address) values(2,'yuanling','nv',27,'zhejiang');

insert into student08 values(1,'shenweiwei','nan',31,'jiangsu');

insert into student08 values(4,'wangli','nv',32,'jiangsu04');

insert into student08 values(3,'fenglei','nan',22,'jiangsu03');


2、批量插入


在插入语句中可以使用子查询,以实现批量插入

create table student09 ( id number,
                         name varchar2(20),
                         sex varchar2(20),
                         age number,
                         address varchar2(20)
                    ) tablespace test
                    
select * from student09;

insert into student09 values(5,'fengtian','nan',31,'jiangsu');

insert into student09 values(6,'bentian','nv',32,'jiangsu');

insert into student09 values(7,'dazong','nan',31,'shanghai');

insert into student09 values(8,'nisang','nv',32,'zhejiang');

insert into student09 values(9,'bieke','nan',31,'zhejiang');

insert into student09 values(10,'xuefulan','nv',32,'shanghai');

-------------------------------------------------------------------------

insert into student08(id,name,sex,age) select id,name,sex,age from student09 where  id in(5,6,8)

select * from student08;


----------------------------------------------------------------------------------------------------------

3、更新数据——update操作

update命令用于更新已有数据,其后紧跟表名,set命令用于重新设置列值,其后紧跟列名,并用等号指定新值。

语法格式如下:

                   update 表名 set= 新值


使用update语句同样可以用于更新多列

语法格式如下:

                  update 表名 set 列1 = 新值1,列2 = 新值2,……


注意事项,使用update语句一般和where条件一起执行,没有where条件,就会更新整个表的数据

select * from student08;


update student08 set name = 'yuanxin' where age = 27;

update student08 set sex = 'nan',age = 18,address = 'wulumuqi' where id = 8 or id = 6;

update student08 set address = 'zhejiang' where id between 5 and 8;

---------------------------------------------------------------------------------------------------------

delete操作与truncate table操作


除了delete命令,oracle还可以利用truncate table命令删除表中的数据。但是,truncate table语句与delete语句是有本质区别的:

delete语句和insert、update语句都是可以做回滚操作的,数据修改后,可以做还原。

truncate table语句执行后,数据无法还原,即无法做到回滚。


delete操作与truncate table操作具有不同的应用场景:

当删除部分数据时,应当使用delete语句,并添加where条件;

删除全部数据时,使用truncate table语句。而且truncate table语句删除全部数据时,效率也要高于delete语句


select * from student08;

delete from student08 where address in ('jiangsu' , 'jiangsu04');

delete from student08 where address like '%3';

delete from student08 where name not like '%e%';

truncate table student08;

drop table student08;

 

posted @ 2020-02-03 22:03  小白龙白龙马  阅读(679)  评论(0编辑  收藏  举报