Oracle 插入数据

顾名思义,INSERT用于向数据库插入(添加行)。

可以以多种方式使用插入操作:

  • 插入单个完整的行;
  • 插入单个部分行;
  • 插入多行;
  • 插入查询的结果。

提示:insert 和系统安全性

可以使用Oracle安全性基于每个表或每个用户禁用INSERT语句。

1.1 插入完整的行

语法示例:

INSERT INTO Customers
VALUES(10006,'Pep E. LaPew','100 Main Street','Los Angeles','CA','90046','USA',NULL,NULL);

注意:无输出

INSERT语句通常不会产生任何输出,但是如果在Oracle SQL Developer中执行上面的语句,应该会看到“1 row inserted.”消息。

在VALUES子句中指定要在每个表列中存储的数据,并且必须为每一列提供一个值。如果列没有值,就应该使用NULL值(假定表允许为该列不指定值)。必须按表定义中的顺序填充列。编写依赖于特定顺序的SQL语句是非常不安全的。

更安全(不幸的是也是更麻烦)的方式是编写如下所示的INSERT语句:

INSERT INTO customers(cust_id,cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country
)
VALUES(10006,'Pep E. LaPew','100 Main Street','Los Angeles','CA','90046','USA'
);

提示:自动主键

每次添加行时,无需手动分配唯一的值(也无需记录上次使用的是什么值),大多数DBMS都提供了一种自动分配的方式:每次向表中添加行时,都会自动分配下一个可用的数字,这种功能称为 自动递增

由于提供了列名,VALUES必须以指定的顺序来匹配指定的列名,这个顺序不一定是列出现在实际表中的顺序。

提示:总是使用列所在的列表

通常,如果没有显式指定所在列的列表,那么就永远也不要使用INSERT。

警告:省略列

如果表定义允许,可以从INSERT操作中省略列。此时,必须存在以下条件:

  • 将列定义为允许NULL值
  • 在表定义中指定默认值。这意味者如果没有指定值,则将使用默认值。

提示:插入多个行

与大多数其他的DBMS不同,Oracle不支持可以同时插入多个行的insert版本。

解决方法:

--这种语法为一种错误示范,但是在其他的DBMS中是可以使用的
insert into table_name(colum1, colun2)
values(1,2),(3,4);--正确用法:
1、采用union all拼接查询方式:
insert into CB_PRACTICE(id_, type_,remark)
select 5,'物理','浮力' from dual
union all select 6,'物理','阻力' from dual;2、采用insert all的方式:
INSERT ALL
INTO CB_PRACTICE(id_, type_,remark) VALUES (7,'语文','唐诗')
INTO CB_PRACTICE(id_, type_,remark) VALUES (8,'语文','宋词')
SELECT * FROM DUAL;

2. 插入检索的数据

INSERT还有另外一种形式,可用于把INSERT语句的结果插入表中.这称为INSERT SELECT.

INSERT INTO customers(cust_id,cust_contact,cust_email,cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country)
SELECT cust_id,cust_contact,cust_email,cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country
FROM custnew;

提示:INSERT SELECT中的列名

为了简单起见,这个示例在INSERT和SELECT语句中使用相同的列名,但是不需要列名匹配.

Oracle 插入数据相关推荐

  1. oracle插入数据脚本

    这篇主要讲oracle插入数据的两种方式,一种是.sql文件,一种是shell脚本本文数据是在linux环境下测试的 一.sql文件方式 1.新建.sql文件vi test_insert.sql 2. ...

  2. python如何往oracle写入数据_python3向oracle插入数据

    1.保证与oracle服务器版本统一 2.python3 ,oracle服务器,oracle client统一使用64位或者32位 2.先解压缩instantclient-basic-linux.x6 ...

  3. oracle插入数据时有特殊符号@‘

    oracle插入数据时有特殊符号@&' 现在用户名插入一个有特殊符号的value 如果SQL中有&,那么后面的字符串将被作为一个变量来处理,无法正常插入数据库. 如果的确需要把& ...

  4. Oracle插入数据每5000条提交一次

    Oracle插入数据每5000条提交一次 declarei_count int;i_large int; begini_count := 1;select ceil(count(1) / 5000)i ...

  5. oracle插入数据语句实例,oracle Insert 用法总结

    总结下Oracle 中的Insert用法 1.标准Insert --单表单行插入 语法: INSERT INTO table [(column1,column2,...)] VALUE (value1 ...

  6. oracle 导入数据时主键丢失,Oracle 插入数据 返回主键

    场景:解决getJdbcTemplate往oracle数据库中插入数据返回主键出错有关问题 解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题 我们使用Spring中的J ...

  7. oracle 自增id函数,oracle插入数据时自增ID的解决思路

    一直在用MySQL,从来没有为自增ID发过愁,这初到oracle上,连自增ID都让我挠头,好在互联网资源丰富,我在充分吸取精华后,把我的一点经验总结出来给大家分享分享- 1. 创建一个sequence ...

  8. Oracle插入数据

    1.创建表格并指定结构 CREATE TABLE DB3.STUINFO( STUID INT, STUNAME VARCHAR(10), SEX INT, AGE INT, CLASSNO VARC ...

  9. 解决oracle插入数据中文乱码

    在做oracle输入数据时乱码了 insert into person (pid,pname) values(1,'小明'); select * from person; 中文乱码问题解决: 1.查看 ...

最新文章

  1. java 打包目录_Java打包文件目录问 zip文件
  2. 服务器运行码用户名a多少呢,如何以非根用户身份运行gunicorn/a python应用服务器?...
  3. MS提供的Oracle for ADO 驱动,在一个应用中不能打开同时多个数据库连接
  4. mysql解压安装如何登录_如何安装windows解压版MySQL及开启报错
  5. BarnBridge更新路线图计划或于Q2推出SMART Alpha
  6. Linux用户、群组及权限
  7. python中的JSON(1)
  8. VC2005绿色编译器--命令行下编译C++代码
  9. 《JSjQuery 交互式web前端开发》(四)判断和循环
  10. 单片机开发系列(一)之Keil 5 安装使用教程
  11. apt 安装软件出现“无法定位软件包”的问题
  12. linux 运维安全,运维安全有哪些分类呢?linux学习线路图
  13. JavaWeb毕业生就业管理系统项目实战教程
  14. P2756 飞行员配对方案问题【二分匹配】【网络流Dinic、EK详解】【萌新初写】
  15. 【GAMES101】作业2--三角形光栅化
  16. win8用分区助手开不了机处理
  17. 2021-09-02 linux修改open files数
  18. 开发钉钉小程序(后台)心得
  19. JavaScript对象、基本类型和字面值之间的区别
  20. Kestrel封装在WindowService中(.net5,.net6,.net7三个版本的介绍)

热门文章

  1. FileItem类的使用
  2. Linux NUMA
  3. 苹果7手机严重卡顿_苹果手机仅配备4GB运存都不会卡顿,安卓系统为何要更多内存?|安卓系统|内存|ios系统|安卓手机|手机...
  4. maven的概念和idea中使用maven
  5. 除了技术,我们还能拼什么?
  6. python常用的程序调试方法_Python调试的几种方式
  7. css 超出行显示点点点
  8. python数据处理基础 pandas dataframe
  9. STM32CubMX——ESP8266WiFi模块
  10. 2023-04-24 Nginx基本使用