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
  • 13
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 为了将中的数据复制并插入到同一张中,你可以使用以下 SQL 语句: ``` INSERT INTO 名 (列1, 列2, …) SELECT 列1, 列2, … FROM 名 WHERE 条件; ``` 其中,`名`是你要插入数据的名称,`列1, 列2, …`是你要插入的列的名称,`条件`是可选的,用于指定插入哪些行。 例如,如果你想将 `users` 中所有用户的信息复制并插入到同一张中,你可以使用以下语句: ``` INSERT INTO users (username, email, password) SELECT username, email, password FROM users; ``` 这样,你就可以将 `users` 中的所有数据复制并插入到同一张中。 ### 回答2: 要将一张数据复制并插入到同一张中,可以使用如下的SQL语句: INSERT INTO 名 (字段1, 字段2, 字段3, ...) SELECT 字段1, 字段2, 字段3, ... FROM 名; 其中,"名"代要操作的的名称,"字段1, 字段2, 字段3, ..."代复制的字段的名称。 例如,假设要复制一个名为"学生成绩"的的所有数据并插入到同一张中,可以使用以下SQL语句: INSERT INTO 学生成绩 (学号, 姓名, 成绩) SELECT 学号, 姓名, 成绩 FROM 学生成绩; 这样就会将原中的所有数据复制并插入到同一张中,保持原有的字段结构数据内容不变。 ### 回答3: 要复制一张数据并插入同一张中,可以使用以下 SQL 语句: ``` INSERT INTO 名 (列1, 列2, 列3, ...) SELECT 列1, 列2, 列3, ... FROM 名 ``` 例如,假设有一张名为 `students` 的,有三个列分别为 `id`、`name` 和 `age`。现在要复制这张数据并插入同一张中。 可以执行以下 SQL 语句: ``` INSERT INTO students (id, name, age) SELECT id, name, age FROM students ``` 该语句的含义是将 `students` 中的 `id`、`name` 和 `age` 列的数据复制并插入同一张 `students` 中。 执行这条 SQL 语句后,原中的数据将被复制并追加到末尾,变成原的两倍。 这是一种常用的方式来快速复制中的数据,特别适用于需要批量生成数据或者创建备份的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值