在Oracle数据库中,INSERT语句用于向表中插入新的行,INSERT语句的基本语法如下:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
table_name是要插入数据的表名,column1、column2、column3等是要插入数据的列名,value1、value2、value3等是要插入的数据值。
下面详细介绍Oracle中INSERT语句的几种写法:
1、插入单行数据
这是最基本的INSERT语句写法,用于向表中插入一行数据,向employees表中插入一条员工信息:
INSERT INTO employees (id, name, age, gender, department) VALUES (1, '张三', 25, '男', '技术部');
2、插入多行数据
如果要向表中插入多行数据,可以使用多个VALUES子句,向employees表中插入两条员工信息:
INSERT INTO employees (id, name, age, gender, department) VALUES (1, '张三', 25, '男', '技术部'), (2, '李四', 30, '女', '市场部');
3、从其他表中插入数据
如果需要从一个表中复制数据并插入到另一个表中,可以使用SELECT语句和INSERT语句结合,将employees表中的数据复制到new_employees表中:
INSERT INTO new_employees (id, name, age, gender, department) SELECT id, name, age, gender, department FROM employees;
4、使用子查询插入数据
如果需要根据子查询的结果插入数据,可以使用INSERT语句和子查询结合,将employees表中年龄大于30的员工信息插入到old_employees表中:
INSERT INTO old_employees (id, name, age, gender, department) SELECT id, name, age, gender, department FROM employees WHERE age > 30;
5、指定列名插入数据
如果只需要插入部分列的数据,可以指定要插入的列名,只向employees表中插入员工的姓名和部门信息:
INSERT INTO employees (name, department) VALUES ('王五', '人事部');
6、省略列名插入数据
如果表的所有列都需要插入数据,可以省略列名,向employees表中插入一条员工信息:
INSERT INTO employees VALUES (3, '赵六', 28, '男', '财务部');
7、同时插入多条数据
如果要同时插入多条数据,可以使用多个INSERT语句或一个INSERT语句结合UNION ALL操作,同时向employees表中插入两条员工信息:
方法一:使用两个INSERT语句:
INSERT INTO employees (id, name, age, gender, department) VALUES (4, '孙七', 22, '女', '行政部'); INSERT INTO employees (id, name, age, gender, department) VALUES (5, '周八', 24, '男', '技术部');
方法二:使用一个INSERT语句结合UNION ALL操作:
INSERT INTO employees (id, name, age, gender, department) VALUES (4, '孙七', 22, '女', '行政部') UNION ALL SELECT 5 AS id, '周八' AS name, 24 AS age, '男' AS gender, '技术部' AS department FROM DUAL;
相关问题与解答:
问题1:如何在Oracle中使用INSERT语句批量插入数据?
答:在Oracle中,可以使用多个VALUES子句或者一个INSERT语句结合UNION ALL操作来批量插入数据。
INSERT INTO employees (id, name, age, gender, department) VALUES (1, '张三', 25, '男', '技术部'), (2, '李四', 30, '女', '市场部'); -使用多个VALUES子句批量插入数据
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/349880.html