1. 程式人生 > >SQL語句(複製一張表和更新表)

SQL語句(複製一張表和更新表)

sql語句複製一張表

1、複製表結構及資料到新表

CREATE TABLE 新表 SELECT * FROM 舊錶

這種方法會將oldtable中所有的內容都拷貝過來,當然我們可以用delete from newtable;來刪除。
不過這種方法的一個最不好的地方就是新表中沒有了舊錶的primary key、Extra(auto_increment)等屬性。需要自己用”alter”新增,而且容易搞錯。

2、只複製表結構到新表

CREATE TABLE 新表 SELECT * FROM 舊錶 WHERE 1=2CREATE TABLE 新表 LIKE 舊錶 

3、

複製舊錶的資料到新表(假設兩個表結構一樣)

INSERT INTO 新表 SELECT * FROM 舊錶 

4、複製舊錶的資料到新表(假設兩個表結構不一樣)

INSERT INTO 新表(欄位1,欄位2,.......) SELECT 欄位1,欄位2,...... FROM 舊錶 

5、這樣會將舊錶的建立命令列出。我們只需要將該命令拷貝出來,更改table的名字,就可以建立一個完全一樣的表

show create table 舊錶; 

update更新表

1、set一個欄位(把表student中的sname改為’張三’,條件是學號是13的,不加where條件的會把sno欄位全改了)

update stutest t set t.Sname ='張三' where sno='13'

2、set一個欄位(把表student中的sname改為’張三’ sage改為’22’,條件是學號是13的,不加where條件的會把sno欄位全改了)

update stutest t set t.Sname ='張三',t.Sage ='22' where sno='13'

3、set null值(把表student中的sname改為null sage改為null,前提是欄位要允許為空。條件是學號是13的,不加where條件的會把sno欄位全改了)

update stutest t set
t.ssss =null,t.aaaa =null where sno='13'

4、將stu1表中的一些資料更新到stu2表中.(stu1表和stu2表的欄位名稱可以不同)

update stu1 t,stu2 tt set tt.Sno = t.Sno,tt.Sname = t.Sname,tt.Ssex = t.Ssex,tt.Sage = t.sage,tt.Sdept = t.sdept where t.Sno=tt.sno