顾美玲勾引管家|日韩黄色成人|国产精品theporn动漫|欧美日日日|国产精品探花在线

專業只做數據庫實訓和認證的品牌機構

微信公眾號新浪微博
免費咨詢電話:400-0909-964
當前位置: 網站首頁 > MySQL培訓 > MySQL課程 > MySQL基礎知識:利用 SELECT 的結果創建表

MySQL基礎知識:利用 SELECT 的結果創建表

文章來源: 更新時間:2016/7/18 13:27:19

在線老師點擊咨詢:

最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!

我要咨詢

MySQL基礎知識:利用 SELECT 的結果創建表,關系數據庫的一個重要概念是,任何數據都表示為行和列組成的表,而每條 SELECT 語句的結果也都是一個行和列組成的表。在許多情況下,來自 SELECT 的“表”僅是一個隨著您的工作在顯示屏上滾動的行和列的圖像。在 MySQL 3.23 以前,如果想將 SELECT 的結果保存在一個表中以便以后的查詢使用,必須進行特殊的安排:

1) 運行 DESCRIBE 或 SHOW COLUMNS 查詢以確定想從中獲取信息的表中的列類型。

2) 創建一個表,明確地指定剛才查看到的列的名稱和類型。

3) 在創建了該表后,發布一條 INSERT ... SELECT 查詢,檢索出結果并將它們插入所創建的表中。

在 MySQL 3.23 中,全都作了改動。CREATE TABLE ... SELECT 語句消除了這些浪費時間的東西,使得能利用 SELECT 查詢的結果直接得出一個新表。只需一步就可以完成任務,不必知道或指定所檢索的列的數據類型。這使得很容易創建一個完全用所喜歡的數據填充的表,并且為進一步查詢作了準備。

如果你在CREATE語句后指定一個SELECT,MySQL將為在SELECT中所有的單元創鍵新字段。例如:

mysql> CREATE TABLE test

-> (a int not null auto_increment,primary key (a), key(b))

-> SELECT b,c from test2;

這將創建一個有3個列(a,b,c)的表,其中b,c列的數據來自表test2。注意如果在拷貝數據進表時發生任何錯誤,表將自動被刪除。

可以通過選擇一個表的全部內容(無 WHERE 子句)來拷貝一個表,或利用一個總是失敗的 WHERE 子句來創建一個空表,如:

mysql> CREATE TABLE test SELECT * from test2;

mysql> CREATE TABLE test SELECT * from test2 where 0;

如果希望利用 LOAD DATA 將一個數據文件裝入原來的文件中,而不敢肯定是否具有指定的正確數據格式時,創建空拷貝很有用。您并不希望在第一次未得到正確的選項時以原來表中畸形的記錄而告終。利用原表的空拷貝允許對特定的列和行分隔符用 LOAD DATA 的選項進行試驗,直到對輸入數據的解釋滿意時為止。在滿意之后,就可以將數據裝入原表了。

可結合使用 CREATE TEMPORARY TABLE 與 SELECT 來創建一個臨時表作為它自身的拷貝,如:

這允許修改 my_tbl 的內容而不影響原來的內容。在希望試驗對某些修改表內容的查詢,而又不想更改原表內容時,這樣做很有用。為了使用利用原表名的預先編寫的腳本,不需要為引用不同的表而編輯這些腳本;只需在腳本的起始處增加 CREATE TEMPORARY TABLE 語句即可。相應的腳本將創建一個臨時拷貝,并對此拷貝進行操作,當腳本結束時服務器會自動刪除這個拷貝。

要創建一個作為自身的空拷貝的表,可以與 CREATE TEMPORARY ... SELECT 一起使用 WHERE 0 子句,例如:

但創建空表時有幾點要注意。在創建一個通過選擇數據填充的表時,其列名來自所選擇的列名。如果某個列作為表達式的結果計算,則該列的“名稱”為表達式的文本。表達式不是合法的列名,可在 mysql 中運行下列查詢了解這一點:

為了正常工作,可為該列提供一個合法的別稱:

如果選擇了來自不同表的具有相同名稱的列,將會出現一定的困難。假定表 t1 和 t2 兩者都具有列 c,而您希望創建一個來自兩個表中行的所有組合的表。那么可以提供別名指定新表中惟一性的列名,如:

通過選擇數據進行填充來創建一個表并會自動拷貝原表的索引。

本文地址:http://www.mudan321.com/mysql/kecheng/12506924643.html 轉載請注明!


PostgreSQL入門到精通 100+ 個學習資料

Oracle培訓機構

金牌講師<>

冉乃綱-老師CUUG金牌講師
冉老師 CUUG金牌講師 Oracle及RedHat高級講師、Unix/Linux 資深專家...[詳細了解老師]

免費咨詢上課流程 客服在線中

陳衛星-老師CUUG金牌講師
陳老師 CUUG金牌講師 精通Oracle管理、備份恢復、性能優化 11年Ora...[詳細了解老師]

免費咨詢上課流程 客服在線中

選學校如何選擇適合自己的學校

CUUG -CHINA UNIX USER GROUP,是國際UNIX組織UNIFORUM的中國代表,是國內悠久的專業UNIX培訓機構,被譽為中國UNIX 的搖籃。多年來,以提高教學質量為本,強調素質教育,積極引進、消化國外的新技術,有效的結合中國....[詳情]

一站式服務(從入學到就業一幫到底)

入學

學習

就業

實操

食宿
地址:北京市海淀區田村山南路35號院17號樓
課程咨詢: 400-0909-964
企業服務:137 1818 8639(陳經理)
部分信息來源于網絡,如有錯誤請聯系指正!
版權所有@北京神腦資訊技術有限公司 (CUUG,中國UNIX用戶協會) Copyright 2016 ALL Rights Reserved 京ICP備11008061號-1