摘要:
这一部分,将看一下一些在书写简单查询语时需要注意的通用的规则。根据权值来优化查询条件最好的查询语句是将简单的比较操作作用于最少的行上。以下两张表,表 1 和表 2 以由好到差的顺序列出了典型查询条件操作符并赋与权值。表 1. 查询条件中操作符的权值操作符权值=10>5>=5<5<=5LIKE3<>0表 2. 查询条件中操作数的权值操作数权值仅常量字符10仅有列名5仅有参数5多操作数表达式3精确数值类型2其它数值类型1时间数据类型1字符数据类型0NULL0根据表 1 和表 2 中分配的权值,可以看出最好的查询条件应该是像下面这样的:… WHERE smalli 阅读全文
摘要:
1、简介在关系型数据库中,join操作是将不同的表中的数据联合在一起时非常通用的一种做法。首先让我们看看join是如何操作的,然后我们探索一下当join和where语句同时存在的时候的执行顺序问题,最后来谈一谈不同类型的join的顺序问题。2、建立初始的测试表结构(建表语句到这里下载)表建立完之后,将会看到如下三个表。我们将通过以上三个表来演示join操作。这三个表都是用来做演示的,所以我并没有使用主键和外键。3、表的笛卡尔乘积一般情况下,我们使用两个表中的相关字段进行join操作,例如,employee表中的DeptId字段对应于Department表中的DepId字段,通过这种方式进行jo 阅读全文
摘要:
现实生活中有很多问题,人为不好解决,但利用计算机速度快,不出错的特性,可以很方便的解决这些问题,下面简单说说我在程序设计中解决实际问题的一些常见思想,高手可以忽略掉,我也是无聊了随便写写而已。 1.枚举最优解时的情况 有很多问题初看很棘手,但经过仔细的分析,可以得出一些显然的结论。比如下面这个问题: 平面内有上千个点,用一个半径为R的圆去覆盖,最多能覆盖多少点?很多程序员最暴力的思想就是枚举,当然,利用计算机枚举确实是一种很有效的方法,特别是在数据很小的情况下,不过对于上述问题,如何枚举?枚举圆的位置吗?确实可以枚举圆的位置,如果不经过思考的话可以再二维正交系内枚举每个点为圆心,然后判断这个圆 阅读全文