• 学习MySQL 临时表


     MySQL 临时表

    MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。

    临时表在MySQL 3.23版本中添加,如果你的MySQL版本低于 3.23版本就无法使用MySQL的临时表。不过现在一般很少有再使用这么低版本的MySQL数据库服务了。

    MySQL临时表只在当前连接可见,如果你使用PHP脚本来创建MySQL临时表,那每当PHP脚本执行完成后,该临时表也会自动销毁。

    如果你使用了其他MySQL客户端程序连接MySQL数据库服务器来创建临时表,那么只有在关闭客户端程序时才会销毁临时表,当然你也可以手动销毁。

    实例

    以下展示了使用MySQL 临时表的简单实例,以下的SQL代码可以适用于PHP脚本的mysql_query()函数。

    1. mysql> CREATE TEMPORARY TABLE SalesSummary (
    2. -> product_name VARCHAR(50) NOT NULL
    3. -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
    4. -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
    5. -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
    6. );
    7. Query OK, 0 rows affected (0.00 sec)
    8. mysql> INSERT INTO SalesSummary
    9. -> (product_name, total_sales, avg_unit_price, total_units_sold)
    10. -> VALUES
    11. -> ('cucumber', 100.25, 90, 2);
    12. mysql> SELECT * FROM SalesSummary;
    13. +--------------+-------------+----------------+------------------+
    14. | product_name | total_sales | avg_unit_price | total_units_sold |
    15. +--------------+-------------+----------------+------------------+
    16. | cucumber | 100.25 | 90.00 | 2 |
    17. +--------------+-------------+----------------+------------------+
    18. 1 row in set (0.00 sec)

    当你使用 SHOW TABLES命令显示数据表列表时,你将无法看到 SalesSummary表。

    如果你退出当前MySQL会话,再使用 SELECT命令来读取原先创建的临时表数据,那你会发现数据库中没有该表的存在,因为在你退出时该临时表已经被销毁了。


    删除MySQL 临时表

    默认情况下,当你断开与数据库的连接后,临时表就会自动被销毁。当然你也可以在当前MySQL会话使用 DROP TABLE 命令来手动删除临时表。

    以下是手动删除临时表的实例:

    1. mysql> CREATE TEMPORARY TABLE SalesSummary (
    2. -> product_name VARCHAR(50) NOT NULL
    3. -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
    4. -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
    5. -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
    6. );
    7. Query OK, 0 rows affected (0.00 sec)
    8. mysql> INSERT INTO SalesSummary
    9. -> (product_name, total_sales, avg_unit_price, total_units_sold)
    10. -> VALUES
    11. -> ('cucumber', 100.25, 90, 2);
    12. mysql> SELECT * FROM SalesSummary;
    13. +--------------+-------------+----------------+------------------+
    14. | product_name | total_sales | avg_unit_price | total_units_sold |
    15. +--------------+-------------+----------------+------------------+
    16. | cucumber | 100.25 | 90.00 | 2 |
    17. +--------------+-------------+----------------+------------------+
    18. 1 row in set (0.00 sec)
    19. mysql> DROP TABLE SalesSummary;
    20. mysql> SELECT * FROM SalesSummary;
    21. ERROR 1146: Table 'XXXXXX.SalesSummary' doesn't exist

  • 相关阅读:
    使用python制作epub
    时序分析 47 -- 时序数据转为空间数据 (六) 马尔可夫转换场 python 实践(中)
    jeecgboot 可编辑表格弹窗富文本框
    《Python零基础入门》——关于PyCharm使用技巧及python基本概念
    【1day】用友GRP-U8 OA slbmbygr.jsp接口SQL注入漏洞学习
    AVProVideo☀️十、来给视频设置封面
    论软件的可靠性设计
    Vue2学习笔记(尚硅谷天禹老师)
    linux同步搭建多台服务器
    华为主题开发分享-在windows 11操作系统上识别不到P50等华为手机的解决方案
  • 原文地址:https://blog.csdn.net/m0_46413639/article/details/126262343