SQL SELECT TOP
SQL JOIN 

SQL SELECT INTO

当使用 SQL 中的 SELECT INTO 语句时,它用于从一个现有表中选择数据,并创建一个新表来存储这些数据。基本的语法如下:

SELECT column1, column2, ...
INTO new_table_name
FROM source_table
WHERE conditions;
  • column1, column2, ...:要从 source_table 中选择的列。

  • new_table_name:要创建的新表的名称。

  • source_table:数据来源的表。

  • conditions:可选的筛选条件。


使用示例:


Mysql:

mysql不支持使用 SELECT INTO 将查询结果直接插入到新表中,但是支持将查询结果存储到变量或者文件中,如:

SELECT id, name INTO @x, @y 
FROM employees LIMIT 1;


SELECT id, name INTO OUTFILE  '/tmp/1.txt'
FROM employees
LIMIT 1;

官方说明 :https://dev.mysql.com/doc/refman/5.7/en/select-into.html


如果一定要将查询结果插入到一个表中,如果通过下列的语句实现:

CREATE TABLE teachers
(
    SELECT id,name,age 
   FROM employees
);


PostgreSQL :

SELECT column1, column2, ...
INTO new_table_name
FROM source_table
WHERE conditions;


行为和注意事项:

  • 列名和数据类型: 新表 (new_table_name) 的列名和数据类型根据 SELECT 查询结果自动确定。

  • 约束条件: 如果在 SELECT 查询中指定了主键、外键等约束条件,新表可能会继承这些约束。

  • 限制: 不同的数据库系统对 SELECT INTO 的支持和限制可能有所不同,尤其是对于复杂查询、临时表或嵌套查询的处理。


后续处理:

  • 创建新表后,可以使用后续的 SQL 命令进一步修改它,比如添加索引、约束等。


希望这能帮助到你理解 SELECT INTO 在 SQL 中的用法和作用。