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;