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 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