Oracle如何增加数据
1.使用INSERT语句进行添加
在Oracle中,我们可以使用INSERT语句向一个表中添加数据。具体使用方法如下:
INSERT INTO 表名 (列名1, 列名2, 列名3, ...) VALUES (值1, 值2, 值3, ...);
注意:除非表中的所有列都有默认值,否则我们必须提供所有列的值,或者为那些不提供值的列指定NULL。
举例来说,我们可以向名为"student"的表中添加一条学生记录,其姓名为"张三",性别为"男",年龄为"20",语文成绩为"80"分,数学成绩为"90"分,英语成绩为"85"分,方法如下:
INSERT INTO student (name, gender, age, Chinese, Math, English) VALUES ('张三', '男', 20, 80, 90, 85);
提示:在向Oracle中添加数据时,我们需要保证每个记录都有唯一的主键值。此外,插入数据时必须遵循相应列的数据类型。
2.使用INSERT ALL语句进行批量添加
INSERT ALL语句可以一次性向多个表中添加不同的记录。对于需要向多个表添加相似数据的情况,此方法非常有效。
使用INSERT ALL语句的语法如下:
INSERT ALL
INTO 表名1 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...)
INTO 表名2 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...)
INTO 表名3 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...)
...
SELECT * FROM dual;
提示:注意最后的SELECT * FROM dual语句,它是必须的,否则INSERT ALL语句将无法执行。
举例来说,我们可以向名为"student"和"teacher"的两个表中插入多条数据,方法如下:
INSERT ALL
INTO student (name, gender, age, Chinese, Math, English) VALUES ('张三', '男', 20, 80, 90, 85)
INTO student (name, gender, age, Chinese, Math, English) VALUES ('李四', '女', 19, 70, 80, 95)
INTO teacher (name, gender, age, salary) VALUES ('王老师', '男', 35, 8000)
INTO teacher (name, gender, age, salary) VALUES ('李老师', '女', 30, 10000)
SELECT * FROM dual;
3.使用CREATE TABLE AS SELECT语句进行复制表结构并插入数据
使用CREATE TABLE AS SELECT语句可以复制表的结构并将数据插入到新表中。在Oracle中,此方法非常通用。
使用CREATE TABLE AS SELECT语句的语法如下:
CREATE TABLE 新表名 AS SELECT * FROM 原表名;
注意:如果我们需要根据某个条件进行复制数据,可以在SELECT语句中指定条件。例如:
CREATE TABLE 新表名 AS SELECT * FROM 原表名 WHERE 列名 = 值;
举例来说,将一个名为"student"的表复制到一个名为"student2"的新表中,方法如下:
CREATE TABLE student2 AS SELECT * FROM student;
4.使用MERGE语句进行更新或插入操作
MERGE语句可以根据目标表和源表之间的匹配关系,进行INSERT、UPDATE或DELETE操作。
使用MERGE语句的语法如下:
MERGE INTO 目标表 t
USING 源表 s
ON (t.列名 = s.列名)
WHEN MATCHED THEN
UPDATE SET 列名1 = 值1, 列名2 = 值2, ...
WHEN NOT MATCHED THEN
INSERT (列名1, 列名2, 列名3, ...) VALUES (值1, 值2, 值3, ...);
举例来说,我们可以将一个名为"student_temp"的临时表的数据,更新到名为"student"的目标表中。如果某个记录在目标表中不存在,则在目标表中插入该记录。方法如下:
MERGE INTO student t
USING student_temp s
ON (t.ID = s.ID)
WHEN MATCHED THEN
UPDATE SET t.name = s.name, t.gender = s.gender, t.age = s.age,
t.Chinese = s.Chinese, t.Math = s.Math, t.English = s.English
WHEN NOT MATCHED THEN
INSERT (ID, name, gender, age, Chinese, Math, English) VALUES (s.ID, s.name, s.gender, s.age, s.Chinese, s.Math, s.English);
总结
本文介绍了Oracle中常用的四种添加记录的方法,它们分别是:
使用INSERT语句进行添加
使用INSERT ALL语句进行批量添加
使用CREATE TABLE AS SELECT语句进行复制表结构并插入数据
使用MERGE语句进行更新或插入操作
每种方法都各有优点和适用的场景,具体使用时需要根据实际情况选择。希望本文能为Oracle开发工作者提供一些帮助。