开发者

SELECT...INTO的具体用法

开发者 https://www.devze.com 2023-04-22 09:09 出处:网络 作者: 有翅膀的猫
目录一、SELECT…INTO介绍二、SELECT INTO FROM语句三、select into from与insert into select区别:源自mysql 5.7 官方手册 手册地址
目录
  • 一、SELECT…INTO介绍
  • 二、SELECT INTO FROM语句
  • 三、select into from与insert into select区别:

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

一、SELECT…INTO介绍

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

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…INTjavascriptO DUMPFILE 将单行数据写入文件,没有任何格式。

在SELECT的语法展示中,INTjsO子句在整个语句的尾部。但是让INTO子句紧跟select_expr列表后。

一个INTO子句不应该在内嵌的SELECT中使用,因为这样一个SELECT必须将它的查询结果返回给外部上下文。

二、SELECT INTO FROM语句

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

语法:

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

SELECT *
INTO new_table_name [IN externaldatabase] 
FROM old_tablename

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

SELECT column_name(s)
INTO new_table_name [IN externaldatabase] 
FROM old_tablename

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

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

SELECT *
INTO Persons_backup
FROM Persons

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

SELECT *
INTO Persons IN 'Backup.mdb'
FROM Persons

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

SELECT LastName,FirstName
INTO Persons_backup
FROM Persons

SQL SELECT INTO 实例 - 带有 WHERE 子句

我们也可以添加 WHERE 子句。

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

SELECT LastName,Firstname
INTO Persons_backup
FROM Persons
WHERE City='Beijing'

SQL SELECT INTO 实例 - 被连接的表

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

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

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

要求www.devze.com目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量

2.SELECT INTO FROM语句

语句形式为:SELECT va开发者_数据库教程le1, value2 into Table2 from Table1

要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。

比较两种语句的差别,选择适合自己情况的语句。

此外,ispass是个经过处理的字段,其值类型可能无法自动创建,所以,建议使用第一种形式的语句,建立一个表,然后再插入查询。

到此这篇关于SELECT...INTO的具体用法的文章就介绍到这了,更多相关SELEChttp://www.devze.comT INTO内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号