Oracle学习VIII —— Oracle的增删查改

Oracle的增删查改

通过Oracle学习VI —— SQL语句介绍,可知增删查改是数据操纵语言(DML)。

Oracle查询(select)

对Oracle表数据进行查询是数据查询语言(DQL)。
简单查询是利用SELECT命令从表中进行提取数据,SELECT命令结构如下:
select命令结构:

select t.*|t.列名|表达式 from 表名 as t where 条件 order by 列名 desc;
-- “t”代表表的别名 as可以省略
-- *|列名|表达式 (查询的结果)
--  "*"  代表所有字段
-- 表达式可以是函数(列名)、常数、连接词“||”等组成的表达式
-- where子语句是查询语句的条件
-- order by 列名 (根据列名排序)  asc(默认是升序)    desc(降序)

备份查询数据

Oracle进行表数据备份时,可以利用create table(建表)的方式对select查询的结果进行快速备份。
备份查询数据命令结构:

create table 表名_备份 as select * from 表名 where 条件;

Oracle插入(insert into)

Oracle对表数据的插入是使用insert命令来执行的。
insert 命令结构:

insert into 表名(列名1,列名2,列名3.....values(1,2,3.....);
-- 列名可以省略,当列名不填时,默认的是表中的所有列,列的顺序是按照建表的顺序进行排列的
-- 列名的数量和值的数量要一致,并且值的类型要和列的类型一一对应
/*当表当中某些字段设置了某些约束的情况下,必须按照字段的约束来进行该值的插入,例如:学生信息表(STUINFO)当中设置有主键(主键字段是STUID),
因此该字段必须具有唯一性,不能和原有的数据重复。age、stuname、calassno等字段是必填字段,因此是必须有值的*/

当插入相同的主键时,会报错:
插入相同主键数据时报错

insert插入一个select的结果集

在 Oracle 中,一个 INSERT 命令可以把一个select结果集一次性插入到一张表中。
语法结构如下:

 INSERT INTO1 SELECT * FROM2;
 --将表2数据插入到表1

Oracle更新(update)

Oracle对表数据的更新是使用update命令来执行的。
update命令结构:

update 表名 set 列名1=1,列名2=2,列名3=3,... where 条件;
-- set后是所要更新的内容
-- where子语句是更新语句的条件

update 利用另外一张表关联更新本表数据的命令

在 Oracle 中,一个 update 命令可以利用另外一张表关联更新本表中的数据。
结构如下:

update1 set (列名1,列名2,...) = (select 列名1,列名2... from2 where1.主键=2.主键)where exists (select 1 from2 where1.主键=2.主键 and2.列名 =);
-- exists 检验查询是否返回数据,不在乎结果是什么,所以这里是 select 1 ;返回为true,没返回为false
-- and  后的条件是更新具体哪一条数据

Oracle删除(delete)

Oracle中对表数据的删除是利用delete命令进行的。
delete命令结构:

delete from 表名 where 条件;
-- 当delete from不加where条件时,表示是把表中的数据全部删除

truncate命令

truncate命令也是数据删除命令,他是直接把Oracle表数据一次删除的命令,truncate命令是一个DDL命令,不同于delete是DML命令。
truncate命令结构:

truncate table 表名;

truncate和delete都能删除表中的数据,他们的区别:

1、TRUNCATE 是 DDL 命令,命令执行完就提交,删除的数据不能恢复; DELETE 命令是 DML 命令,命令执行完需提交后才能生效,删除后的数据可以通过日志文件恢复。
2、如果表中的数据量较大,TRUNCATE的速度比DELETE速度快很多。
3、truncate删除将重新设置表索引的初始大小,而delete不能。
4、delete能够触发表上相关的delete触发器,而truncate则不会触发。
5、delete删除的原理是一次一条从表中删除数据,并将删除操作当做事物记录在数据库的日志当中,以便进行数据回滚。而truncate是一次性进行数据页的删除,因此执行速度快,但是不能回滚。
总结:truncate命令是属于DDL命令,一次性删除表中所有数据,并且数据不能恢复,在实际开发过程当中truncate命令慎用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值