当前位置:首页 » 数据仓库 » oracle数据库插入语句
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracle数据库插入语句

发布时间: 2023-01-12 04:30:52

① oracle 插入语句

  1. 嵌套一个select语句在values这里,把你要插入的一整列语句用一根select语句查询出来,再赋值给values里面的值。

  2. 按位置对应一下,batch在段在倒数第二位,所以那个地方直接引用序列。

② 求写一段向oracle数据库插入新数据的sql语句

你说的“库名”是指oracle里的数据库名称,还是指表所在的用户?
登陆你的oracle用户:

ID希望自增长,那么建立一个sequence序列即可。
先建立序列:
create sequence seq_name -------创建序列名字为 seq_name,自己定义
minvalue 1 ----- 最小值为 1,可自定义
maxvalue 99999 ------- 最大值为 99999,可自定义
start with 1 ------ 开始值 1,可自定义
increment by 1 -----每次增长值 1,可自定义
cache 20; ----缓存大小 20,可自定义

这里用表名tablename 代替你说的DB,你替换就可以
插入:
insert into tablename(id, user, pass, sex, sn) values(seq_name.nextval,'user','pass','sex','sn' );
commit;

修改:
update tablename set sex='男' where user=‘张三';
commit;
-------set后面要更新成什么,和where后面的条件根据需要自己写。最基本的SQL了。

删除:
delete from tablename where user='张三';
commit;
-----------具体条件自己写。

我觉得你还是看下最基本的SQL教材吧

③ oracle数据库,主键设置为ID,插入语句时,如何自动生成ID并让它顺序增加呢

使用oracle数据库中的关键字sequence来实现目的。

//创建mySeq

create sequence mySeq
start with 1
increment by 2
maxvalue 40
minvalue 1
cycle

//创建用户表

create table USER
(
Id int,
CompName varchar2(20)
)

插入语句可以这样写:

insert into USER values(mySeq.nextVal,'AA')

这样的话每次插入的ID就是自动递增的

(3)oracle数据库插入语句扩展阅读:

sequence用法:

create sequence <序列名称>

start with <起始数>

increment by <增长量>

[maxvalue 值]

[minvalue 值]

[cycle 当到达最大值的时候,将继续从头开始]

[Nocycle -- 一直累加,不循环]

[Cache ]

参考资料:网络-oraclesequence

④ Oracle中插入数据

前提:在做insert数据之前,如果是非生产环境,请将表的索引和约束去掉,待insert完成后再建索引和约束。

insert into tab1 select * from tab2; commit;

这是最基础的insert语句,我们把tab2表中的数据insert到tab1表中。根据经验,千万级的数据可在1小时内完成。但是该方法产生的arch会非常快,需要关注归档的产生量,及时启动备份软件,避免arch目录撑爆。

alter table tab1 nologging;

insert /*+ append */ into tab1 select * from tab2;

commit; alter table tab1 logging;

该方法会使得产生arch大大减少,并且在一定程度上提高时间,根据经验,千万级的数据可在45分钟内完成。但是请注意,该方法适合单进程的串行方式,如果当有多个进程同时运行时,后发起的进程会有enqueue的等待。注意此方法千万不能dataguard上用,不过要是在database已经force logging那也是没有问题的。

insert into tab1 select /*+ parallel */ * from tab2; commit;

对于select之后的语句是全表扫描的情况,我们可以加parallel的hint来提高其并发,这里需要注意的是最大并发度受到初始化参数parallel_max_servers的限制,并发的进程可以通过v$px_session查看,或者ps -ef |grep ora_p查看。

alter session enable parallel dml;

insert /*+ parallel */ into tab1 select * from tab2; commit;