mysql 进阶 -- 将查询结果集写入新数据表 & 备份当前表数据到新数据表(快照)

本文介绍了如何使用SQL语句创建数据快照及统计查询。通过CREATETABLE与SELECT结合,可快速复制表中特定数据到新表;利用INSERT与SELECT组合,则能便捷地将查询结果插入新表,实现数据统计。

 

  • 备份当前表数据到新数据表(快照)

如果想要对一个表进行快照,即复制一份当前表的数据到一个新表,可以结合CREATE TABLESELECT

-- 对class_id=1的记录进行快照,并存储为新表students_of_class1:
CREATE TABLE students_of_class1 SELECT * FROM students WHERE class_id=1;

 

  • 将查询结果集写入新数据表

结合INSERTSELECT,将SELECT语句的结果集直接插入到指定表中。

eg: 创建一个统计成绩的表statistics,记录各班的平均成绩:

CREATE TABLE statistics (
    id BIGINT NOT NULL AUTO_INCREMENT,
    class_id BIGINT NOT NULL,
    average DOUBLE NOT NULL,
    PRIMARY KEY (id)
);

然后,我们就可以用一条语句写入各班的平均成绩:

INSERT INTO statistics (class_id, average) SELECT class_id, AVG(score) FROM students GROUP BY class_id;

 

 

Source Artical: 

https://www.liaoxuefeng.com/wiki/1177760294764384/1246617682185952

 

----- END -----

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值