SQL SELECT INTO语句
通过SQL,您可以从一个表复制信息到另一个表。
SELECT INTO语句从一个表复制数据,然后把数据插入到另一个新表中。
SQL SELECT INTO语句
注意:
MYSQL数据库不支持SELECT…INTO语句,但支持INSERT INTO…SELECT。
可以使用以下语句来拷贝表结构及数据:
CREATE TABLE 新表
AS
SELECT * FROM 旧表
SQL SELECT INTO语法
1.复制所有的列插入到新表中:
SELECT *
INTO newtable [IN externaldb] --externaldb外部数据库
FROM table1
2.复制希望的列插入到新表中:
SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1
提示:新表将会使用SELECT语句中定义的列名称和类型进行创建,可以使用AS子句来应用新名称。
SQL SELECT INTO 实例
1.创建Websites备份文件:查询出Websites表,复制所有的列至新表WebsitesBackup1中
SELECT *
INTO WebsitesBackup1
FROM Websites
SELECT * FROM WebsitesBackup1
personID name url alexa country
1 Google https://www.google.cm/ 1 USA
2 淘宝 https://www.taobao/ 13 CN
3 菜鸟教程 https://www.runoob/ 4689 CN
4 微博 https://www.weibo/ 20 CN
5 Facebook https://www.facebook/ 3 CN
7 stackoverflow https://www.stackoverflow/ 0 USA
2.只复制一些列到新表中:只查询Websites表中name,url列,并复制到新表WebsitesBackup2中
SELECT name,url
INTO WebsitesBackup2 ---必须是新表,如果是已存在的表,执行语句会提示:数据库已存在该对象
FROM Websites
SELECT * FROM WebsitesBackup2
name url
Google https://www.google.cm/
淘宝 https://www.taobao/
菜鸟教程 https://www.runoob/
微博 https://www.weibo/
Facebook https://www.facebook/
stackoverflow https://www.stackoverflow/
3.只复制中国的网站插入到新表中:
SELECT *
INTO WebsitesBackup4
FROM Websites
WHERE country = 'CN'
小提示:因为题目是需要复制中国的网站,所以必须使用country='CN'该过滤条件;
如果不添加,会把Websites表所有列制到新表中;
如果不添加,并指定查询添加列名为country,会把Websites表中country列复制到新表中,且查询的是所有网站,没有精确定位到中国网站。
SELECT * FROM WebsitesBackup4
personID name url alexa country
2 淘宝 https://www.taobao/ 13 CN
3 菜鸟教程 https://www.runoob/ 4689 CN
4 微博 https://www.weibo/ 20 CN
5 Facebook https://www.facebook/ 3 CN
4.复制多个表中得数据插入到新表中:
SELECT Websites.name,access_log.count,access_log.date
INTO WebsitesBackup5
FROM Websites
LEFT JOIN access_log
ON Websites.personID = access_log.site_id
SELECT * FROM WebsitesBackup5
name count date
Google 45 2016-05-10 00:00:00.000
Google 230 2016-05-14 00:00:00.000
淘宝 10 2016-05-14 00:00:00.000
菜鸟教程 100 2016-05-13 00:00:00.000
菜鸟教程 220 2016-05-15 00:00:00.000
菜鸟教程 201 2016-05-17 00:00:00.000
微博 13 2016-05-15 00:00:00.000
Facebook 205 2016-05-14 00:00:00.000
Facebook 545 2016-05-16 00:00:00.000
stackoverflow NULL NULL
提示:SELECT INTO 语句可用于通过另一种模式创建一个新的空表。只需要添加促使查询没有数据返回的WHERE子句即可:
SELECT *
INTO newtable
FROM table1
WHERE 1=0
实例:
SELECT *
INTO WebsitesBackup6
FROM Websites
WHERE personID= '0' ---PersonID的值没有为0的
SELECT * FROM WebsitesBackup6
只能查询表列名,没有任何数据
更多推荐
SQL SELECT INTO语句
发布评论