只有注册用户登录后才能阅读该文。 阅读全文
摘要:
这一部分,将看一下一些在书写简单查询语时需要注意的通用的规则。根据权值来优化查询条件最好的查询语句是将简单的比较操作作用于最少的行上。以下两张表,表 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的圆去覆盖,最多能覆盖多少点?很多程序员最暴力的思想就是枚举,当然,利用计算机枚举确实是一种很有效的方法,特别是在数据很小的情况下,不过对于上述问题,如何枚举?枚举圆的位置吗?确实可以枚举圆的位置,如果不经过思考的话可以再二维正交系内枚举每个点为圆心,然后判断这个圆 阅读全文
摘要:
View Code 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 int[] data = new int[] { 21, 37, 12, 56, 11, 78, 65, 96 }; 6 data = Sort(data); 7 foreach (int a in data) 8 { 9 Console.WriteLine(a.ToSt... 阅读全文
摘要:
View Code 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace ConsoleApplication1 7 { 8 class SCAN 9 { 10 11 static void Main(string[] args) 12 { 13 SCAN s = new SCAN(); 14 15 int[] a... 阅读全文
摘要:
View Code 1 class SCAN 2 { 3 4 static void Main(string[] args) 5 { 6 SCAN s = new SCAN(); 7 8 int[] a = { 55, 58, 39, 18, 90, 160, 150, 38, 184 }; 9 int nowway = 100; 10 11 12 int[] high = s.high(nowway, a);//高磁道 13 ... 阅读全文
摘要:
摘记:尽量使用多态,避免大量的类型检查频繁重复出现的case语句有时是在暗示,采用集成可能是种更好的设计选择--尽管并不总是这样。switch (shape.type){case Shape_Circle:shape.DrawCircle();break;case Shape_Square:shape.DrawSquare();break;……}在这个例子中,对shape.DrawCircle()和shape.DrawSquare()的调用应该叫shape.Draw()的方法来替代,因为无论形状是圆的还是方的都可以调用这个方法来绘制。另外,case语句有时也用来把种类确时不同的对象和行为分开。 阅读全文
摘要:
is: 检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,永远不会抛出异常object o = new object();if (o is Label){Label lb = (Label)o;Response.Write("类型转换成功");}else{Response.Write("类型转换失败");}在上面的代码,CLR实际上会检查两次对象的类型,is操作符先核实一次,如果o兼容于Lable,那么在(Label)o时会再次核实一次,效率比较低,不建议使用as:与强制类型转换是一样的,但是永远不会抛出异常,即如果转换不成功,会返回nullo 阅读全文
摘要:
static void Main(string[] args) { ArrayList at=new ArrayList(); int[] number=new int[]{5679,4,36,67976,124,235,453,436,6589,0,5,6,346,457,34,3642}; foreach(int i in number) { at.Add(i); } ArrayList al=QuickSort... 阅读全文