时间:2023-10-27来源:系统城装机大师作者:佚名
源自MySQL 5.7 官方手册 手册地址
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子句在整个语句的尾部。但是让INTO子句紧跟select_expr列表后。
一个INTO子句不应该在内嵌的SELECT中使用,因为这样一个SELECT必须将它的查询结果返回给外部上下文。
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_ |
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是个经过处理的字段,其值类型可能无法自动创建,所以,建议使用第一种形式的语句,建立一个表,然后再插入查询。
2023-10-27
windows11安装SQL server数据库报错等待数据库引擎恢复句柄失败解决办法2023-10-27
SQL Server截取字符串函数操作常见方法2023-10-27
浅谈SELECT *会导致查询效率低的原因收缩数据文件通过将数据页从文件末尾移动到更靠近文件开头的未占用的空间来恢复空间,在文件末尾创建足够的空间后,可取消对文件末尾的数据页的分配并将它们返回给文件系统,本文给大家介绍SQL Server 数据库中的收缩数据...
2023-10-27