Home Database Mysql Tutorial Oracle insert的扩展

Oracle insert的扩展

Jun 07, 2016 pm 05:59 PM
ins insert oracle Expand

向一个表发散弹枪: ⑴ insert into table_name [(column[,column...])] select_statement 每次只能插入一个表,但性能上比写多条insert语句要高。另外,Oracle还提供create table table_name as select ...,as不可少!实现直接创建并且插入表,依赖于后面的s

向一个表发散弹枪:
⑴ insert into table_name [(column[,column...])] select_statement
每次只能插入一个表,但性能上比写多条insert语句要高。另外,Oracle还提供create table table_name as select ...,as不可少!实现直接创建并且插入表,依赖于后面的select语句的结果,如:create table new_table as select * from source_table where 1=0
-


案例:
表mxt新增一列time,那么这个列会被置在最后,现想把此列放于第2
create table copy_mxt as select id,time,name from mxt;
drop table mxt;
rname copy_mxt to mxt;

向多个表发散弹枪:

类型:
            ① 无条件的insert
            ② 带条件的insert all
            ③ 带条件的insert first
            ④ pivoting insert

多表insert的使用限制:
            ① 只能对table使用insert,不能对视图或物化视图使用
            ② 不能对远程表使用这个插入操作
            ③ 多表插入时,不能指定一个表的集操作
            ④ 多表insert的into的目标表加在一起的列数不能超过999

㈠ 无条件的insert
             语法:
             insert all
             into dest_table1 [column(,column...)] [values (...)]
             into dest_table2 [column(,column...)] [values (...)]
             ...
             select_statement  --values中指定是select结果列,如果没有values指定列,那么表示目标表的列类型和顺序与select语句查询的结果完全一致。建议不要省略目标表中的列和values,增强可读性。

例子:

1.create table emp_1 as select employee_id,last_name from employees where 1=0;  
2.create table emp_2 as select * from employees where 1=0;  
3.create table emp_3 as select * from employees where 1=0;  
4.insert all  
5.--不指定emp_1后面的列,也没有values指定列,那么emp_1所有列类型和顺序与查询的列的类型和顺序一致   
6.--也就是emp_1中只有查询结果中的那几列,而且类型和顺序一致   
7.  into emp_1  
8.--指定了emp_2后面的列,但没有values指定列,表示emp_2中要插入的列被选择出来,与查询结果列的类型和顺序一致   
9.--emp_2也有很多列,不止这两列   
10.  into emp_2(employee_id,last_name)  
11.--指定emp_3后面的列和values指定列,那么values后面的列名必须与查询结果一致,如果查询有别名,必须在values中使用别名   
12.--emp_3指定的列的类型和顺序必须与values保持一致   
13.--emp_3也可能列数大于指定列数   
14.  into emp_3(employee_id,last_name) values(e_id,e_last_name)  
15.  select employee_id e_id,last_name e_last_name   
16.   from employees 
语法:
             insert all
             when condition_statement
             then into dest_table1[指定列] values[查询中的列]
             when condition_statement
             then into dest_table2[指定列] values[查询中的列]
             select_statement
             注释:带条件的insert all与insert first的区别在于只按条件对查询的结果进行刷选,不会考虑前面已经匹配过的记录,每次都是全量匹配,而insert first对已经匹配过的记录不予考虑,下一个when会自动过滤掉上一个匹配过的行记录
             例子:
1.insert all 
2.  --将查询结果s_id>20的插入,条件中指定的列必须与查询结果名字一致,如果有别名,请用别名   3.  when e_id>20  4.    then into emp_1  5.  --s_last_name为M开头的插入,可能插入的行与s_id有重复   6.  when e_last_name like 'M%'  7.    then into emp_2(employee_id,last_name)  8.  --如果指定else,则不满足上面条件的插入到emp_3,插入的行不会与上面两个重复   9.  else  10.    into emp_3(employee_id,last_name) values(e_id,e_last_name)  11.  select employee_id e_id,last_name e_last_name  12.    from employees  
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What to do if the oracle can't be opened What to do if the oracle can't be opened Apr 11, 2025 pm 10:06 PM

Solutions to Oracle cannot be opened include: 1. Start the database service; 2. Start the listener; 3. Check port conflicts; 4. Set environment variables correctly; 5. Make sure the firewall or antivirus software does not block the connection; 6. Check whether the server is closed; 7. Use RMAN to recover corrupt files; 8. Check whether the TNS service name is correct; 9. Check network connection; 10. Reinstall Oracle software.

How to solve the problem of closing oracle cursor How to solve the problem of closing oracle cursor Apr 11, 2025 pm 10:18 PM

The method to solve the Oracle cursor closure problem includes: explicitly closing the cursor using the CLOSE statement. Declare the cursor in the FOR UPDATE clause so that it automatically closes after the scope is ended. Declare the cursor in the USING clause so that it automatically closes when the associated PL/SQL variable is closed. Use exception handling to ensure that the cursor is closed in any exception situation. Use the connection pool to automatically close the cursor. Disable automatic submission and delay cursor closing.

How to create cursors in oracle loop How to create cursors in oracle loop Apr 12, 2025 am 06:18 AM

In Oracle, the FOR LOOP loop can create cursors dynamically. The steps are: 1. Define the cursor type; 2. Create the loop; 3. Create the cursor dynamically; 4. Execute the cursor; 5. Close the cursor. Example: A cursor can be created cycle-by-circuit to display the names and salaries of the top 10 employees.

How to stop oracle database How to stop oracle database Apr 12, 2025 am 06:12 AM

To stop an Oracle database, perform the following steps: 1. Connect to the database; 2. Shutdown immediately; 3. Shutdown abort completely.

What to do if the oracle log is full What to do if the oracle log is full Apr 12, 2025 am 06:09 AM

When Oracle log files are full, the following solutions can be adopted: 1) Clean old log files; 2) Increase the log file size; 3) Increase the log file group; 4) Set up automatic log management; 5) Reinitialize the database. Before implementing any solution, it is recommended to back up the database to prevent data loss.

What steps are required to configure CentOS in HDFS What steps are required to configure CentOS in HDFS Apr 14, 2025 pm 06:42 PM

Building a Hadoop Distributed File System (HDFS) on a CentOS system requires multiple steps. This article provides a brief configuration guide. 1. Prepare to install JDK in the early stage: Install JavaDevelopmentKit (JDK) on all nodes, and the version must be compatible with Hadoop. The installation package can be downloaded from the Oracle official website. Environment variable configuration: Edit /etc/profile file, set Java and Hadoop environment variables, so that the system can find the installation path of JDK and Hadoop. 2. Security configuration: SSH password-free login to generate SSH key: Use the ssh-keygen command on each node

Oracle's Role in the Business World Oracle's Role in the Business World Apr 23, 2025 am 12:01 AM

Oracle is not only a database company, but also a leader in cloud computing and ERP systems. 1. Oracle provides comprehensive solutions from database to cloud services and ERP systems. 2. OracleCloud challenges AWS and Azure, providing IaaS, PaaS and SaaS services. 3. Oracle's ERP systems such as E-BusinessSuite and FusionApplications help enterprises optimize operations.

How to create oracle dynamic sql How to create oracle dynamic sql Apr 12, 2025 am 06:06 AM

SQL statements can be created and executed based on runtime input by using Oracle's dynamic SQL. The steps include: preparing an empty string variable to store dynamically generated SQL statements. Use the EXECUTE IMMEDIATE or PREPARE statement to compile and execute dynamic SQL statements. Use bind variable to pass user input or other dynamic values ​​to dynamic SQL. Use EXECUTE IMMEDIATE or EXECUTE to execute dynamic SQL statements.

See all articles