MySQL临时表是一种特殊的表,它仅在当前会话中有效,当会话结束时,MySQL临时表就被自动删除。MySQL临时表可以用于存储和处理大量数据,而不必担心对原始表的数据造成影响。
MySQL临时表可以使用CREATE TEMPORARY TABLE语句创建,其格式如下:
CREATE TEMPORARY TABLE table_name (column_name column_type);
其中table_name是要创建的临时表的名称,column_name是要创建的列名称,column_type是要创建的列的数据类型。例如:
CREATE TEMPORARY TABLE temp_table (id INT, name VARCHAR(20));
上面的语句将创建一个名为temp_table的MySQL临时表,其中包含一个id字段和一个name字段。id字段是INT类型,name字段是VARCHAR(20)类型。
在使用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会话使用 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 "W3CSCHOOL.SalesSummary" doesn"t exist
MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上。 使用 SELECT ... INTO OUTFILE 语句导...
1、从左开始截取字符串left(str, length)说明:left(被截取字段,截取长度)例:select left(content,200) as abst...
在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库。从命令提示窗口中选择MySQL数据库在...
Ubuntu是一个比较流行的Linux操作系统,不仅简单易用,而且和Windows相容性非常好。那么在ubuntu下如何安装mysql数据库呢?在Ubu...
当数据库的数据量很大时,一次性查询结果就会变得很慢,为了提高查询效率,我们可以使用MySQL的分页查询功能。本文就为大家带来M...
删除操作用于删除数据表中的数据,以下实例演示了删除数据表EMPLOYEE中AGE大于20的所有数据:#!/usr/bin/python# -*- coding: UT...
SQL 备忘单为您提供了最常用的 SQL 语句供您参考。 开始连接 MySQLmysql -u user -pmysql [db_name]mysql -h host -P port -u us...
MySQL中可以使用两种简单的方式来导入MySQL导出的数据。使用 LOAD DATA 导入数据 MySQL 中提供了LOAD DATA INFILE语句来插入数据...
第 4 章 实用函数Common Lisp 操作符分为三类:可自定义的函数和宏,以及不能自定义的特殊形式(specialform)。本章将讲述用函...