add oracle

2023年 8月 6日 34.2k 0

在数据库应用中, Oracle 数据库是广泛使用的一种关系型数据库管理系统,它能够有效地处理数据存储和管理问题。在该系统中,有许多操作和功能可以帮助用户实现更加高效的数据管理。其中,添加数据是一个非常常见的需求,本文将介绍在 Oracle 数据库中如何进行添加数据的操作。

在 Oracle 数据库中,添加数据的方式一般分为两种:一种是使用 INSERT INTO 命令,直接向表中添加记录;另一种是使用 SQL*Loader 或外部表工具,通过导入文件的方式实现添加数据。这两种方式各有优缺点,下面会详细介绍。

INSERT INTO 命令是 Oracle 数据库中添加记录的最基本方式。该命令可以在 SQL Plus 或其他 SQL 编辑器中执行。举例来说,我们现在需要在一个名为“STUDENT”的表中添加一条记录,其中该表包括三个字段:学生 ID、姓名和年龄。在执行 INSERT INTO 命令之前,需要先检查该表是否已经存在。如果表不存在,可以使用 CREATE TABLE 命令创建。命令如下:

CREATE TABLE STUDENT(
ID NUMBER(10) PRIMARY KEY,
NAME VARCHAR2(20),
AGE NUMBER(3));

创建完表之后,就可以执行 INSERT INTO 命令向该表中插入数据了。命令如下:

INSERT INTO STUDENT(ID,NAME,AGE) VALUES(1,'Tom',18);

除了直接在命令中输入需要插入的数据之外,还可以通过变量的方式向表中插入数据。命令如下:

DECLARE
ID NUMBER(10) := 2;
NAME VARCHAR2(20) := 'Jerry';
AGE NUMBER(3) := 20;
BEGIN
INSERT INTO STUDENT(ID,NAME,AGE) VALUES(ID,NAME,AGE);
END;

使用 INSERT INTO 命令插入数据可以非常方便地实现新增记录的需求。但是,当需要插入大量数据时,使用该方式会非常繁琐。这个时候,就需要使用 SQL*Loader 或外部表工具来实现批量导入数据。

SQL*Loader 是 Oracle 数据库提供的一种数据加载工具,它可以通过读取源文件并解析其中的数据,批量地将这些数据导入数据库表中。使用该工具前,需要先准备好数据文件和控制文件。其中,数据文件是包含需要插入的数据的文件,而控制文件告诉 SQL*Loader 如何将这些数据插入到表中。举例来说,我们现在要将一个包含 1000 条学生信息的文件 student.txt 导入到名为“STUDENT”的表中。在执行 SQL*Loader 之前,需要先编写相应的控制文件 student.ctl。该文件内容如下:

LOAD DATA
INFILE 'student.txt'
INTO TABLE STUDENT
FIELDS TERMINATED BY ','
(ID, NAME, AGE)

该控制文件告诉 SQL*Loader 将 student.txt 文件中的数据导入 STUDENT 表中,各字段之间是以“,”分割的,并且需要指定需要导入的字段。控制文件编写完毕之后,就可以执行 SQL*Loader 命令了:

$ sqlldr user/passwd@database control=student.ctl

外部表是另一种将数据文件导入 Oracle 数据库的方式。它与 SQL*Loader 不同的是,在导入数据时并不会将数据直接插入表中,而是通过创建一个临时表,将数据加载到该临时表中,然后再将临时表中数据插入到目标表中。使用外部表导入数据同样需要准备好数据文件,并在 Oracle 数据库中创建相应的外部表。举例来说,我们现在要将一个包含 1000 条学生信息的文件 student.csv 导入到名为“STUDENT”的表中。在执行外部表之前,需要先编写相应的创建外部表语句 student_external_table.sql。该文件内容如下:

CREATE TABLE STUDENT_EXTERNAL_TABLE (
ID NUMBER(10),
NAME VARCHAR2(20),
AGE NUMBER(3)
)
ORGANIZATION EXTERNAL
(
TYPE CSV
DEFAULT DIRECTORY data_dir
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE
FIELDS TERMINATED BY ','
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
)
LOCATION ('student.csv')
);

在该语句中,需要指定一个名为“data_dir”的文件夹,用于存放数据文件,也需要指定数据文件的文件名和格式。创建外部表之后,就可以将数据从临时表中插入到目标表中。命令如下:

INSERT INTO STUDENT (SELECT * FROM STUDENT_EXTERNAL_TABLE);

以上就是在 Oracle 数据库中添加数据的两种常用方式。无论是 INSERT INTO 命令还是批量导入数据方式,都可以满足不同程度的需求。正确选择合适的方法,可以有效提高数据库操作的效率和准确性。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论