>>分享流行的Java框架以及开源软件,对孙卫琴的《精通Spring:Java Web开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20917 个阅读者 刷新本主题
 * 贴子主题:  MySQL 临时表 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2019-08-10 22:45:47     消息  查看  搜索  好友  邮件  复制  引用

  

创建MySQL 临时表

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

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

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

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

范例

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

     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命令显示数据表列表时,你将无法看到 SalesSummary表。

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

删除MySQL 临时表

         默认情况下,当你断开与数据库的连接后,临时表就会自动被销毁。当然你也可以在当前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 'JAVATHINKER.SalesSummary' doesn't exist

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-29 10:42:41 重新编辑]
  Java面向对象编程-->Swing组件(上)
  JavaWeb开发-->JavaWeb应用入门(Ⅱ)
  JSP与Hibernate开发-->Spring、JPA与Hibernate的整合
  Java网络编程-->Java网络编程入门
  精通Spring-->Vue Router路由管理器
  Vue3开发-->绑定表单
  NIO的几道常见面试题
  使用IntelliJ IDEA开发Maven HelloWorld
  面试官:Mybatis里的设计模式有哪些?脱口而出8种
  @Service注解的使用
  Spring MVC中自定义国家化LocaleResolver
  Spring数据验证 中@NotNull, @NotEmpty和@NotBlank之间的区别
  Spring Cloud构建微服务架构的分布式配置中心
  从零搭建一个基于 ELK 的日志、指标收集与监控系统
  SpringCloud Gateway-整体流程
  理解 RESTful 风格的 API
  理解 RESTful 风格的 API
  中央厨房订单管理系统,引入ActiveMQ消息队列,平滑处理高峰...
  spring源码阅读环境(几分钟下载包)
  Spring MVC:切面的应用
  mybatis-plus 注解实现多表关联查询的最佳实践
  更多...
 IPIP: 已设置保密
树形列表:   
[url=http://www.zhent.com]... nihaota 2022-10-28 21:20:18
1页 1条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。