SQL语句(复制一张表和更新表)

时间:2021-12-04 14:46:31

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 t.Sno = tt.Sno,t.Sname = tt.Sname,t.Ssex = tt.Ssex,t.Sage = tt.sage,t.Sdept = tt.sdept where t.Sno=tt.sno