oracle insert into values 多条记录

稍微熟悉oracle的都知道,如果我们想一条SQL语句向表中插入多个值的话,如果INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....;这样会报错的,因为oracle是不支持这种写法的,如果多个INSERT INTO VALUEES(各个值);这样以“;”隔开一同执行也是不行的,oracle也是不支持的。

       不过MySQL这两种方式都是支持的。

       SQL Server也是不支持这两种写法的。

       然而,有时我们在开发过程中,如果是用的oracle数据库的话,有时很需要这种INSERT INTO  某表 一次性能插入多个值这样的功能,但oracle又不支持以上两种方式那么我们怎么办?是的可能你很机灵的想到了几种方法,如存储过程,或着INSERT INTO 某表 SELECT * FROM 某个表等,不过声明一下,我们在此不探讨这些方法,而且都有一定的局限性,有时我就要插入指定的几个值,而且一条SQL语句完成,存储过程的话,万不得已,建议大家不要使用,当然这个根据情况而定,可以读读这个博客存储过程的优缺点,分析的很详细。

       那么有没有其他方法呢??答案是有的,也许熟悉oracle数据库的可能知道从oracle9i版本以后,可以使用一种方法即:"INSERT ALL INTO  a表 VALUES(各个值)  INTO a表 VALUES (其它值) INTO a表 VALUES(其它值) ....再跟一个SELECT 语句"。后边跟的SELECT 语句我们可以从虚拟表里查如 SELECT 1 FROM DUAL。注意后边跟的SELECT语句可以随意,不过不是把它SELECT出来的内容插入前边的表里,而是起到前边的多个数据每次插入多少行的作用,这个多少行是和后边跟的SELECT语句查出来几条而定的,如后边的跟的SELECT 语句查出了15条记录,那么前边的"INSERT ALL INTO  a表 VALUES(各个值1)  INTO a表 VALUES (其它值2) INTO a表 VALUES(其它值3)"就会先插入值1对应的各个字段插入15条记录,然后插入值2各个对应的字段15条记录,然后插入值3对应的各个字段15条记录。

       我们要的是批量插入多个VALUES这样的一条记录,所以后边的SELECT 语句只要能查出一条记录就行,建议大家后边用SELECT 1 FROM DUAL

       下边看一个例子,一目了然,一看就会用了:

        

或者

insert   into t  
select * from(
 select 5, 'c' from dual
 union
 select 6, 'f' from dual
)



OK了,我们实现了没用存储过程用一条SQL语句完成了向oracle的表中插入多个指定的值。也许你会问这有啥用处,告诉你,如果你在一定情况下用到它,作用就大了,避免了写复杂而又没必要写的存储过程,避免了执行多个SQL语句多次连接数据库的开销

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Oracle插入数据语句格式为: INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...); 其中,表名为要插入数据的表名,列1、列2、列3等为要插入数据的列名,值1、值2、值3等为要插入的数据值。 例如,要向名为“students”的表中插入一条数据,该数据包含学生的姓名、年龄和性别,可以使用以下语句: INSERT INTO students (name, age, gender) VALUES ('张三', 18, '男'); ### 回答2: Oracle是一款强大的关系型数据库管理软件,它是企业级数据库管理系统中不可或缺的一部分。在Oracle中,插入数据是一项非常基础和重要的操作。使用INSERT INTO VALUES语句可以将数据插入到表中。 INSERT INTO VALUES是插入数据的一种方式,它的语法如下: INSERT INTO table_name (column1, column2, ..., columnN) VALUES (value1, value2, ..., valueN); 其中,table_name是需要插入数据的表名;column1, column2, ..., columnN是表中需要插入的列名;value1, value2, ..., valueN是插入的数据值。 下面是一些INSERT INTO VALUES语句的实例: -- 插入一条新数据 INSERT INTO employee (id, name, age, gender) VALUES (1, 'Tom', 23, 'M'); -- 插入多条数据 INSERT INTO employee (id, name, age, gender) VALUES (2, 'Lily', 25, 'F'), (3, 'Jack', 26, 'M'), (4, 'Rose', 24, 'F'); 在实际使用中,还可以使用INSERT INTO SELECT语句插入通过查询得到的数据。 总之,INSERT INTO VALUESOracle中常用的插入数据的方式之一,通过它可以方便地将数据插入到表中。在使用时需要注意语法和数据类型等方面的问题,以确保数据插入的正确性和有效性。 ### 回答3: Oracle数据库中的INSERT INTO VALUES语句用于向表中插入新的数据行。它的语法如下: INSERT INTO table_name (column1, column2, column3, …) VALUES (value1, value2, value3, …); 其中,table_name 表示要插入数据的表名;column1, column2, column3, … 表示要插入数据的列名;value1, value2, value3, … 表示要插入数据的值。 举个例子: INSERT INTO employees (employee_id, first_name, last_name, department) VALUES (1001, 'John', 'Smith', 'IT'); 上面的语句插入了一条新的数据行到employees表中,该行的employee_id列的值为1001, first_name列的值为'John',last_name列的值为'Smith',department列的值为'IT'。 需要注意的是,插入数据时必须保证相应的列名和值的个数、数据类型、顺序等对应正确,否则会出现错误。 此外,还可以使用INSERT INTO VALUES语句插入自增长主键列的值,Oracle数据库中可以使用序列和触发器来实现,具体方法可以参考Oracle官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值