作者 主題: [教學]SQL 基礎指令(二)  (閱讀 8488 次)

0 會員 與 1 訪客 正在閱讀本文。

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4050
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
[教學]SQL 基礎指令(二)
« 於: 2009-08-18 13:34 »
以資料表為範圍的操作,SQL 關鍵字皆為大寫

1. 只複製資料表結構 aaa 到另一資料表 bbb (bbb 未建立)

for SQL Server
代碼: [選擇]
SELECT *
    INTO bbb
    FROM aaa  
    WHERE 1=0

for MySQL
代碼: [選擇]
CREATE TABLE bbb
    SELECT *
    FROM aaa

2. 複製資料表 aaa 到資料表 bbb (bbb 未建立),限定日期為 2009 年之前
代碼: [選擇]
SELECT *
    INTO bbb
    FROM aaa  
    WHERE s_date<'20090101'

3. 資料表 bbb 已存在,需將資料表 aaa 日期在 2009 年之前複製過去
代碼: [選擇]
INSERT INTO bbb  
    SELECT *
    FROM aaa
    WHERE s_date<'20090101'

以上 SQL 指令可應用在ERP 資料庫切割、資料表備份、刪除單筆資料備份等

==================

感謝 micmic3 提供 MySQL 複製資料表結構 SQL 語法
« 上次編輯: 2009-08-18 15:09 由 hoyo »
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1692
    • 檢視個人資料
回覆: [教學]SQL 基礎指令(二)
« 回覆 #1 於: 2009-08-18 14:55 »
以資料表為範圍的操作,SQL 關鍵字皆為大寫

1. 只複製資料表結構 aaa 到另一資料表 bbb (bbb 未建立)
代碼: [選擇]
SELECT *
    INTO bbb
    FROM aaa  
    WHERE 1=0

2. 複製資料表 aaa 到資料表 bbb (bbb 未建立),限定日期為 2009 年之前
代碼: [選擇]
SELECT *
    INTO bbb
    FROM aaa  
    WHERE s_date<'20090101'

3. 資料表 bbb 已存在,需將資料表 aaa 日期在 2009 年之前複製過去
代碼: [選擇]
INSERT INTO bbb  
    SELECT *
    FROM aaa
    WHERE s_date<'20090101'

以上 SQL 指令可應用在ERP 資料庫切割、資料表備份、刪除單筆資料備份等

測試環境 SQL Server,MySQL 待測

MySQL

代碼: [選擇]
CREATE TABLE bbb SELECT * FROM aaa  ;

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4050
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
回覆: [教學]SQL 基礎指令(二)
« 回覆 #2 於: 2009-08-18 15:04 »
MySQL

代碼: [選擇]
CREATE TABLE bbb SELECT * FROM aaa  ;

請受小弟一拜 m(_ _)m

本來還想要來測試用 mysqldump 的方法...

因為 MySQL 都在 phpMyAdmin 的環境,所以打指令的機會也不多,
反而是 SQL Server 上的 ERP 因為報表查詢,常常需要自己打 SQL command
« 上次編輯: 2009-08-18 15:06 由 hoyo »
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1692
    • 檢視個人資料
回覆: [教學]SQL 基礎指令(二)
« 回覆 #3 於: 2009-08-18 15:17 »
MySQL
如果 bbb 己經存在
INSERT INTO bbb SELECT * FROM aaa

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1692
    • 檢視個人資料
回覆: [教學]SQL 基礎指令(二)
« 回覆 #4 於: 2009-08-18 15:19 »
啊....忘了說...
MySQL
CREATE TABLE bbb SELECT * FROM aaa  ;
Key 和 INDEX 不會跟著加過去