Oracle SELECT INTO 和 INSERT INTO SELECT 兩種表復制語句詳解

在Oracle中select into from不可以使用,用create table select代替該功能!!!在Sql Server中可以正常使用。1.INSERT INTO SELECT語句語句形式為:Insert into Table2(field1,field2,...) select value1,value2,... from Table1注意:(1)要求目標表Table2必須存在,并且字段field,field2...也必須存在(2)注意Table2的主鍵約束,如果Table2有主鍵而且不為空,則 field1, field2...中必須包括主鍵(3)注意語法,不要加values,和插入一條數據的sql混了,不要寫成:Insert into Table2(field1,field2,...) values (select value1,value2,... from Table1)由于目標表Table2已經存在,所以我們除了插入源表Table1的字段外,還可以插入常量。示例如下:--1.創建測試表  create TABLE Table1  (  a varchar(10),  b varchar(10),  c varchar(10))create TABLE Table2  (  a varchar(10),  c varchar(10),  d int)--2.創建測試數據  Insert into Table1 values('','asds','90')  Insert into Table1 values('','asds','100')  Insert into Table1 values('','asds','80')  Insert into Table1 values('','asds',null)  select * from Table2--3.INSERT INTO SELECT語句復制表數據  Insert into Table2(a, c, d) select a,c,5 from Table1--4.顯示更新后的結果  select * from Table2  --5.刪除測試表  drop TABLE Table1  drop TABLE Table2例:- 使用insert into select 拷貝數據(注意紅色部分,可以自動生成id序列值)
insert into test2(id,testname,createtime,falg)select seq_test.nextval,t1.testname,t1.createtime,t1.falg from test1 t1;2.SELECT INTO FROM語句語句形式為:SELECT vale1, value2 into Table2 from Table1要求目標表Table2不存在,因為在插入時會自動創建表Table2,并將Table1中指定字段數據復制到Table2中。示例如下:view plaincopy to clipboardprint?--1.創建測試表  create TABLE Table1  (  a varchar(10),  b varchar(10),  c varchar(10))--2.創建測試數據  Insert into Table1 values('','asds','90')  Insert into Table1 values('','asds','100')  Insert into Table1 values('','asds','80')  Insert into Table1 values('','asds',null)  --3.SELECT INTO FROM語句創建表Table2并復制數據  select a,c INTO Table2 from Table1  --4.顯示更新后的結果  select * from Table2  --5.刪除測試表  drop TABLE Table1  drop TABLE Table2 注意:如果在sql/plus或者PL/SQL執行這條語句,會報"ORA-00905:缺失關鍵字"錯誤,原因是PL/Sql與T-SQL的區別。
T-SQL中該句正常,但PL/SQL中解釋是:
select..into is part of PL/SQL language which means you have to use it inside a PL/SQL block. You can not use it in a SQL statement outside of PL/SQL.
即不能單獨作為一條sql語句執行,一般在PL/SQL程序塊(block)中使用。如果想在PL/SQL中實現該功能,可使用Create table newTable as select * from ...:
如: create table NewTable as select * from ATable;NewTable 除了沒有鍵,其他的和ATable一樣---------SQL SELECT INTO語法介紹
SQL SELECT INTO 語句可用于創建表的備份復件。
SELECT INTO 語句
SELECT INTO 語句從一個表中選取數據,然后把數據插入另一個表中。
SELECT INTO 語句常用于創建表的備份復件或者用于對記錄進行存檔。
SQL SELECT INTO 語法
您可以把所有的列插入新表:
SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename
或者只把希望的列插入新表:
SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename
SQL SELECT INTO 實例 - 制作備份復件
下面的例子會制作 "Persons" 表的備份復件:
SELECT * INTO Persons_backup FROM Persons
IN 子句可用于向另一個數據庫中拷貝表:
SELECT * INTO Persons IN 'Backup.mdb' FROM Persons
如果我們希望拷貝某些域,可以在 SELECT 語句后列出這些域:
SELECT LastName,FirstName
INTO Persons_backup
FROM Persons
SQL SELECT INTO 實例 - 帶有 WHERE 子句
我們也可以添加 WHERE 子句。
下面的例子通過從 "Persons" 表中提取居住在 "Beijing" 的人的信息,創建了一個帶有兩個列的名為 "Persons_backup" 的表:
SELECT LastName,Firstname INTO Persons_backup FROM Persons WHERE City='Beijing'
SQL SELECT INTO 實例 - 被連接的表
從一個以上的表中選取數據也是可以做到的。
下面的例子會創建一個名為 "Persons_Order_Backup" 的新表,其中包含了從 Persons 和 Orders 兩個表中取得的信息:
SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P

出處:https://blog.csdn.net/qq_35893120/article/details/78560973

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450992.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450992.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450992.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

帆軟地址欄傳參,實例

自動查詢: http://help.finereport.com/finereport9.0/doc-view-409.html參數的種類與區別: http://help.finereport.com/doc-view-156基本參數傳遞(視頻): http://bbs.fanruan.com/lesson-14.html超級鏈接-傳遞多個值…

RMI 說明

見:https://baike.baidu.com/item/RMI/1786244?fraladdin RMI遠程方法調用 相關概述 RMI是Java的一組擁護開發分布式應用程序的API。RMI使用Java語言接口定義了遠程對象,它集合了Java序列化和Java遠程方法協議(Java Remote Method Protocol)。簡單地說&…

李善友:為什么外企人不敢創業

摘要:20年前,人們最驕傲的是進外企,創業意味著找不到工作。而現在相反,你要說自己在外企工作,會被人笑話,令人激動的事兒是去創業。 李善友:中歐創業中心主任創業學兼任教授、酷6網創始人 孫陶然…

JVM對象占用內存計算

大家都知道,jvm中對象實例存儲在堆中,對象的引用存儲在棧中,而對象的元數據(類型數據)存儲在方法區。在我們進行內存優化的過程中經常需要了解每個對象占用的內存大小。接下來我將介紹對象占用內存大小的計算方式。 Java的對象模型 java是面…

繪圖基礎語法與常用參數

1 # -*- coding: utf-8 -*-2 3 ###############################################################################4 ####################### 正文代碼 #######################5 #################################################################…

MyEclipse 皮膚、主題、背景色

第一步:打開myeclipse--->help--->install from site--->Add將路徑粘貼在這里。等待安裝顏色主題。https://raw.github.com/guari/eclipse-ui-theme/master/com.github.eclipseuitheme.themes.updatesite 第二步:http://eclipsecolorthemes.org…

RPC 遠程過程調用協議

RPC(Remote Procedure Call Protocol)——遠程過程調用協議,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。 RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通信程序之間攜…

周鴻祎:創業前的積累很重要

摘要:雖然公司上市,也投資了很多公司,日前,在中國人民大學的演講中,周鴻祎卻稱自己“從來不是一個成功人士,曾經是一個最大的失敗者”。 360特供機還沒露面,已經被周鴻祎通過微博炒得火熱&#…

BZOJ 4710 [Jsoi2011]分特產 解題報告

4710 [Jsoi2011]分特產 題意 給定\(n\)個集合,每個集合有相同的\(a_i\)個元素,不同的集合的元素不同。將所有的元素分給\(m\)個不同位置,要求每個位置至少有一個元素,求分配方案數。 先考慮兩個簡單的問題 給定\(m\)個相同元素和\…

java接口調試思想

對于接口調試的理解:最近多次參與接口調試工作,一般情況都是獲取對方接口文檔,文檔中有加密驗證方式,根據加密驗證方式開發,調用對應的接口。可以不可以簡化這個流程那,至少減少一方的工作量。1、減少調用方…

SOA (面向服務的架構)

見:https://baike.baidu.com/item/SOA/2140650?fraladdin UDDI 解說參見:UDDI是什么 SOAP解說參見: SOAP:簡單對象訪問協議 面向服務的架構(SOA)是一個組件模型,它將應用程序的不同功能單元(稱…

mysql中count(*)和count(1)和count(column)區別

在日常的mysql使用中,我們經常會看到SELECT COUNT(*)、SELECT COUNT(1)等查詢語句,他們到底有什么區別呢?今天我就來總結下。 我們先從函數的含義說起: count() 統計滿足查詢條件的結果集的總行數(包含null),其中count…

第一天筆記

編程語言分類: 1. 機器語言:用二進制指令編程,本質是直接操作硬件。 優點:執行效率高 缺點:開發效率低,學習難度高 2.匯編語言:用英文標簽代替二進制指令,本質也是直接操作硬件。…

索尼MOTO等壓榨國內代工廠:員工宿舍像監獄

摘要:據調查報告披露,偉易達血汗工廠的壓榨情況比起富士康、蘋果等有過之而無不及,包括強迫工人超負荷工作、暴露于有害化學物質、住宿環境差、虐待員工、超低的工資等。如前面保羅克魯格曼發表了《表揚廉價勞動》一文,N.D.克里斯…

[cerc2012][Gym100624B]20181013

轉載于:https://www.cnblogs.com/KonjakJuruo/p/9809637.html

Nginx服務器證書部署-亞洲誠信

Nginx服務器證書部署發布時間:2018-01-17 16:15:25依賴建議l SSL卸載驅動。建議:openssl版本1.1.0f。l nginx版本Stable version:最新穩定版,生產環境上建議使用的版本。獲取證書MPKI方式:1. 登錄https://mpki.tru…

java transient關鍵字

transient是用在序列化中的。當我們序列化的過程中,如果我們不想序列化某個字段,那么我們就可以使用這個關鍵字,jvm就會在序列化的時候自動忽略這個字段的數值。 transient主要有兩個用途: 1.保證數據的安全。在進行序列化時&…

UDDI

見:https://baike.baidu.com/item/UDDI/2901586?fraladdin UDDI 是一種目錄服務,企業可以使用它對 Web services 進行注冊和搜索。UDDI,英文為 "Universal Description, Discovery and Integration",可譯為“通用描述、…

騰訊手機管家籌劃“出海”

摘要:正籌劃推進旗下手機安全產品出海攬客。6月22日,騰訊無線安全產品部副總經理胡振東在上海表示,騰訊手機管家已推出了安卓國際版,下決心進軍國際市場。 騰訊(00700.HK)正籌劃推進旗下手機安全產品出海攬客。6月22日&#xff0c…

用反卷積(Deconvnet)可視化理解卷積神經網絡還有使用tensorboard

『cs231n』卷積神經網絡的可視化與進一步理解 深度學習小白——卷積神經網絡可視化(二) TensorBoard--TensorFlow可視化 原文地址:http://blog.csdn.net/hjimce/article/details/50544370 作者:hjimce 一、相關理論 本篇博文主要講…