处事22计
1.看穿但不说穿。很多事情,只要自己心里有数就好了,没必要说出来。
2.高兴,就笑,让大家都知道。悲伤,就假装什么也没发生。
3.在不违背原则的情况下,对别人要宽容,能帮就帮,千万不要把人逼绝了,给人留条后路……
4.快乐最重要,谁人、何物、何事使你快乐,你就同他们在一起。何物让你不快乐,你就离开他。没有条件,创造条件也要离开他。
5.不要老在别人面前倾诉你的困境袒露你的脆弱。
6.没有十全十美的东西,没有十全十美的人,关键是清楚到底想要什么。得到想要的,肯定会失去另外一部分。如果什么都想要,只会什么都得不到。
7.我喜欢一位朋友说的这句“善忘是一件好事。”
8.两个人同时犯了错,站出来承担的那一方叫宽容,另一方欠下的债,早晚都要还。
9.自己不喜欢的人,可以报之以沉默微笑;自己喜欢的人,那就随便怎么样了,因为你的喜爱会挡也挡不住地流露出来。
10.不要做刺猬,能不与人结仇就不与人结仇,谁也不跟谁一辈子,有些事情没必要记在心上。
11.学会妥协的同时,也要坚持自己最基本的原则。
12.不要停止学习。不管学习什么,语言,厨艺,各种技能。
13.钱很重要,但不能依靠男人或父母,自己一定要保持一定赚钱的能力……。
14.不要太高估自己在集体中的力量,因为当你选择离开时,就会发现即使没有你,太阳照常升起….。
15.过去的事情可以不忘记,但一定要放下。
16.即使输掉了一切,也不要输掉微笑……。
17.不管做了什么选择,都不要后悔,因为后悔也于事无补。
18.不要因为冲动说一些过激的话。
19.不要轻易许下承诺,做不到的承诺,比没许下更可恶。
20.不要觉得不了解也会有爱情。在不了解的时候,我们仅仅是喜欢,达不到爱情。当彼此的缺点暴露出来以后,很多时候这喜欢也就会结束了。
21.说话时可以很直接,人很直爽,总比虚伪好。
22.对自己好一点,心情不好的时候,什么都别考虑,去吃自己爱吃的吧。但是别喝酒。
心态,决定你的人生
1.再烦:也别忘记微笑
2.再急:也要注意语气
3.再苦:也别忘坚持
4.再累:也要爱自己
5.低调做人;你会一次比一次稳健
6.高调做事;你会一次比一次优秀
7.成功的时候不要忘记过去
8.失败的时候不要忘记还有未来
9.有望得到的要努力;无望得到的不介意
10.无论输赢都要高姿态
11.生活不是单行线,一条路走不通,你可以转弯
12.泪水和汗水的成分相似;但前者只能为你换来同情。后者却可以为你赢得成功
13.变老是人生的必修课
14.变成熟是选修课
15.以锻炼为本,学会健康
16.以适应为本,学会生存
17.学会放弃,耐得住寂寞,经得起诱惑
18.当所有人都低调的时候,你可以选择高调,但不能跑调
19.学会忘记是生活的技术
20.学会微笑是生活的艺术
21.懒惰像生锈一样比操劳更消耗身体
22.让梦想成真的最好方法就是醒来
23.哲人无忧、智者常乐。并不是因为所爱就要拥有,而是拥有的一切都爱
24.不能失去的东西:自制的力量、冷静的力量、希望和信心
伤心时要读的50句话
1.我以为小鸟飞不过沧海,是以为小鸟没有飞过沧海的勇气,十年以后我才发现,不是小鸟飞不过去,而是沧海的那一头,早已没有了等待……
2.你走的那天,我决定不掉泪,迎着风撑着眼帘用力不眨眼……
3.多谢你的绝情,让我学会死心……
4.带著一根烟.浪迹天涯……
5.木头对火说:“抱我”! 火拥抱了木头`木头微笑着化为灰烬! 火哭了!泪水熄灭了自己……当木头爱上烈火注定会被烧伤……
6.当眼泪流下来,才知道,分开也是另一种明白。
7.我真的爱你,闭上眼,以为我能忘记,但流下的眼泪,却没有骗到自己……
8.回家的路上我哭了,眼泪再一次崩溃孓.无能为力这样走着,再也不敢骄傲奢求了。我还能够说些什么,我还能够做些什么?我好希望你会听见, 因为爱你我让你走了……
9.不要轻易说爱,许下的承诺就是欠下的债!
10.是我的终究是我的`我终归是你的一个过客 `你始终不爱我`注定我和你就是什么都不会发生` 注定`注定只是注定`不管我怎么跨越 不管我怎么想靠近你 `你还是会离开我的`我好想你`好想好想你`好想好想见你
11. 脸上的快乐,别人看得到。心里的痛又有谁能感觉到.
12.分手后不可以做朋友,因为彼此伤害过.不可以做敌人.因为彼此深爱过,所以我们变成了最熟悉的陌生人.
13.有的人与人之间的相遇就像是流星,瞬间迸发出令人羡慕的火花,却注定只是匆匆而过.
14. 时间会慢慢沉淀,有些人会在你心底慢慢模糊。学会放手,你的幸福需要自己的成全。
15.我能感觉到你的心痛,你有你说不出的无奈…但是你做出一副无所谓的样子,你越是这样我就越难受`
16. 有些的时候,正是为了爱才悄悄躲开.躲开的是身影,躲不开的却是那份默默的情怀。
17. 爱到分才显珍贵,很多人都不懂珍惜拥有.只到失去才看到,其实那最熟悉的才是最珍贵的.
18.有时,爱也是种伤害.残忍的人,选择伤害别人,善良的人,选择伤害自己.
19.你走了,带着我全部的爱走了,只是一句分手.我忍着眼泪看着你的背影,好想最后在抱你一次,好想在对你说一次“我爱你”
20. 淋过雨的空气, 疲倦了的伤心,我记忆里的童话已经慢慢的融化.
21.既然爱,为什么不说出口,有些东西失去了,就在也回不来了!
22. 相爱是种感觉,当这种感觉已经不在时,我却还在勉强自己,这叫责任!分手是种勇气!当这种勇气已经不在时,我却还在鼓励自己,这叫悲壮!-
23. 人生不止,寂寞不已。寂寞人生爱无休,寂寞是爱永远的主题.我和我的影子独处.它说它有悄悄话想跟我说.它说它很想念你^ 原来`我和我的影子`都在想你`
24.在完美的彼岸刚刚上演了一场悲剧,所有的血与泪在枯萎的荆棘蕴育出一个花蕾,它将经历轮回的七场雷雨,然后绽放在潮湿的空气中……
25.鱼上钩了,那是因为鱼爱上了渔夫,它愿用生命来博渔夫一笑……
26.喜欢在你身上留下属於我的印记,却不曾记起你从未属於过我……
如果有一天,不再喜欢你了,我的生活会不会又像从前那样堕落,颓废…我不想再要那样的生活,所以,在我还没有放弃你之前,请你,至少要喜欢上我……
27.其实我一直在你身边守候,等你靠在我肩上诉说,会不会有那么一天,你的温柔都属于我,我不会再让你难过,让你的泪再流!
28.你当我是个风筝,要不把我放了,要不然收好带回家,别用一条看不见的情思拴着我,让我心伤.
29.窗外下着雪,泡一杯咖啡,握到它凉了,才知道又想起了你。我的期待你如何才能明白!
30.第一次哭是因为你不在,第一次笑是因为遇到你,第一次笑着流泪是因为不能拥有你!
31.岁月就象一条河,左岸是无法忘却的回忆,右岸是值得把握的青春年华,中间飞快流淌的,是年轻隐隐的伤感。世间有许多美好的东西,但真正属于自己的 却并不多。看庭前花开花落,荣辱不惊,望天上云卷云舒,去留无意。在这个纷绕的世俗世界里,能够学会用一颗平常的心去对待周围的一切,也是一种境界。
32.我们的生活有太多无奈,我们无法改变,也无力去改变,更糟的是,我们失去了改变的想法……
33.看庭前花开花落,荣辱不惊,望天上云卷云舒,去留无意。
34.在这个纷绕的世俗世界里,能够学会用一颗平常的心去对待周围的一切,也是一种境界。
35.人生最遗憾的,莫过于,轻易地放弃了不该放弃的,固执地,坚持了不该坚持的……
36.简单安静的生活其实不幸福,所以我只拥抱刹那,绵延持久的感觉根本不快乐,所以我只信仰瞬间。
37.有些失去是注定的,有些缘分是永远不会有结果的.爱一个人不一定会拥有,拥有一个人就一定要好好去爱她……
38.心已死,泪也干,不堪回首魂亦牵.梦惊醒,不了情,往事如烟挥不去.亦虚亦实,亦爱亦恨,叶落无声花自残.只道是,寻寻觅觅,冷冷清清,凄凄惨惨戚戚;却无奈,天长地久有时尽,此恨绵绵无绝期.
39.世界上没有任何东西可以永恒。如果它流动,它就流走;如果它存著,它就干涸;如果它生长,它就慢慢凋零。
40.一个做女人的痛苦:当她和她所爱的男人有了肉体关系以后,她就很自然地把这种关系视为一种永远,但男人却可以不同,他们可能只会觉得那是生存方式的又一种演绎。正如书上说的:男女之间,在没有婚姻的承诺前,还是保持简单的关系为好,否则,真的没有岁月可以回头.
41.如果,不幸福,如果,不快乐,那就放手吧;如果,舍不得、放不下,那就痛苦吧。
42.人生短短几十年,不要给自己留下了什么遗憾,想笑就笑,想哭就哭,该爱的时候就去爱,无谓压抑自己。人生的苦闷有二,一是欲望没有被满足,二是它得到了满足。
43.所谓花心,就是有了爱情和面包,还想吃蛋糕的心情;所谓外遇,就是潜出围城,跌入陷阱;所谓浪漫,就是帮老婆买包心菜时,还会顺手带回一支玫瑰花;所谓厨房,就是结婚时红地毯通向的正前方……
44.不敢说出口,因为我胆小,因为如果你拒绝,我以后就不能够再见到你了,宁愿默默的爱着你,不能让你知道,直到,直到你投进别人的环抱!
45.一个人想事好想找个人来陪。一个人失去了自己。不知还有没有要在追的可望。
46.这个世界就这么不完美。你想得到些什么就不得不失去些什么。
47.恋爱,在感情上,当你想征服对方的时候,实际上已经在一定程度上被对方征服了。首先是对方对你的吸引,然后才是你征服对方的欲望。
48.我放下了尊严,放下了个性,放下了固执,都只是因为放不下你。
49.如果爱上,就不要轻易放过机会。莽撞,可能使你后悔一阵子;怯懦,却可能使你后悔一辈子。
50.没有经历过爱情的人生是不完整的,没有经历过痛苦的爱情是不深刻的。爱情使人生丰富,痛苦使爱情升华。
人的基本礼仪
1. 别人给倒水时,不要干看着,要用手扶扶,以示礼貌。
2. 别人对你说话,你起码要能接话,不能人家说了上句,你没了下句,或者一味的说着啊啊啊,是是是。
3. 有人盯着你看的时候不要直视对方,假装没注意到。
4. 心情不好,再好的护肤品和化妆品也补救不了皮肤。
5. 睡眠不好,会使人说话语无伦次,反应迟钝,黑眼圈突出。
6. 别人释放“有毒气体”的时候不能嫌恶地躲开或者拿手扇,装作若无其事。
7. 被领导训斥的时候,不要低头,要直视领导,面带微笑,表示接受批评,领导的火就会慢慢消退,否则,领导会火上加油。
8. 女人一辈子不能手心朝上向男人要钱花。。
9. 吃完饭退席时说:“我吃完了,你们慢吃。”
10.给人递水递饭一定是双手。
11.坐椅子不要翘起来。
12.吃饭要端碗,不要在盘子里挑拣。
13. 最后一个进门要记得随手关门 。
14.送人走要说:“慢走。”
15.洗了手不要随意甩手,水会甩到人家身上很不礼貌 。
16.递刀具给别人要记得递刀柄那一端。
17.不揭别人的短处 。
18.听别人说话的时候,眼神不要游移。这样显得很没礼貌。
19.帮别人倒茶倒水之后,壶嘴不要对着别人。
20.站有站相,坐有坐相。
21.遇到那种往里往外都能开的门,拉而不是推 。
22.说道就一定要做到,做不到的就不要承诺。
23.不要贪小便宜不要贪财,钱再多也有花完的时候 。
24.屋里有人的时候,出门要轻手关门 。
25.这个世界不相信眼泪….。
26.与其花空心思留住男人,不如让男人花空心思留住自己 。
27.人穷志不短 。
28.盛饭或端茶给别人时,如果中间隔了人,不要从别人面前经过递,而要从别人后面绕过递。
29.自己有本事才是真的本事。
30.学会温柔学会聆听 。
31.去别人家里,不要坐在人家的床上 。
32.在酒桌上与别人碰杯,自己的杯子一定要低于对方的,特别是对方是长辈或领导 。
33.晴带雨伞,饱带干粮—未雨绸缪总是好的。
34. 如果问别人话,别人不回答你,不要死着脸皮不停的问。
35. 吃饭的时候尽量不要发出声音 。
36. 捡东西或者穿鞋时候要蹲下去,不要弯腰撅屁股 。
37. 别人批评你的时候,即使他是错的,也不要先辨驳,等大家都平静下来再解释 。
38.做事情要适可而止,无论是狂吃喜欢的食物还是闹脾气 。
39.到朋友家吃完饭,要主动帮忙洗碗清理桌子—–主人做饭已经很辛苦了,不能事后还让主人清理。
40.生活中会遇见各式各样的人,你不可能与每个人都合拍,但是有一点是四海皆准的:你如何对待别人,别人也会如何对待你 。
41.待客不得不大,持家不得不小 。
42.把拳头收回来是为了更有力的还击 。
43.人活在这个世上,首先要学会一个“忍”字 。
44.任何时候对任何人不要轻易告诉对方你的秘密 。
45.钱不是靠攒的,会花才会赚 。
46.学无止境,不仅仅是学书本知识,更要学会怎么待人处事,社会远比你想象的要复杂 。
47.不要跟同事议论上司或其他同事的是非,你的无心之言很可能成为别人打击你的证据。
48.做事情,做好了是你的本分,做的不好就是你失职 。
49.只有错买,没有错卖。不要只顾着贪小便宜。
50.有时候孤单是正常的,不要害怕,要自己调剂 。
51.有真正的朋友,但不知你有没有福气遇到。不管有没有遇到,都不要否认它。不要算计别人,尤其不要算计自己喜欢的人。对自己喜欢的人,不要使用手段去得到 。
52.最勇敢的事情是认清了生活的真相之后依旧热爱生活。不要害怕欺骗,但要知道世界上存在欺骗 。
53.借钱的时候,心里要有个底,就是要想着这个钱是回不来的。所以借出去的钱永远要在自己能承受的损失范围之内。可以承受的数字以内,即使回不来,也是心里早准备好的。自己不能承受损失的数目,就不能借 。
54.最好的朋友之间,除非他穷的吃不了饭了,否则最好不要有经济往来。许多可贵的友谊都败坏在钱上。
55.君子可寓意于物,但不可留意于物 。
56.出门在外能忍则忍,退一步海阔天空 。
57.擦桌子的时候要往自己的方向抹 。
58.打电话接电话第一句话一定要是“喂,您好”;挂电话的时候等别人先挂 。
59.一次不忠 百次不容 。
60.不随地吐痰扔东西,如果没有垃圾箱,就拎回家扔垃圾筒里 。
61.多看书对心灵有益,你会看到一个更广阔的世界。
62.是你去适应社会,不是社会来适应你 。
63.不要让别人知道自己的真实想法,要笑在人前笑,要哭一个人躲起来哭 。
64.走路手不要插在口袋里。
65.简单的事情复杂做,复杂的事情简单做 。
66.机会只留给有准备的人,天上不会掉馅饼 。
67.不管什么条件下,仔细刷牙,特别是晚上 。
68.早上一定要吃早餐,没有早餐喝杯水也一定要 。
69.少说别人是非,把自己管牢 。
70.你是无价之宝 。
71.女生,和男孩子出去要自己买单 。
72.要对自己的行为负责,不要怨天由人,在做之前要想想应不应该,出了事要学会自己解决。
73.要想人前显贵,必先人后受罪。
学会长大
1.学会把亲情放在第一位,把友情放在第二位,把爱情放在够不到的位置
2.学会不和父母顶嘴,学会为了维护友谊让步
3.学会不想着依赖别人,做好自己,让别人依赖你
4.学会认清自己,不是很好,也不算坏,不把头扬的很高,也不拿眼睛盯别人的脚5.学会把喜欢的人放在心底,默默的喜欢,有种情不需要张扬
6.学会不为了自己喜欢的人和别人争论,或许你并不了解他
7.学会口是心非,看到自己喜欢的人和别人在一起,请祝福
8.学会独自一个人承受一些事,一个人守着一些秘密
9.学会适当减肥,不要过度,为了某些人,坚持
10.学会去关心家人,朋友,不要以为他们不会离开我们,就不在意
11.学会交际,和所有的人搞好关系,踏入社会,面对的人会更多
12.学会掩饰忧伤,对别人笑,要哭,躲被窝里
13.学会成熟处事,即使是装出来的
14.学会在特殊的节日,给别人一个小小的惊喜,感动一个人很简单,让她(他)知道你心中有她(他)的位置
15.学会不相信童话故事,永远记得仙杜瑞拉有的水晶鞋是你没有的
16.学会必要的欺骗,不要说你诚实,埋没了善良更可恶
17.学会为自己的人生做好打算,自己争取来的更值得珍惜18.学会不计较,忘记一些不愉快,也许你会更快乐
19.学会无条件付出,想想父母,你会释然
20.学会写日记,我们的人生并不是很长,把它记下足可以让你重拾记忆
好好过日子,终会长大,学会不让爱我们的人对我们失望
拿得起,放得下,该放手的时候,不要拖泥带水,告诉自己,学会自爱,也会活得很好…
两表连接,取出其中某些项不重复的数据
有省、市数据库表,现在要求只取每一个省中的一个市出来
数据库脚步如下
省表:
CREATE TABLE [dbo].[mem_province]( [id] [int] NOT NULL, [nvarchar](6) NOT NULL, [name] [nvarchar](40) NULL, CONSTRAINT [PK_mem_province] PRIMARY KEY CLUSTERED ( ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
CREATE TABLE [dbo].[mem_city]( [id] [int] NOT NULL, [nvarchar](6) NOT NULL, [name] [nvarchar](50) NULL, [provinceId] [nvarchar](6) NULL, CONSTRAINT [PK_mem_city] PRIMARY KEY CLUSTERED ( ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
SELECT * FROM ( SELECT a.id aid, a.code acode, a.name aname, b.id bid, b.code bcode, b.name bname, b.provinceId bprovinceId FROM mem_province a left JOIN mem_city b on a.code= b.provinceId )c WHERE NOT EXISTS ( SELECT 1 FROM (SELECT a.id aid, a.code acode, a.name aname, b.id bid, b.code bcode, b.name bname, b.provinceId bprovinceId FROM mem_province a LEFT JOIN mem_city b on a.code= b.provinceId)e WHERE e.bid<c.bid AND e.aname = c.aname ) ORDER BY aid
oracle常用语句
1、set timing on开启sql执行计时
2、查看granule大小(granule大小是以SGA大小由系统设定的,当SGA小于1G时,granule大小为4M,当SGA大于1G的时候granule大小为16M)
select component,granule_size from v$sga_dynamic_components;
3、启动数据库受限模式
startup restrict;
如果是open状态转换为受限模式为:
alter system enable restricted session;
授予restricted session权限给用户即可访问受限模式
4、kill session
select sid,serial#,username from v$session; alter system kill session 'sid,serial#';
5、查看未commit的事务
select addr,status from v$transaction;
多种方式的md5加密
一、oracle实现md5加密:
CREATE OR REPLACE function fn_md5(input_string VARCHAR2) return varchar2 IS raw_input RAW(128) := UTL_RAW.CAST_TO_RAW(input_string); decrypted_raw RAW(2048); error_in_input_buffer_length EXCEPTION; BEGIN sys.dbms_obfuscation_toolkit.MD5(input => raw_input,checksum => decrypted_raw); return rawtohex(decrypted_raw); END;
select upper(md5('abc')) from cdb_settings limit 1;
注意问题:在mysql中不知道为什么使用了upper不能转化为大写,尝试了几个编码的mysql库都不行,也许是我mysql版本的问题,先记录下mysql版本
三、Sql Server 实现md5加密:
select hashbytes('MD5', 'abc');
string abc=System.Web.Security.FormsAuthentication. HashPasswordForStoringInConfigFile("abc", "MD5") ; Response.Write(abc);
var hexcase = 0; function hex_md5(a) { return rstr2hex(rstr_md5(str2rstr_utf8(a))) } function hex_hmac_md5(a, b) { return rstr2hex(rstr_hmac_md5(str2rstr_utf8(a), str2rstr_utf8(b))) } function md5_vm_test() { return hex_md5("abc").toLowerCase() == "900150983cd24fb0d6963f7d28e17f72" } function rstr_md5(a) { return binl2rstr(binl_md5(rstr2binl(a), a.length * 8)) } function rstr_hmac_md5(c, f) { var e = rstr2binl(c); if (e.length > 16) { e = binl_md5(e, c.length*8) } var a = Array(16), d = Array(16); for (var b = 0; b < 16; b++) { a[b] = e[b] ^ 909522486; d[b] = e[b] ^ 1549556828 } var g = binl_md5(a.concat(rstr2binl(f)), 512 + f.length * 8); return binl2rstr(binl_md5(d.concat(g), 512 + 128)) } function rstr2hex(c) { try { hexcase } catch (g) { hexcase = 0 } var f = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; var b = ""; var a; for (var d = 0; d < c.length; d++) { a = c.charCodeAt(d); b += f.charAt((a >>> 4) & 15) + f.charAt(a & 15) } return b } function str2rstr_utf8(c) { var b = ""; var d = -1; var a, e; while (++d < c.length) { a = c.charCodeAt(d); e = d + 1 < c.length ? c.charCodeAt(d + 1) : 0; if (55296 <= a && a <= 56319 && 56320 <= e && e <= 57343) { a = 65536 + ((a & 1023) << 10) + (e & 1023); d++ } if (a <= 127) { b += String.fromCharCode(a) } else { if (a <= 2047) { b += String.fromCharCode(192 | ((a >>> 6) & 31), 128 | (a & 63)) } else { if (a <= 65535) { b += String.fromCharCode(224 | ((a >>> 12) & 15), 128 | ((a >>> 6) & 63), 128 | (a & 63)) } else { if (a <= 2097151) { b += String.fromCharCode(240 | ((a >>> 18) & 7), 128 | ((a >>> 12) & 63), 128 | ((a >>> 6) & 63), 128 | (a & 63)) } } } } } return b } function rstr2binl(b) { var a = Array(b.length >> 2); for (var c = 0; c<a.length; c++) { a = 0 } for (var c = 0; c <b.length*8;c =c+8 ) { a |= (b.charCodeAt(c / 8 ) & 255) << (c % 32) } return a } function binl2rstr(b) { var a = ""; for (var c = 0; c<b.length * 32; c=c+8) { a += String.fromCharCode((b >>> (c % 32)) & 255) } return a } function binl_md5(p, k) { p[k >> 5] |= 128 << ((k) % 32); p[(((k + 64) >>> 9) << 4) + 14] = k; var o = 1732584193; var n = -271733879; var m = -1732584194; var l = 271733878; for (var g = 0; g < p.length; g += 16) { var j = o; var h = n; var f = m; var e = l; o = md5_ff(o, n, m, l, p[g + 0], 7, -680876936); l = md5_ff(l, o, n, m, p[g + 1], 12, -389564586); m = md5_ff(m, l, o, n, p[g + 2], 17, 606105819); n = md5_ff(n, m, l, o, p[g + 3], 22, -1044525330); o = md5_ff(o, n, m, l, p[g + 4], 7, -176418897); l = md5_ff(l, o, n, m, p[g + 5], 12, 1200080426); m = md5_ff(m, l, o, n, p[g + 6], 17, -1473231341); n = md5_ff(n, m, l, o, p[g + 7], 22, -45705983); o = md5_ff(o, n, m, l, p[g + 8], 7, 1770035416); l = md5_ff(l, o, n, m, p[g + 9], 12, -1958414417); m = md5_ff(m, l, o, n, p[g + 10], 17, -42063); n = md5_ff(n, m, l, o, p[g + 11], 22, -1990404162); o = md5_ff(o, n, m, l, p[g + 12], 7, 1804603682); l = md5_ff(l, o, n, m, p[g + 13], 12, -40341101); m = md5_ff(m, l, o, n, p[g + 14], 17, -1502002290); n = md5_ff(n, m, l, o, p[g + 15], 22, 1236535329); o = md5_gg(o, n, m, l, p[g + 1], 5, -165796510); l = md5_gg(l, o, n, m, p[g + 6], 9, -1069501632); m = md5_gg(m, l, o, n, p[g + 11], 14, 643717713); n = md5_gg(n, m, l, o, p[g + 0], 20, -373897302); o = md5_gg(o, n, m, l, p[g + 5], 5, -701558691); l = md5_gg(l, o, n, m, p[g + 10], 9, 38016083); m = md5_gg(m, l, o, n, p[g + 15], 14, -660478335); n = md5_gg(n, m, l, o, p[g + 4], 20, -405537848); o = md5_gg(o, n, m, l, p[g + 9], 5, 568446438); l = md5_gg(l, o, n, m, p[g + 14], 9, -1019803690); m = md5_gg(m, l, o, n, p[g + 3], 14, -187363961); n = md5_gg(n, m, l, o, p[g + 8], 20, 1163531501); o = md5_gg(o, n, m, l, p[g + 13], 5, -1444681467); l = md5_gg(l, o, n, m, p[g + 2], 9, -51403784); m = md5_gg(m, l, o, n, p[g + 7], 14, 1735328473); n = md5_gg(n, m, l, o, p[g + 12], 20, -1926607734); o = md5_hh(o, n, m, l, p[g + 5], 4, -378558); l = md5_hh(l, o, n, m, p[g + 8], 11, -2022574463); m = md5_hh(m, l, o, n, p[g + 11], 16, 1839030562); n = md5_hh(n, m, l, o, p[g + 14], 23, -35309556); o = md5_hh(o, n, m, l, p[g + 1], 4, -1530992060); l = md5_hh(l, o, n, m, p[g + 4], 11, 1272893353); m = md5_hh(m, l, o, n, p[g + 7], 16, -155497632); n = md5_hh(n, m, l, o, p[g + 10], 23, -1094730640); o = md5_hh(o, n, m, l, p[g + 13], 4, 681279174); l = md5_hh(l, o, n, m, p[g + 0], 11, -358537222); m = md5_hh(m, l, o, n, p[g + 3], 16, -722521979); n = md5_hh(n, m, l, o, p[g + 6], 23, 76029189); o = md5_hh(o, n, m, l, p[g + 9], 4, -640364487); l = md5_hh(l, o, n, m, p[g + 12], 11, -421815835); m = md5_hh(m, l, o, n, p[g + 15], 16, 530742520); n = md5_hh(n, m, l, o, p[g + 2], 23, -995338651); o = md5_ii(o, n, m, l, p[g + 0], 6, -198630844); l = md5_ii(l, o, n, m, p[g + 7], 10, 1126891415); m = md5_ii(m, l, o, n, p[g + 14], 15, -1416354905); n = md5_ii(n, m, l, o, p[g + 5], 21, -57434055); o = md5_ii(o, n, m, l, p[g + 12], 6, 1700485571); l = md5_ii(l, o, n, m, p[g + 3], 10, -1894986606); m = md5_ii(m, l, o, n, p[g + 10], 15, -1051523); n = md5_ii(n, m, l, o, p[g + 1], 21, -2054922799); o = md5_ii(o, n, m, l, p[g + 8], 6, 1873313359); l = md5_ii(l, o, n, m, p[g + 15], 10, -30611744); m = md5_ii(m, l, o, n, p[g + 6], 15, -1560198380); n = md5_ii(n, m, l, o, p[g + 13], 21, 1309151649); o = md5_ii(o, n, m, l, p[g + 4], 6, -145523070); l = md5_ii(l, o, n, m, p[g + 11], 10, -1120210379); m = md5_ii(m, l, o, n, p[g + 2], 15, 718787259); n = md5_ii(n, m, l, o, p[g + 9], 21, -343485551); o = safe_add(o, j); n = safe_add(n, h); m = safe_add(m, f); l = safe_add(l, e) } return Array(o, n, m, l) } function md5_cmn(h, e, d, c, g, f) { return safe_add(bit_rol(safe_add(safe_add(e, h), safe_add(c, f)), g), d) } function md5_ff(g, f, k, j, e, i, h) { return md5_cmn((f & k) | ((~f) & j), g, f, e, i, h) } function md5_gg(g, f, k, j, e, i, h) { return md5_cmn((f & j) | (k & (~j)), g, f, e, i, h) } function md5_hh(g, f, k, j, e, i, h) { return md5_cmn(f ^ k ^ j, g, f, e, i, h) } function md5_ii(g, f, k, j, e, i, h) { return md5_cmn(k ^ (f | (~j)), g, f, e, i, h) } function safe_add(a, d) { var c = (a & 65535) + (d & 65535); var b = (a >> 16) + (d >> 16) + (c >> 16); return (b << 16) | (c & 65535) } function bit_rol(a, b) { return (a << b) | (a >>> (32 - b)) }
实现:
<script src="md5-min.js" type="text/javascript"></script> <script type="text/javascript"> alert('abc经过md5加密后结果为:\n'+hex_md5('abc')); </script>
echo strtoupper(md5('abc')) ;
oracle之修改跟踪文件
该文件目的:是跟踪自上一个增量备份以来哪些块已经修改。
启用:alter database enable block change tracking using file ‘path+filename’
关闭:alter database disable block change tracking;
注意:1)关闭之后,原来的跟踪文件也被删除(本人在windows上测试没有被删除)
2)开启跟踪会消耗系统不小的资源,要慎重
oracle之password file
1、作用:
允许远程SYSDBA 或管理员访问数据库,如果没有这个文件验证,即使是sysdba权限的用户,也不能在数据库文件没有加载之前登录数据库,让其加载数据库。
2、创建命令:
直接dos或者linux命令行下:orapwd file=
file——密码文件名(必要)。
password——SYS 的密码(必要)。
entries——DBA 和操作员的最大数目(可选)。
force——是否重写现有的文件(可选)。
等号(=)两边没有空格。
注:win下放置在%ORACLE_HOME%\database目录下,文件名为PW%ORACLE_SID%.ora;
linux下放置在$ORACLE_HOME/dbs目录下,文件名为orapw$ORACLE_SID
oracle之存储体系
(1) 数据库由一个或多个表空间组成
(2) 表空间由一个或多个数据文件组成。这些文件可以是文件系统中的cooked 文件、原始分区、ASM管理的数据库文件,或集群文件系统上的文件。表空间包含段。
(3) 段(TABLE、INDEX 等)由一个或多个区段组成。段在表空间中,但是可以包含这个表空间中多个数据文件中的数据。
(4) 区段是磁盘上一组逻辑连续的块。区段只在一个表空间中,而且总是在该表空间内的一个文件中。
(5) 块是数据库中最小的分配单位,也是数据库使用的最小I/O 单位。
(6)oracle中的块是操作系统物理块的整数倍
oracle之trace file
1、设置SQL_TRACE=TRUE,服务器就会生成一个包含性能相关信息的跟踪文件。
2、跟踪文件位置:
如果使用专用服务器连接,会在USER_DUMP_DEST 参数指定的目录中生成跟踪文件;
如果使用共享服务器连接,则在BACKGROUND_DUMP_DEST 参数指定的目录中生成跟踪文件。
可以通过SHOW PARAMETER DUMP_DEST或者select name, value from v$parameter where name like ‘%dump_dest%’来查询
3、获得跟踪文件名(标准格式:_ora_.trc):
select d.value||'/'||lower(rtrim(i.instance,chr(0)))||'_ora_'||p.spid||'.trc' trace_file_name from (select p.spid from v$mystat m, v$session s,v$process p where m.statistic# = 1 and s.sid = m.sid and p.addr = s.paddr ) p, ( select t.instance from v$thread t,v$parameter v where v.name = 'thread' and (v.value = 0 or t.thread# = to_number(v.value))) i, ( select value from v$parameter where name = 'user_dump_dest') d;
oracle之spfile
1、在修改spfile命令如:
Alter system set parameter=value <comment=’text’> <deferred>
<scope=memory|spfile|both> <sid=’sid|*’>
说明:comment表示说明,deferred表示重启后生效
2、查询哪些参数在修改时,必须使用deferred参数
select name from v$parameter where issys_modifiable=’DEFERRED’;
在10g中的结果是:
backup_tape_io_slaves
audit_file_dest
object_cache_optimal_size
object_cache_max_size_percent
sort_area_size
sort_area_retained_size
olap_page_pool_size
3、取消spfile中值的设置
Alter system reset parameter
说明:这里的sid不能省略
4、查看oracle使用spfile还是pfile
Select isspecified,count(*) from v$spparameter group by isspecified;
如果isspecified里有true,表明用spfile进行了指定配置
如果全为false,则表明用pfile启动
mysql数据管理
本人的兴趣一直都是oracle数据库的管理,最近公司上电子商务系统,现在还处于测试状态,不出意外应该没有大问题,因为程序是 php+mysql的,这就涉及到程序的维护、数据库的维护和管理。虽然mysql数据库在一般情况下,直接复制数据库下的data文件夹下面的数据库名 的文件夹可以备份
如 上图,这里我选中的每一文件夹其实是mysql数据库的一个数据库,只要直接复制就可以备份相应的数据库了,但是考虑到系统实时性可能比较高,如果这样备 份,肯定会导致数据的丢失,还有就是因为系统里面的数据库有60多张表,一张表又有三个文件,如果数据量大的时候,备份起来时间比较长
所有决定写一个脚本使用命令mysqldump+windows系统的任务自动定时执行备份,并实现为了方便转移,打包压缩功能
@echo off echo 批发网中文版和英文版数据库备份 echo. echo 程序启动时间:%date% %time% echo. set "Name=%date:~,4%%date:~5,2%%date:~8,2%_%random%" set "Path=e:\MySql_BackUp\%Name%" md %Path% echo 保存备份数据库文件路径为:%Path% echo *********************************************************** echo. echo %time%:开始备份db_glasses_en数据库…… echo. e:\AppServ\MySQL\bin\mysqldump --opt -u root --password=4020894 -F -B --default-character-set=utf8 db_glasses_en_bak > %Path%\db_glasses_en_bak.sql echo 文件:%Path%\db_glasses_en_bak.sql echo %time%:db_glasses_en数据库备份完成 echo. echo *********************************************************** echo. echo %time%:开始备份db_glasses_cn数据库…… echo. e:\AppServ\MySQL\bin\mysqldump --opt -u root --password=4020894 -F -B --default-character-set=utf8 db_glasses_cn > %Path%\db_glasses_cn_bak.sql echo 文件:%Path%\db_glasses_cn_bak.sql echo %time%:db_glasses_cn数据库备份完成 echo. echo *********************************************************** echo. echo 批发网中英文数据库备份完成…… echo. echo *********************************************************** echo. echo %time%:备份数据库进行压缩…… cd C:\Program Files\WinRAR WinRAR.exe a -m5 e:\MySql_BackUp\%Name%.rar %Path% echo. echo %time%:e:\MySql_BackUp\%Name%.rar压缩完成 echo 请检查文件并做好数据转移…… echo. echo 程序结束时间:%date% %time% echo. echo *********************************************************** pause
通过上面的脚本实现数据库的备份,结果如下图:
上图即为执行备份后的结果,至于mysql的备份命令mysqldump的相关参数请见mysql的相关文档。
补充说明:
在 mssql里面日志是自动启动的;在oracle归档日志默认情况下是关闭的,可以在mount模式下,使用alter database archivelog开启重做日志归档模式;在mysql中,日志默认情况下也是关闭的,但是它是通过修改my.ini配置文件实现修改的,具体参数如 下:
log-bin=F:\AppServ\MySQL\log\log_bin.log
log=F:\AppServ\MySQL\log\log.log
log-update= F:\AppServ\MySQL\log\update.log
log-slow-queries=F:\AppServ\MySQL\log\mysql-slow.log
log-error=F:\AppServ\MySQL\log\error.log
各日志参数说明:
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin
注:如果日志参数后面直接跟文件名,那日志文件会放置在mysql/data文件夹下