在SQL中,临时表是一种临时存储数据的结构,仅在会话(Session)期间存在,当会话结束时,临时表也会被销毁。临时表对于在处理大量数据或需要在查询中间存储中间结果时非常有用。

有两种类型的临时表:局部临时表和全局临时表。

1. 局部临时表(Local Temporary Table):

局部临时表是在会话级别存在的,只有创建它的会话可以访问。在大多数数据库管理系统中,局部临时表的命名以单个#字符或##字符开头。

示例(使用 T-SQL,适用于 Microsoft SQL Server):
-- 创建局部临时表
CREATE TABLE #TempTable (
    ID INT,
    Name VARCHAR(50)
);

-- 插入数据
INSERT INTO #TempTable (ID, Name) VALUES (1, 'John');
INSERT INTO #TempTable (ID, Name) VALUES (2, 'Jane');

-- 查询数据
SELECT * FROM #TempTable;

-- 会话结束后,局部临时表将自动销毁

2. 全局临时表(Global Temporary Table):

全局临时表是在所有会话之间共享的,但只在创建它的会话中存在。在大多数数据库管理系统中,全局临时表的命名以双##字符开头。

示例(使用 T-SQL,适用于 Microsoft SQL Server):
-- 创建全局临时表
CREATE TABLE ##GlobalTempTable (
    ID INT,
    Name VARCHAR(50)
);

-- 插入数据
INSERT INTO ##GlobalTempTable (ID, Name) VALUES (1, 'John');
INSERT INTO ##GlobalTempTable (ID, Name) VALUES (2, 'Jane');

-- 查询数据
SELECT * FROM ##GlobalTempTable;

-- 创建它的会话结束后,全局临时表将自动销毁

请注意,不同的数据库管理系统可能有不同的语法和规则来创建和使用临时表。上述示例基于 T-SQL(Microsoft SQL Server 的 SQL 方言)的语法。在使用时,请查阅相应数据库系统的文档以获取正确的语法和行为。


转载请注明出处:http://www.zyzy.cn/article/detail/3363/SQL