SQL語句(複製一張表和更新表)
阿新 • • 發佈:2019-02-14
sql語句複製一張表
1、複製表結構及資料到新表
CREATE TABLE 新表 SELECT * FROM 舊錶
這種方法會將oldtable中所有的內容都拷貝過來,當然我們可以用delete from newtable;來刪除。
不過這種方法的一個最不好的地方就是新表中沒有了舊錶的primary key、Extra(auto_increment)等屬性。需要自己用”alter”新增,而且容易搞錯。
2、只複製表結構到新表
CREATE TABLE 新表 SELECT * FROM 舊錶 WHERE 1=2 或CREATE 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