工欲善其事必先利其器
文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

create table 备份后的表名称 as (要备份的数据)
create table student_bak as select * from student;
insert into student (id,name,age,sex,class) values (10,'张三',20,'男','五班');
update student set age = 20 where name = '张三';
delete from student where name = '张三';
oracle在执行增删改操作的时候都需要进行提交事务的,增删改操作是先将数据放入缓存区,执行commit命令后才能真正的修改数据,在缓存区的时候可以使用rollback命令进行回滚操作
delete from student where name = '张三';
此时并没有真正的删除学生的数据,需要commit提交后才能修改数据,所以可以将上面的语句和commit语句写成一个语句,为了简便我之前的操作都没有加commit命令。
delete from student where name = '张三';
commit;
数据伪列是oracle数据库默认的一些列,如果不主动操作是没有什么影响,如果要使用这些伪列可以显示的操作,例如之前的sysdate系统日期,现在来讲一下rownum(行号)、rowid(不重复的行号)
select rownum,name from student;
select rownum,name from student where rownum = 1;
select rownum,name from student where rownum <= 1;
使用rownum是行号,可以被修改,这样的话就有可能重复,所以我们一般删除的时候可以根据rowid来进行删除操作。假设我们数据库中有两个姓名为“张三”的数据,我们想删除其中一条应该怎么删除呢,如果用where name=‘张三’,这样的话肯定两条都删除了,那我们应该使用rowid来操作
delete from student where rowid not in (select min((rowid)from student where name = '张三')
这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。
文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。
可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。