(mysql)临时表的使用
使用临时表的好处:
使用临时表存放中间结果,加速查询,或存放临时结果.
(1)
创建临时表很容易,给正常的CREATE TABLE语句加上TEMPORARY关键字:
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
)
(2)
临时表将在你连接MySQL期间存在。当你断开时,MySQL将自动删除表并释放所用的空间。当然你可以在仍然连接的时
候删除表并释放空间。
DROP TABLE tmp_table -- 不用加temporary
(2.2)
临时表的常用方法:
create temporary table temp_user select * from user;
(3)
如果在你创建名为tmp_table临时表时名为tmp_table的表在数据库中已经存在,临时表将有必要屏蔽(隐藏)非临时
表tmp_table。
(4)
使用临时表加速查询
把表的一个子集进行排序并创建临时表,有时能加速查询。它有助于避免多重排序操作,而且在其他方面还能简
化优化器的工作。例如:
SELECT cust.name,rcvbles.balance,……other columns
from cust,rcvbles
WHERE cust.customer_id = rcvlbes.customer_id
AND rcvblls.balance>0
AND cust.postcode>“98000”
ORDER BY cust.name
如果这个查询要被执行多次而不止一次,可以把所有未付款的客户找出来放在一个临时文件中,并按客户的名字
进行排序:
SELECT cust.name,rcvbles.balance,……other columns
from cust,rcvbles
WHERE cust.customer_id = rcvlbes.customer_id
AND rcvblls.balance>0
ORDER BY cust.name
INTO TEMP cust_with_balance
然后以下面的方式在临时表中查询:
SELECT * from cust_with_balance
WHERE postcode>“98000”
临时表中的行要比主表中的行少,而且物理顺序就是所要求的顺序,减少了磁盘I/O,所以查询工作量可以得到大
幅减少。
相关文档:
今天遇到数据库的一个问题,就是每当从主表中删除一个主键id时,由于与他相关联的表中有相关的字段数据,所以无法删除。查了一大堆资料,发现我建表关联用的是on Restrict.可能问题就出在这里吧。
外键约束对子表的含义:
如果在父表中找不到候选键,则不允许在子表上进行insert/update
外键约束 ......
MySQL重新安装的时候出现了问题:Could not start the service MySQL. Error:0,原因是没有对旧的MySQL完全卸载掉。
在你从电脑里卸载旧的MYSQL数据库服务时,首先先在WINDOWS服务里停掉MYSQL的服务。再到控制面板里的增加删除程序内进行删除,然后手动删除原安装文件,但是你并不能完整的把MYSQL服务删 ......
CENTOS 5的虚拟机,怎么从图形界面切换到命令行界面
1.临时切换:
ctrl+alt+1 …… ctrl+alt+6一共六个控制台。
2.永久关闭图形化:
在root下输入 vi /etc/inittab 将init:5修改为init:3
Mysql rpm包安装,不能重定位(relocatable)
rpm包安装异常,--prefix 参数不能重定位,安装到另一个目录的原 ......
分页功能的实现是每种WEB开发语言必须要实现的功能。PHP也好,JSP也罢。我准备用两个方法来阐述PHP+MYSQL实现分页的功能。
一、分页程序的原理
分页程序有两个非常重要的参数:每页显示几条记录($pagesize)和当前是第几页($page)。有了这两个参数就可以很方便的写出分页程序,我们以MySql数据库作为数据源, ......
(1)
外键的使用:
外键的作用,主要有两个:
一个是让数据库自己通过外键来保证数据的完整性和一致性.
如:
有表A,表B中一字段是表A某一字段的外键.当删除表A记录时,表B相应记录会作相应处理(删除/或设置外键列为NULL).但若删除表B记录,表A的记录,则不会受影响!
一个就是能够增加ER图的可读性
&nbs ......