服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - SELECT...INTO的具体用法

SELECT...INTO的具体用法

2023-04-25 17:14有翅膀的猫 Mysql

本文主要介绍了SELECT...INTO的具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

源自MySQL 5.7 官方手册 手册地址

一、SELECT…INTO介绍

SELECT…INTO用来将查询结果存储在变量或者写入文件中。

?
1
2
3
4
5
6
7
8
SELECT
...
...
[INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name]]

通常有以下三种用法:

  • SELECT…INTO var_list,将查询结果存储在变量中;
  • SELECT…INTO OUTFILE 将查询结果写入一个文件,还可以指定列和行终止符以生成特定的输出格式。
  • SELECT…INTO DUMPFILE 将单行数据写入文件,没有任何格式。

在SELECT的语法展示中,INTO子句在整个语句的尾部。但是让INTO子句紧跟select_expr列表后。
一个INTO子句不应该在内嵌的SELECT中使用,因为这样一个SELECT必须将它的查询结果返回给外部上下文。

二、SELECT INTO FROM语句

SQL SELECT INTO 语句可用于创建表的备份复件。

语法:

您可以把所有的列插入新表:

?
1
2
3
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename

或者只把希望的列插入新表:

?
1
2
3
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename

SQL SELECT INTO 实例 - 制作备份复件

下面的例子会制作 “Persons” 表的备份复件:

?
1
2
3
SELECT *
INTO Persons_backup
FROM Persons

IN 子句可用于向另一个数据库中拷贝表:

?
1
2
3
SELECT *
INTO Persons IN 'Backup.mdb'
FROM Persons

如果我们希望拷贝某些域,可以在 SELECT 语句后列出这些域:

?
1
2
3
SELECT LastName,FirstName
INTO Persons_backup
FROM Persons

SQL SELECT INTO 实例 - 带有 WHERE 子句

我们也可以添加 WHERE 子句。

下面的例子通过从 “Persons” 表中提取居住在 “Beijing” 的人的信息,创建了一个带有两个列的名为 “Persons_backup” 的表:

?
1
2
3
4
SELECT LastName,Firstname
INTO Persons_backup
FROM Persons
WHERE City='Beijing'

SQL SELECT INTO 实例 - 被连接的表

从一个以上的表中选取数据也是可以做到的。

下面的例子会创建一个名为 “Persons_Order_Backup” 的新表,其中包含了从 Persons 和 Orders 两个表中取得的信息:

?
1
2
3
4
5
SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_

三、select into from与insert into select区别:

1.INSERT INTO SELECT语句
语句形式为:Insert into Table2(field1,field2,…) select value1,value2,… from Table1
要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量

2.SELECT INTO FROM语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。

比较两种语句的差别,选择适合自己情况的语句。
此外,ispass是个经过处理的字段,其值类型可能无法自动创建,所以,建议使用第一种形式的语句,建立一个表,然后再插入查询。

到此这篇关于SELECT...INTO的具体用法的文章就介绍到这了,更多相关SELECT INTO内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_48321825/article/details/126610431

延伸 · 阅读

精彩推荐
  • Mysql用MySQL创建数据库和数据库表代码

    用MySQL创建数据库和数据库表代码

    了解了一些最基本的操作命令后,我们再来学习如何创建一个数据库和数据库表。 ...

    mysql教程网4952019-10-24
  • MysqlMySQL的DATE_FORMAT函数的使用

    MySQL的DATE_FORMAT函数的使用

    这篇文章主要介绍了MySQL的DATE_FORMAT函数的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随...

    _陈哈哈3982021-04-13
  • Mysql关于Mysql隔离级别、锁与MVCC介绍

    关于Mysql隔离级别、锁与MVCC介绍

    本篇文章给大家详细介绍了一下关于Mysql隔离级别、锁与MVCC的相关知识,有这方面兴趣的朋友参考下。 ...

    jieqing4062020-08-24
  • MysqlMySQL流程函数常见用法实例分析

    MySQL流程函数常见用法实例分析

    这篇文章主要介绍了MySQL流程函数常见用法,结合实例形式分析了mysql流程函数功能、常见使用方法与操作注意事项,需要的朋友可以参考下...

    雪山飞猪9672020-12-26
  • MysqlMySQL8.0.19安装教程

    MySQL8.0.19安装教程

    这篇文章主要介绍了MySQL8.0.19安装教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    王23982021-01-03
  • Mysqlmysql触发器(Trigger)简明总结和使用实例

    mysql触发器(Trigger)简明总结和使用实例

    这篇文章主要介绍了mysql触发器(Trigger)简明总结和使用实例,需要的朋友可以参考下 ...

    MYSQL教程网3192020-03-24
  • MysqlMySQL无法启动的解决办法

    MySQL无法启动的解决办法

    这篇文章主要介绍了MySQL无法启动的解决办法的相关资料,希望通过本文大家能解决数据库不能启动的问题,需要的朋友可以参考下...

    codingstandards4062020-08-13
  • MysqlMySQL脏读幻读不可重复读及事务的隔离级别和MVCC、LBCC实现

    MySQL脏读幻读不可重复读及事务的隔离级别和MVCC、LBCC实现

    这篇文章主要介绍了MySQL脏读幻读不可重复读及事务的隔离级别和MVCC、LBCC实现,事务A 按照查询条件读取某个范围的记录,其他事务又在该范围内出入了满...

    向着百万年薪努力的小赵3512022-07-11