美文网首页
表中数据的更新

表中数据的更新

作者: lingoling | 来源:发表于2017-11-04 12:33 被阅读0次

表中数据的更新


更新操作包括:插入数据、修改数据、删除数据

一、插入数据

1.1、向所有字段添加值

语法:insert into 表名 values(值1,值2,……);

insert into employee values('0001','张三',5000.00,'manager',sysdate,'设计部');

1.2、向指定字段添加值

语法:insert into 表名(字段名1,字段名2,……)  values(值1,值2,……);

insert into employee(emp_id,emp_name) values('0002','李四');

1.3、向表中添加默认值

在创建表或修改表的时候设置默认值

创建表时设置默认值:create table userinfo(id number(6),rdate date default sysdate,email varchar2(100));

向表中插入数据: insert into userinfo(info_id) values(2);

覆盖默认值:insert into userinfo values(3,sysdate-1,'hh');

修改表时设置默认值:alter table userinfo modify email  default '无';

备注:在插入数据时,有默认值的列不写数据时,必须向指定字段添加值,若有默认值的列也插入了值,以插入的值为准,否则插入默认值

二、复制表数据

2.1、在建表时复制表数据 顺便把表结构复制过来

语法:create table 新表名 as select 字段1,字段2,…… from 旧表名;(若要将所有字段复制过来,字段处写*就行)create table new_userinfo as select * from userinfo;复制全部字段

create table new_userinfo_01 as select info_id from userinfo; 复制部分字段

2.2、在添加数据时复制别的表的数据

语法:insert into 新表名(字段1,……) select  字段1,……from 旧表名;

insert into new_userinfo_01 select info_id from userinfo;

备注:旧表的字段和新表的字段名可以不一致,但数据类型必须一致三、修改表数据语法:update 表名 set 字段1=值1,…… where 条件;

update userinfo set email='jjjjj' where info_id=1;

update userinfo set email='new' ;email列中所有的数据均被更改

备注:若不加where条件,则会更新该列中的所有数据四、删除表数据语法:delete from 表名 where 条件;

delete from userinfo where info_id=1;

delete from userinfo;表中的数据都被删除

备注:若不加where条件,则会删除表中的所有数据,其速度比truncate慢

truncate 和delete的区别:

1、truncate 属于DDL(数据库定义语言)范畴,delete使用DML(数据库操作语言)范畴

2、truncate 将一次性删除数据表的所有数据,delete语句对数据表中所有的记录进行循环处理

3、truncate 删除的数据不能回滚,delete删除的数据在修改提交之前,仍可以回滚操作

五、数据的提交与回滚

5.1、数据的回滚 rollback;

回滚动作是指当DML修改数据库时,用于存储原数据影像的存储空间

回滚动作有两种情况,一是用户在提交动作之前,手动执行rollback动作,二是事务执行失败,数据库自动执行rollback操作

备注:rollback一般会回滚到上一事务数据库状态,当前事务所做的更改操作无效,条件是当前事务未提交5.2、数据的提交 commit;

提交动作是指将数据库的修改操作反映到数据库,不再允许使用回滚操作

相关文章

网友评论

      本文标题:表中数据的更新

      本文链接:https://www.haomeiwen.com/subject/yjpfmxtx.html