如題,假設目前要將個人資料(Person)複製到客戶資料表(Customer)應該要怎麼做呢?
以下使用這個網站來進行SQL的測試,這個網站支援很多種類型的資料庫
http://sqlfiddle.com/
Create Table
DDL Create Table
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| CREATE TABLE Person ( National_Id varchar(12), Name varchar(50), Address varchar(255), Phone varchar(20) );
CREATE TABLE Customer ( Cust_Id varchar(12), Lvl varchar(2), Name varchar(50), Address varchar(255), Phone varchar(20) );
|
建測試資料
1 2
| INSERT INTO Person (National_Id, Name, Address, Phone) VALUES ('A123456789', 'YOYO', 'OO路300號', '12345678');
|
如圖,DDL Script跟insert SQL寫在左邊
如此一來就會建立兩張table,並在Person table中加入一筆資料
右邊是查詢語句,下面是結果
1 2
| select * from Person; select * from Customer;
|
複製資料
將A table的資料複製到B table,可以將insert跟select組在一起,如下:
1 2
| INSERT INTO Customer (Cust_Id, Lvl ,Name, Address, Phone) SELECT National_Id,'L1',Name, Address, Phone FROM Person;
|
查看結果,資料已成功複製過去
不過這個寫法僅限於B table已存在的狀態下
如果是B table不存在的話,可以這樣做
1 2
| create table Customer as SELECT National_Id,Name, Address, Phone FROM Person;
|
執行結果如圖
參考資料
- SQL Fiddle 使用教學https://www.jinnsblog.com/2013/09/sql-fiddle-test-sql-syntax-online.html
- Create table DDL https://www.fooish.com/sql/create-table.html
- 兩種複製資料的做法https://stackoverflow.com/questions/2250196/select-into-using-oracle