lintcode-2047 · 将教师表中所有的数据复制到另一张表中

281 阅读1分钟

描述

请编写 SQL 语句,将教师表 teachers 中所有的数据复制到结构相同的空表 teachers_bkp 表中。
表定义:teachers(教师表)

列名类型注释
idint unsigned主键
namevarchar讲师姓名
emailvarchar讲师邮箱
ageint讲师年龄
countryvarchar讲师国籍

表定义:teachers_bkp

列名类型注释
idint unsigned主键
namevarchar讲师姓名
emailvarchar讲师邮箱
ageint讲师年龄
countryvarchar讲师国籍

**

如果 teachers 的数据为 null 的时候,返回的 teachers_bkp 也为 null

样例

样例一

表内容:teachers

idnameemailagecountry
1Eastern Hereticeastern.heretic@gmail.com20UK
2Northern Beggarnorthern.beggar@qq.com21CN
3Western Venomwestern.venom@163.com28USA
4Southern Emperorsouthern.emperor@qq.com21CN
5Linghu ChongNULL18CN

在运行你的 SQL 语句之后,我们会执行以下语句:

SELECT *
FROM `teachers_bkp`;

返回:

idnameemailagecountry
1Eastern Hereticeastern.heretic@gmail.com20UK
2Northern Beggarnorthern.beggar@qq.com21CN
3Western Venomwestern.venom@163.com28USA
4Southern Emperorsouthern.emperor@qq.com21CN
5Linghu ChongNULL18CN

样例二

表内容:teachers

idnameemailagecountry

在运行你的 SQL 语句之后,我们会执行以下语句:

SELECT *
FROM `teachers_bkp`;

返回:

idnameemailagecountry

这里教师表为空,所以返回的 teachers_bkp表也为空

题解

首先mysql往一张表插入数据是使用INSERT INTO:

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );
                       ```
INSERT INTO 表名 SET 列名=值,列名1 =1,列名2=2...

为了往表中插入数据,我们需要先获取数据。select ,因为是整张表,我们直接使用select * from 即可人,不需要列举字段。

insert into teachers_bkp
select * 
from teachers;