📜  Mysql 表变量 - SQL (1)

📅  最后修改于: 2023-12-03 15:17:48.395000             🧑  作者: Mango

Mysql 表变量 - SQL

在 MySQL 中,表变量(Table Variables)是一种被动态创建并存储在内存中的临时表,通常用于存储复杂查询的结果集,以便后续查询能够更快地访问它们。与临时表不同,表变量可以动态地在程序中建立、修改和删除,并允许使用多个表变量。

创建表变量

使用 CREATE TEMPORARY TABLE 命令可以创建一个表变量。例如,以下 SQL 语句创建一个名为 products 的表变量,其中包含 idproduct_nameprice 三个字段。

CREATE TEMPORARY TABLE products (
  id INT(11) NOT NULL AUTO_INCREMENT,
  product_name VARCHAR(255) NOT NULL,
  price DECIMAL(10,2) NOT NULL,
  PRIMARY KEY (id)
) ENGINE=MEMORY;

在上述示例中,ENGINE=MEMORY 表示该表变量将被存储在内存中。

插入数据

一旦表变量被创建,就可以使用 INSERT INTO 命令将数据插入表变量中。

INSERT INTO products (product_name, price) VALUES ('Product A', 12.55);
INSERT INTO products (product_name, price) VALUES ('Product B', 27.99);
INSERT INTO products (product_name, price) VALUES ('Product C', 18.90);
查询数据

可以使用标准的 SELECT 命令查询表变量中的数据:

SELECT * FROM products;

输出结果如下:

+----+--------------+-------+
| id | product_name | price |
+----+--------------+-------+
|  1 | Product A    | 12.55 |
|  2 | Product B    | 27.99 |
|  3 | Product C    | 18.90 |
+----+--------------+-------+
修改表变量

与常规的 MySQL 表一样,可以使用 UPDATE 语句在表变量中更新数据。

UPDATE products SET price = 10.99 WHERE id = 2;

上述命令将将 id 为 2 的产品价格更新为 10.99。

删除数据

可以使用标准的 DELETE 命令从表变量中删除数据。

DELETE FROM products WHERE id = 3;

此命令将从表变量中删除 id 为 3 的商品记录。

删除表变量

可以使用 DROP TABLE 命令从内存中删除表变量。

DROP TABLE products;

此命令将删除先前创建的 products 表变量。

总之,表变量是 MySQL 中令人兴奋的功能之一,可以大大提高处理复杂查询和大量数据的效率。在使用时要注意表变量保存在内存中,如果数据量过大,需要谨慎使用。