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

 

分类:

技术点:

相关文章: