SQL临时表
时间:2020-02-23 14:32:35 来源:igfitidea点击:
在实时情况下,请考虑您对表具有只读访问权限,并且必须操纵其中的某些数据。
当您要在当前会话中使用临时表时,创建临时表总是很有用的。
介绍
在本教程中,我们将讨论MySQL中的临时表。
以下是临时表的一些功能。
当我们关闭会话或者关闭连接时,MySQL会删除一个临时表。
临时表仅对创建它的客户端可见。
临时表可以与普通表共享相同的名称。
如果两个临时表位于不同的会话中,则它们也可以具有相同的名称。
如果临时表和现有的普通表共享相同的名称。
在不删除临时表之前,普通表将无法访问。
现在,我们将考虑在MySQL中创建,使用和删除临时表。
创建一个临时表
创建临时表的语法:
CREATE TEMPORARY TABLE table_name SELECT column(s) FROM existing_table;
在上述语法中,由于关键字Temporary,将创建一个临时表。
让我们创建一个Library表,并将使用相同的表创建一个临时表。
CREATE TABLE `library` ( `idLibrary` int(11) NOT NULL, `BookTitle` varchar(45) DEFAULT NULL, `BookQuantity` int(11) DEFAULT NULL, `Author` varchar(45) DEFAULT NULL, `BookPrice` float DEFAULT NULL, PRIMARY KEY (`idLibrary`), UNIQUE KEY `idLibrary_UNIQUE` (`idLibrary`) )
以下查询将用于数据插入。
INSERT INTO `test`.`library`(`idLibrary`,`BookTitle`,`BookQuantity`,`Author`,`BookPrice`)VALUES(1,'The Chamber of Secrets',10,'J K Rowling',20.99); INSERT INTO `test`.`library`(`idLibrary`,`BookTitle`,`BookQuantity`,`Author`,`BookPrice`)VALUES(2,'One night at the call center',13,'Chetan Bhagat',100.99); INSERT INTO `test`.`library`(`idLibrary`,`BookTitle`,`BookQuantity`,`Author`,`BookPrice`)VALUES(3,'The God of Small things',11,'Arundhati Roy',120.99); INSERT INTO `test`.`library`(`idLibrary`,`BookTitle`,`BookQuantity`,`Author`,`BookPrice`)VALUES(4,'War and Peace',5,'Leo Tolstoy',80.00);
我们将创建一个图书数量大于10的临时表。
Create temporary table libary_10 select * from library where bookquantity>10;
现在,我们将使用Select语句检查表是否已创建。
Select * from libary_10;
临时表的用法
现在,我们已经创建了表格,假设我们想获得最高的书价。
我们将使用下面提到的查询来获取结果集。
Select max(bookprice) from libary_10;
现在,我们将了解如何删除临时表。
删除临时表
删除临时表的语法:
Drop Temporary Table temp_table_name;
Temporary关键字用于确保错误地删除了永久表。
如果尝试使用上述语法删除永久表,则会收到错误消息。
让我们看看如何删除临时表。
Drop Temporary Table libary_10;