内连接,左、右连接,全连接
例子:
a表 id name b表 id job parent_id
1 张3 1 23 1
2 李四 2 34 2
3 王武 3 34 4
a.id同parent_id 存在关系
内连接
select a.*,b.* from a inner join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
左连接
select a.*,b.* from a left join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
3 王武 null
右连接
select a.*,b.* from a right join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
null 3 34 4
完全连接
select a.*,b.* from a full join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
null 3 34 4
3 王武 null
冒泡排序
void BubbleSort(SeqList R)
{ //R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序
int i,j;
Boolean exchange; //交换标志
for(i=1;i<n;i++){ //最多做n-1趟排序
exchange=FALSE; //本趟排序开始前,交换标志应为假
for(j=n-1;j>=i;j--) //对当前无序区R[i..n]自下向上扫描
if(R[j+1].key<R[j].key){//交换记录
R[0]=R[j+1]; //R[0]不是哨兵,仅做暂存单元
R[j+1]=R[j];
R[j]=R[0];
exchange=TRUE; //发生了交换,故将交换标志置为真
}
if(!exchange) //本趟排序未发生交换,提前终止算法
return;
} //endfor(外循环)
} //BubbleSort
三大范式
第一范式:确保每列的原子性. 如果每列(或者每个属性)都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式.
例如:顾客表(姓名、编号、地址、……)其中"地址"列还可以细分为国家、省、市、区等。
第二范式:在第一范式的基础上更进一层,
目标是确保表中的每列都和主键相关. 如果一个关系满足第一范式,并且除了主键以外的其它列,都依赖于该主键,则满足第二范式.
例如:订单表(订单编号、产品编号、定购日期、价格、……),"订单编号"为主键,"产品编号"和主键列没有直接的关系,即"产品编号"
列不依赖于主键列,应删除该列。
第三范式:在第二范式的基础上更进一层,目标是确保每列都和主键列直接相关,而不是间接相关.
如果一个关系满足第二范式,并且除了主键以外的其它列都不依赖于主键列,则满足第三范式. 为了理解第三范式,需要根据Armstrong公
里之一定义传递依赖。假设A、B和C是关系R的三个属性,如果A-〉B且B-〉C,则从这些函数依赖中,可以得出A-〉C,如上所述,
依赖A-〉C是传递依赖。 例如:订单表(订单编号,定购日期,顾客编号,顾客姓名,……),初看该表没有问题,满足第二范式,
每列都和主键列"订单编号"相关,再细看你会发现"顾客姓名"和"顾客编号"相关,"顾客编号"和"订单编号"又相关,最后经过传递依赖,
"顾客姓名"也和"订单编号"相关。为了满足第三范式,应去掉"顾客姓名"列,放入客户表中。
short i =1; i=i+1与short i=1; i+=1编译时的区别
short i =1; i=i+1;
short i=1;i+=1;
这两有什么区别呢 ?
对两个容量不一样的数据类型的变量进行算术运算时,java会自动将小容量的变量进行精度提升,然后再进行运算,得到的结果类型是提升后的大容量的数据类型.如果将该结果赋值给小容量的数据类型的变量,则必须进行强制的类型转换,否则编译程序会报损失精度错.如楼主示例,用i来表示1: short s1 = 1; int i = 1; 首先,因为short类型是16位的,而int类型是32位的,在进行 (s1+i) 运算时,自动将s1提升到32位,然后与i相加,得到的结果是32位的,而此时 s1=s1+i; 必然报错,因为如果赋值成功,只是把低16位赋给了s1,这个虽然正是楼主想要的结果,但是编译程序却不能判定你的意图是什么. 执行强转: s1=(short)(s1+i); 就没问题了. s1+=i;能编译通过并得到正确结果,而 s1=s1+i; 却报错,是因为它们并不像楼主认为的那样是等价的,s1+=i的方式java会对i进行窄化转换,由编译程序自动执行. java规范中说: E1 op=E2 实际上等价于 : E1=(T)( (E1)op(E2) ) 其中T是E1的数据类型.这种类型转换或者是一个恒等转换,或者是一个窄化转换. 这个说明java是一种强类型的语言,对数据类型的要求是非常严格的,否则会引起混乱. 下面解释一下三种类型转换:恒等转换(相同容量的两个数据类型之间的赋值);拓宽转换(小容量类型赋值给大容量类型);窄化转换(大容量赋值给小容量类型). 实际上,前两种转换都是编译程序自动执行的,而窄化转换则要求必须显式的执行.
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
ERP实施工程师 1、一定的技术基础。 身为软件实施顾问,你不能不了解你的产品,当然你可以了解得粗略,不必象技术工程师那样精通,你要能够回答客户提出的大部分问题,所以需要你掌握的知识非常综合、全面——强调的是广度而不是深度,当然,如果你的深度够好,那么会更加有利。如果你的深度不够,经常回答不上客户的问题,不要紧,关键是你要留一个缓冲余地,你要知道,你应该从哪里获得帮助和支持。优秀的实施顾问,应该懂得如何调度资源。 以下为我认为实施顾问应该掌握的技术: (1)ERP软件本身,如SAP, ORACLE中的某个或某些模块,用友、金蝶等。 (2)系统管理知识,包括WINDOWS 2000,WINXP。 (3)数据库知识,包括SQL2000、ORACLE、DB2等等,SQL技能。细分可为查询分析器的使用,数据表的操作,报表的基本技能等等。 (4)网络知识。 (5)一定的硬件知识。 2、行业知识。 行业知识浩如烟海,没有人可以掌握全部。把握好你的定位,你要了解全部的产品有什么,但你要选定一个方向,在这方面成为专家。既要广博,也要有自己的专精所在。 不要贪多,很多东西知道框架即可,用的时候懂得较快地搜索、查找出来即可。时间精力极为有限,有些东西要懂得放弃。 3、管理知识和项目管理知识。 应当具备丰富的管理知识。要与客户保持好关系,要有良好的服务意识。客户管理层是项目推进中最好的资源,一定要取得他们充分的信任和合作。如果你不了解管理知识,你难以让客户信服和接受。软件之所以需要实施顾问,就在于实施顾问能够通过资源调度使它具备生命力,没有产品是尽善尽美的,但是一名尽责的、优秀的实施顾问,却可以弥补产品本身的不足。网络上管理知识应有尽有,只看个人的吸收能力。另外的一个好的学习途径就是客户方管理人员,他们的管理经验更有实效性。所以,在项目的实施过程中,我们事实上就可以学到很多管理知识。这也是这项工作的诱惑和魅力之一。 作为实施顾问,项目管理非常重要。要掌握基础的项目管理知识,掌握项目管理常用的软件工具。如果你是由技术工程师转型而来,观念上的转变至为重要。实施顾问不是替客户做事,而是指导客户做事。所以尽管你眼看着一个简单的问题却在客户手中无法解决,禁不住着急,想要代做,也请你管住自己。牢牢记住实施顾问的定位,不要混淆。事实证明,这是很多做惯了技术服务的工程师在转型到实施顾问时的一个瓶颈。身为实施顾问,你的专业化,恰恰是体现在“项目管理”上面。项目管理的知识,可以充分利用互联网,用BAIDU、GOOGLE去搜吧。然后,不要浮躁,用心体会。 4、英语水平。 SAP以及其他重要的ERP系统,大多都是西方人开发的,相关资料,尤其是最新的资料基本都是英文的,如果英语不灵,那真有跛腿的味道。况且用SAP的公司,大多是跨国企业,顾问本身又是一个很注重交流沟通的工作,所以,良好的英文水平,绝对是非常必要的。 5、你应有一个清爽整洁、职业化仪表。 要知道顾问基本上是一个服务性质的工作,必须得到客户方的认可,必须让人家喜欢和你相处。不修边幅的人,不适合担任实施顾问。你的气质与风度,你能否征服你的客户让他们接受你,信任你,是项目顺利进展的关键。曾有客户讲过,如果他们不接受顾问本身,也就难以接受顾问带来的一切。除了相貌,气质,还有谈吐。彬彬有礼、条理清晰、善于表达,是良好沟通的基础。当然,自信心也很重要。而职业化,不仅仅是实施顾问的要求,它是身在职场的人们都必须具备的常识。如果想在这方面得到提高,可以去买本公关礼仪方面的书或者查询网站上的相关知识。另外可以多留心一下那些公认有修养、善谈吐人士的言谈举止,逐渐地养成习惯,固化下来。 6、学习能力。 上述几条,不是独立存在,而是相辅相成,技术、管理、企业业务流程,都需要不断地学习。知识是日新月异的,必须与时俱进,活到老学到老,你往往需要在知识上走在客户的前面,有时候你必须要向客户学习,要学的东西永远太多,所以想要成为一名优秀的实施顾问,时间管理是必须要掌握的,如何合理的安排时间、有效利用时间是一门大学问,需要自己不断探索、总结。唯有热爱这个行业,对它感兴趣,甚至到了吃饭、走路、坐车、如厕也常常思考相关的问题。(睡觉就不要想了,容易失眠。: ) ) 这样算是进入状态了。你才有希望成为佼佼者。 7、一定的运气和机遇 谋事在人,成事在天。机遇也是非常重要的,一定要善于寻找机遇,创造机遇,抓住机遇。 想要成为优秀的顾问,需要一个漫长的过程,要多多用心,潜心体会,自然会有心得。常常要耐得住寂寞清静。多付出,不要太在意回报。坚韧不拔,终将修成正果。优秀的实施顾问,前途必然是光明的。
|