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 中的用法和作用。