MySQL基础教程
01、MySQLMariaDB 基础教程
02、MySQL 简介
03、MySQL MariaDB 安装
04、MySQL 管理
05、MySQL 日常管理
06、MySQL PHP 语法
07、MySQL 创建连接
08、MySQL 获取数据库列表
09、MySQL 创建数据库
10、MySQL 删除数据库
11、MySQL 选择数据库
12、MySQL 数据类型
13、MySQL 列出数据表
14、MySQL 创建数据表
15、MySQL 删除表
16、MySQL 插入数据
17、MySQL 获取插入数据的 ID
18、MySQL SELECT FROM 查询数据
19、MySQL WHERE 子句有条件的查询数据
20、MySQL UPDATE 更新数据
21、MySQL DELETE FROM 语句删除数据
22、MySQL 返回删改查受影响的行数
23、MySQL LIKE 子句模糊查询数据
24、MySQL UNION 操作符查询多张表
25、MySQL ORDER BY 排序
26、MySQL GROUP BY 分组查询数据
27、MySQL JOIN 进行多表查询
28、MySQL NULL 值处理
29、MySQL REGEXP 子句正则表达式查询
30、MySQL 数据库事务
31、MySQL ALTER 命令
32、MySQL 索引
33、CREATE TEMPORARY TABLE 创建临时表
34、MySQL DROP TABLE 删除临时表
35、MySQL INSERT INTO SELECT 复制表
36、MySQL 获取服务器元数据
37、MySQL 自增序列 AUTO_INCREMENT
38、MySQL 处理重复数据
39、MySQL 安全及防止 SQL 注入攻击
40、MySQL 导出数据
41、MySQL 导入数据
本文档使用 MrDoc 发布
-
+
首页
33、CREATE TEMPORARY TABLE 创建临时表
MySQL 临时表用于一些临时数据时是非常有用的 临时表只在当前连接可见,当关闭连接时,MySQL 会自动删除表并释放所有空间 因为MySQL 临时表只在当前连接可见,如果使用 PHP 脚本来创建 MySQL 临时表,那每当 PHP 脚本执行完成后,该临时表也会自动销毁 如果连接到 `MySQL` 使用持久性连接,那么只有在关闭客户端程序时才会销毁临时表,当然也可以手动销毁 ### **创建临时表** 命令 `CREATE TEMPORARY TABLE tablename` 命令用来创建临时表 创建临时表的语法和 `CREATE TABLE tablename` 是一样的,只是多了一个 `TEMPORARY` 关键字 例如下面的语句用于创建一个临时表 `tbl_language_temp` ```python CREATE TEMPORARY TABLE IF NOT EXISTS tbl_language_tmp( id INT UNSIGNED AUTO_INCREMENT, name VARCHAR(64) NOT NULL, url VARCHAR(128) NOT NULL, founded_at DATE, PRIMARY KEY ( id ) )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` 为了演示如何创建临时表和临时表的特性,我们需要打开两个终端,连接登录到 `MySQL` 服务,然后切换到 `souyunku` 数据库,我们假设两个终端的名字为 a 和 b 1、 分别在a和b终端下使用 `SHOWTABLES;` 命令查看当前数据库有多少表; ```python # a 终端 MariaDB [souyunku]> SHOW TABLES; +----------------+ | Tables_in_souyunku | +----------------+ | tbl_language | +----------------+ 1 row in set (0.01 sec) # b 终端 MariaDB [souyunku]> SHOW TABLES; +----------------+ | Tables_in_souyunku | +----------------+ | tbl_language | +----------------+ 1 row in set (0.01 sec) # 两个终端中的表一摸一样 # 如果你的和我的不一样,没关系,因为和当前数据库中有多少表一点关系都没有 ``` 2、 在a终端中运行以下语句创建临时表 `tbl_language_temp` ; ```python CREATE TEMPORARY TABLE IF NOT EXISTS tbl_language_tmp( id INT UNSIGNED AUTO_INCREMENT, name VARCHAR(64) NOT NULL, url VARCHAR(128) NOT NULL, founded_at DATE, PRIMARY KEY ( id ) )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; # 运行结果如下 MariaDB [souyunku]>` CREATE TEMPORARY TABLE IF NOT EXISTS tbl_language_tmp( ->` id INT UNSIGNED AUTO_INCREMENT, ->` name VARCHAR(64) NOT NULL, ->` url VARCHAR(128) NOT NULL, ->` founded_at DATE, ->` PRIMARY KEY ( id ) -> )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; Query OK, 0 rows affected (0.01 sec) # 然后使用 SHOW TABLES; 命令查看一下当前数据中有多少表 MariaDB [souyunku]> SHOW TABLES; +----------------+ | Tables_in_souyunku | +----------------+ | tbl_language | +----------------+ 1 row in set (0.01 sec) # 咦,没看到我们创建的临时表啊,不用着急,这是因为 SHOW TABLES; 命令是看不到表的 # 就是你看不到也摸不到,但是表就在那里 # 我们可以使用下面的语句往 tbl_language_tmp 中插入数据 INSERT INTO tbl_language_tmp (name,url,founded_at) VALUES ('Python','https://baidu.com','1991-2-20'); # 运行结果如下 MariaDB [souyunku]>` INSERT INTO tbl_language_tmp (name,url,founded_at) VALUES ('Python','https://baidu.com','1991-2-20'); Query OK, 1 row affected (0.00 sec) # 可以使用 SELECT * FROM tbl_language_tmp; 查询表中的数据 MariaDB [souyunku]> SELECT * FROM tbl_language_tmp; +----+--------+---------------------+------------+ | id | name | url | founded_at | +----+--------+---------------------+------------+ | 1 | Python | https://baidu.com | 1991-02-20 | +----+--------+---------------------+------------+ 1 row in set (0.00 sec) ``` 3、 然后我们在终端b中使用 `SELECT*FROMtbl_language_tmp;` 查询表中的数据; ```python MariaDB [souyunku]> SELECT * FROM tbl_language_tmp; ERROR 1146 (42S02): Table 'souyunku.tbl_language_tmp' doesn't exist # 说明临时表只有创建时的连接内效用 ``` 4、 使用 `CTRL+C` 命令断开a终端中的连接,然后重新登录切换到 `souyunku` 数据库,运行`SELECT * FROM tbl_language_tmp;` 查询表中的数据; ```python MariaDB [souyunku]> SELECT * FROM tbl_language_tmp; ERROR 1146 (42S02): Table 'souyunku.tbl_language_tmp' doesn't exist # 发现断开后重新再连,表已经被删除了 ```
李智
2025年3月17日 13:31
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码