数据库教程-SQL临时表

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

RDBMS有支持临时表。 临时表是一个伟大的功能,让您存储和使用如:选择,更新过程中间结果,并加入功能,可以与典型的SQL Server表使用。

临时表可能是非常有用的在某些情况下,以保持临时数据。这应该被称为临时表的最重要的事情是,当当前客户端会话终止,它们将被删除。

临时表可在MySQL版本3.23以上使用。如果你使用MySQL的旧版本比3.23,则不能使用临时表,但可以使用堆表。

如前所述,临时表将只要会话持续就活着。如果在一个PHP脚本运行的代码,当脚本执行完毕后,临时表将被自动销毁。如果您是通过MySQL客户端程序连接到MySQL数据库服务器, 那么临时表会一直存在,直到您关闭客户端或者手动销毁表。

例子:

下面是一个例子,显示临时表的用法:

 mysql> CREATE TEMPORARY TABLE SALESSUMMARY (     -> product_name VARCHAR(50) NOT NULL     -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00     -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00     -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0 ); Query OK, 0 rows affected (0.00 sec)  mysql> INSERT INTO SALESSUMMARY     -> (product_name, total_sales, avg_unit_price, total_units_sold)     -> VALUES     -> ('cucumber', 100.25, 90, 2);  mysql> SELECT * FROM SALESSUMMARY; +--------------+-------------+----------------+------------------+ | product_name | total_sales | avg_unit_price | total_units_sold | +--------------+-------------+----------------+------------------+ | cucumber     |      100.25 |          90.00 |                2 | +--------------+-------------+----------------+------------------+ 1 row in set (0.00 sec) 

当你发出一个SHOW TABLES命令,临时表不会被列在列表中。现在,如果注销MySQL的会话,然后发出SELECT命令,这时你会发现在数据库中没有可用的数据。 临时表也就不存在了。

删除临时表:

默认情况下,当你的数据库连接被终止,所有的临时表被MySQL删除。您如果还是想要删除的他们,那么可发出DROP TABLE命令。

下面是删除一个临时表的例子。

 mysql> CREATE TEMPORARY TABLE SALESSUMMARY (     -> product_name VARCHAR(50) NOT NULL     -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00     -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00     -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0 ); Query OK, 0 rows affected (0.00 sec)  mysql> INSERT INTO SALESSUMMARY     -> (product_name, total_sales, avg_unit_price, total_units_sold)     -> VALUES     -> ('cucumber', 100.25, 90, 2);  mysql> SELECT * FROM SALESSUMMARY; +--------------+-------------+----------------+------------------+ | product_name | total_sales | avg_unit_price | total_units_sold | +--------------+-------------+----------------+------------------+ | cucumber     |      100.25 |          90.00 |                2 | +--------------+-------------+----------------+------------------+ 1 row in set (0.00 sec) mysql> DROP TABLE SALESSUMMARY; mysql>  SELECT * FROM SALESSUMMARY; ERROR 1146: Table 'TUTORIALS.SALESSUMMARY' doesn't exist

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 sql教程 只为你绽放。

本文固定链接: http://kua0.com/2019/01/24/数据库教程-sql临时表/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注