ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>在线免费观看黄色片,不卡av日日日,精品久久久香蕉免费精品视频http://www.aygfsteel.com/zongbao/zh-cnSun, 13 Jul 2025 05:15:36 GMTSun, 13 Jul 2025 05:15:36 GMT60数据库对è±?-索引http://www.aygfsteel.com/zongbao/archive/2012/08/18/385751.html地心引力地心引力Sat, 18 Aug 2012 15:09:00 GMThttp://www.aygfsteel.com/zongbao/archive/2012/08/18/385751.htmlhttp://www.aygfsteel.com/zongbao/comments/385751.htmlhttp://www.aygfsteel.com/zongbao/archive/2012/08/18/385751.html#Feedback0http://www.aygfsteel.com/zongbao/comments/commentRss/385751.htmlhttp://www.aygfsteel.com/zongbao/services/trackbacks/385751.html什么是索引?

    提è“v索引,应该不会(x¨¬)感到陌生,若说它就是目å½?/span>,大概都知道了,æ•°æ®åº“çš„ç´¢å¼•ä¸Žä¹¦çš„ç›®å½•å¾ˆç›æ€¼¼,都叫index.书的内容相当于数据库表中的数æ?/span>,ä¹?/span>的目录通过™å늠æŒ‡å‘书的内容,同样,索引也记录了表中的关键å€?/span>,提供了指向表中行的指é’?/span>.书的目录使读者很快的扑ֈ°æƒ³çœ‹çš„内å®?/span>,而不必翻看书的每一™å?/span>,索引使得数据库应用程序能够不扫描全表而找到想要的数据.

 

索引是不是多多益�/span>?

    索引可以创徏在一列或多列的组合上,也可以在数据库表的多个列上徏立不同的索引,ä½†è¿™äº›åˆ—åº”è¯¥æ˜¯ç»å¸æ€½œä¸ºæŸ¥è¯¢æ¡ä»¶çš„åˆ?/span>.需要指出的æ˜?/span>,òq¶ä¸æ˜¯è¡¨ä¸Šçš„索引­‘Šå¤š­‘Šå¥½,在数据库设计˜q‡ç¨‹ä¸­ï¼Œ˜q˜æ˜¯éœ€è¦äØ“(f¨´)表选择一些合适的索引。宁¾~ºå‹¿çƒ‚,˜q™æ˜¯å»ºç«‹ç´¢å¼•时的一个具体选择。在理论上,虽然一个表可以讄¡½®æ— é™çš„烦引,ä½?/span>表中的烦引越多,¾l´æŠ¤ç´¢å¼•所需要的开销也就­‘Šå¤§ã€‚每当数据表中记录有增加、删除、更新变化的时候,数据库系¾lŸéƒ½éœ€è¦å¯¹æ‰€æœ‰çƒ¦å¼•进行更新ã€?/span>

 

索引的分¾c?/p>

    ç´¢å¼•å¯ä»¥åˆ†äØ“(f¨´)三类:聚集索引(clustered index),非聚集烦å¼?/span>,唯一性烦å¼?/span>(unique index).æ ÒŽ(gu¨©)®ç´¢å¼•字段¾l„成又有复合索引的说æ³?/span>,复合索引可以是唯一索引也可以不是唯一索引.一个表上最多创å»ÞZ¸€ä¸ªèšé›†çƒ¦å¼•å’Œ249个非聚集索引.

 

创徏索引的条�/p>

åQ?åQ‰äØ“(f¨´)¾lå¸¸å‡ºçŽ°åœ¨å…³é”®å­—orderby、group by、distinct后面的字ŒDµï¼Œå»ºç«‹ç´¢å¼•ã€?/p>

åQ?åQ‰åœ¨union½{‰é›†åˆæ“ä½œçš„¾l“果集字ŒDµä¸ŠåQŒå¾ç«‹çƒ¦å¼•ã€?/p>

åQ?åQ‰äØ“(f¨´)¾lå¸¸ç”¨ä½œæŸ¥è¯¢é€‰æ‹©çš„å­—ŒDµï¼Œå»ºç«‹ç´¢å¼•ã€?/p>

åQ?åQ‰åœ¨¾lå¸¸ç”¨ä½œè¡¨è¿žæŽ¥çš„属性上åQŒå¾ç«‹çƒ¦å¼•ã€?/p>

åQ?åQ‰è€ƒè™‘使用索引覆盖。对数据很少被更新的表,如果用户¾lå¸¸åªæŸ¥è¯¢å…¶ä¸­çš„几个字段åQŒå¯ä»¥è€ƒè™‘在这几个字段上徏立烦引,从而将表的扫描改变为烦引的扫描ã€?/p>

 

创徏索引的限�/p>

åQ?åQ‰é™åˆ¶çƒ¦å¼•æ•°ç›®ã€?/p>

 (2)唯一性太差的字段不适合单独创徏索引åQ?/p>

 (3)更新频繁的字ŒDµä¸é€‚合创徏索引åQ?/p>

 (4)不会(x¨¬)åšäØ“(f¨´)查询条äšg的字ŒDµä¸åˆ›å¾ç´¢å¼•



]]>
数据库对è±?-存储˜q‡ç¨‹å’Œè§¦å‘器http://www.aygfsteel.com/zongbao/archive/2012/08/18/385752.html地心引力地心引力Sat, 18 Aug 2012 15:09:00 GMThttp://www.aygfsteel.com/zongbao/archive/2012/08/18/385752.htmlhttp://www.aygfsteel.com/zongbao/comments/385752.htmlhttp://www.aygfsteel.com/zongbao/archive/2012/08/18/385752.html#Feedback0http://www.aygfsteel.com/zongbao/comments/commentRss/385752.htmlhttp://www.aygfsteel.com/zongbao/services/trackbacks/385752.html      å­˜å‚¨˜q‡ç¨‹å’Œè§¦å‘器都是一¾l?/span>SQL语句集合,他们在数据库开发过½E‹ä¸­,在对数据库的¾l´æŠ¤å’Œç®¡ç†ç­‰ä»ÕdŠ¡ä¸?/span>,以及(qi¨¢ng)在维护数据库参照完整性等斚w¢,å…ähœ‰ä¸å¯æ›¿ä»£çš„作ç”?/span>.而触发器是一¿Uç‰¹ŒDŠçš„存储˜q‡ç¨‹,存储˜q‡ç¨‹ç‹¬ç«‹äºŽè¡¨,å…ähœ‰è®‰K—®å’Œæ“¾U‰|•°æ®åº“数据的功èƒ?/span>,使应用程序执行效率得到进一步提é«?/span>.触发器也æ˜?/span>T_SQL语句的集å?/span>,它与表密切结å?/span>,å®žçŽ°è¡¨ä¸­æ›´äØ“(f¨´)复杂的业务规åˆ?/span>.

         å­˜å‚¨˜q‡ç¨‹æ˜¯ä»¥ä¸€ä¸ªåå­—存储在数据库中çš?/span>,¾lè¿‡é¢„编译的T_SQL语句集合,可以独立执行或通过应用½E‹åºçš„调用来执行.


        è§¦å‘器是不由用户直接调用çš?/span>,而是在对表或视图中数据进è¡?/span>update,insert或è€?/span>delete操作时自动执è¡?/span>.一个表或视囑֏¯ä»¥æœ‰å¤šä¸ªè§¦å‘å™?/span>,每个触发器可以包含复杂的SQL语句.数据库表之间的引用完整性约æ?/span>,除了可以采用主键和外键的对应¾U¦æŸæ¥å®žçŽîC¹‹å¤?/span>,˜q˜å¯ä»¥ä‹É用触发器,从而实现更复杂的用户定义完整性约æ?/span>.

    



]]>
Oralce SQL语言常用函数http://www.aygfsteel.com/zongbao/archive/2012/08/18/385749.html地心引力地心引力Sat, 18 Aug 2012 15:08:00 GMThttp://www.aygfsteel.com/zongbao/archive/2012/08/18/385749.htmlhttp://www.aygfsteel.com/zongbao/comments/385749.htmlhttp://www.aygfsteel.com/zongbao/archive/2012/08/18/385749.html#Feedback0http://www.aygfsteel.com/zongbao/comments/commentRss/385749.htmlhttp://www.aygfsteel.com/zongbao/services/trackbacks/385749.html字符函数

˜q™ä¸ªå‡½æ•°ä¸€èˆ¬æŽ¥æ”¶å­—½W¦ä½œä¸ºå‚敎ͼŒòq¶ä¸”可以˜q”回字符或数å­?/span>

其中最常用有以下两个函�/span>


1.CONCAT函数

主要用于字符串的˜qžæŽ¥åQŒå…·ä½“语法如ä¸?/span>

CONCATåQˆc1,c2åQ?/span>

接收两个参数åQŒå°†½W¬äºŒä¸ªå‚数连接到½W¬ä¸€ä¸ªå‚数的末尾åQŒå‡å¦‚第二个参数是NULLåQ?/span>

则函数返回第一个参敎ͼŒå‡å¦‚½W¬ä¸€ä¸ªå‚数是NULLåQŒåˆ™å‚æ•°˜q”回½W¬äºŒä¸ªå‚敎ͼŒ

å‡å¦‚éƒ½äØ“(f¨´)NULLåQŒåˆ™å‡½æ•°˜q”回NULL


为商品ä­h(hu¨¢n)格添加元单位½CÞZ¾‹å¦‚下åQ?br />



2.NVL函数

˜q™ä¸ªå‡½æ•°ä¸»è¦ç”¨äºŽå‡½æ•°æ›¿æ¢

NVL(e1,e2)

接收两个参数åQŒå‡å¦‚第一个参æ•îC¸ä¸ºNULLæ—Óž¼Œå‡½æ•°˜q”回½W¬ä¸€ä¸ªå‚敎ͼŒ

假如½W¬ä¸€ä¸ªå‚æ•îCØ“(f¨´)NULLæ—Óž¼Œå‡½æ•°˜q”回½W¬äºŒä¸ªå‚æ•?/span>

具体的ä‹É用示例如下:(x¨¬)

查询商品表的相关信息åQŒå¯¹æ²¡æœ‰è¯¦ç»†ä»‹ç»çš„商品默认设¾|®æ˜¾½C?#8220;暂无详细描述”


可ä‹É用暂无详¾l†æ˜q°æ¥ä»£æ›¿NULL


字符常用函数˜q˜æœ‰å¾ˆå¤šåQŒå¸Œæœ›å¤§å®¶èƒ½åœ¨æˆ‘的基¼‹€ä¸Šè¯„è®ø™¡¥å…?/span>



]]>
熟æ?zh¨¨n)‰æŽŒæ¡Oracle SQL语言http://www.aygfsteel.com/zongbao/archive/2012/08/18/385750.html地心引力地心引力Sat, 18 Aug 2012 15:08:00 GMThttp://www.aygfsteel.com/zongbao/archive/2012/08/18/385750.htmlhttp://www.aygfsteel.com/zongbao/comments/385750.htmlhttp://www.aygfsteel.com/zongbao/archive/2012/08/18/385750.html#Feedback0http://www.aygfsteel.com/zongbao/comments/commentRss/385750.htmlhttp://www.aygfsteel.com/zongbao/services/trackbacks/385750.htmlSQL语言是一¿Ué«˜¾U§çš„非过½E‹åŒ–的查询语­a€åQŒç”¨æˆ·ä‹É用它主要˜q›è¡Œæ•°æ®åº“的操作

可以把SQL语言看成是客æˆïL(f¨¥ng)«¯ä¸ŽæœåŠ¡å™¨ç«¯æ²Ÿé€šçš„ä¸€ä¸ªå·¥å…øP¼Œç”¨æ¥å­˜å–åQŒæŸ¥è¯¢å’Œæ›´æ–°åQŒå…³¾pÀL•°æ®åº“¾pȝ»Ÿ


Insert语句

INSERT语句的语法结构如下:(x¨¬)


table值的是要插入数据的表的表名,Column指的是要插入数据的列名,Value指的是要插入的具体数据�/span>


例如往ä¼?x¨¬)员表中插入一个新的会(x¨¬)员数据,可以˜q™æ ·æ·ÕdŠ åQ?/span>


前者的优点是可以指定哪些字ŒD‰|·»åŠ å“ªäº›æ•°æ®ï¼Œ¾~ºç‚¹æ˜¯è¡¨ååŽé¢çš„ž®æ‹¬å·ä¸­çš„å­—ŒDµåéœ€è¦å’ŒValue值相对照

后者的优点是书写简单,¾~ºç‚¹æ˜¯è¦æŠŠæ‰€æœ‰çš„字段都在Value中进行赋å€?/span>

当需要插入数据包含有½Iºå€¼çš„æ—¶å€™ï¼Œä¸€èˆ¬ä‹É用第一¿Uæ–¹æ³•,而第二种æ–ÒŽ(gu¨©)³•˜q›è¡Œæ’入需要ä‹É用NULL关键字进行填å…?/span>


假如插入的数据包含时é—ß_(d¨¢)¼Œè€Œä¸”æ—‰™—´æ˜¯å½“前的旉™—´åQ?/span>



假如插入的是旉™—´åQŒåƈ且时间是某个具体的时é—ß_(d¨¢)¼Œæˆ‘们可以ž®†ä¸Š˜q°çš„语句˜q›è¡Œä¿®æ”¹å¦‚下åQ?/span>


以上操作的都是单行的数据åQŒè€Œä¸‹é¢çš„æ“ä½œæ˜¯å¤šè¡Œçš„æ•°æ®


插入多行数据½CÞZ¾‹å¦‚下åQ?br />



UPDATE语句

UPDATE语句¾l“构如下åQ?/span>



如初始化所有会(x¨¬)员密码:(x¨¬)



按条件更斎ͼš(x¨¬)



做更新操作的时候,W(xu¨¦)HERE条äšg一般选择¾cÖM¼¼ä¸»é”®˜q™æ ·æœ‰å”¯ä¸€æ€§çº¦æŸçš„字段åQŒé™¤éžç‰¹ŒDŠæƒ…况,

否则的话ä¼?x¨¬)引èµäh„æƒ³ä¸åˆ°çš„误操作,比如更新用户表时以nameä½œäØ“(f¨´)条äšg的话åQŒå°±ååˆ†å±é™©åQ?/span>

因䨓(f¨´)名字是可以重复的


Select语句

我们å¯ÒŽ(gu¨©)•°æ®åº“做得最多的操作是数据检ç´?/span>

select语句ž®±æ˜¾å¾—极光™‡è¦?/span>

其中最½Ž€å•的查询实例如下åQ?/span>


*指的是所有列


而查询所有VIP数据如下åQ?/span>



查询两个条äšg同时成立的示例如下:(x¨¬)



查询两个条äšg成立其中一个,½CÞZ¾‹å¦‚下åQ?/span>



查询条äšg为空的示例如下:(x¨¬)



当要查询ä¼?x¨¬)员中所有姓李的ä¼?x¨¬)员æ—Óž¼Œéœ€è¦ç”¨åˆ°æ¨¡¾pŠæŸ¥è¯¢ï¼š(x¨¬)


% 能匹é…?到多个字½W?/span>

_ 能ä“Q意匹配单个字½W?/span>


查询商品表中ä»äh ¼åœ?00-400之间的商品数æ?



而查询会(x¨¬)员表中张三、李四、王五的信息æ–ÒŽ(gu¨©)³•如下åQ?/span>



使用别名查询åQ?/span>



其中查询中可能需要对查询的结果进行排序,其结构如下:(x¨¬)



查询商品表,按上架时间进行排序:(x¨¬)



如果惛_Ž»æŽ‰æŸ¥è¯¢ç»“æžœä¸­çš„é‡å¤æ•°æ®ï¼Œå¯ä»¥ä½¿ç”¨Distinction关键字,如下



Delete语句

语法¾l“构如下


其中的table å’?condition在上面已¾læœ‰æåŠ(qi¨¢ng)

删除½CÞZ¾‹å¦‚下


在实际操作中我们应该使用假删除,ž®±æ˜¯å†å¢žåŠ ä¸€ä¸ªçŠ¶æ€ï¼ˆä¸€èˆ¬äØ“(f¨´)statusåQ‰çš„字段

在删除错误之后,我们可以�ROLLBACK来回滚事�/span>



]]>
学习(f¨¤n)oracle¾U¦æŸhttp://www.aygfsteel.com/zongbao/archive/2012/08/18/385748.html地心引力地心引力Sat, 18 Aug 2012 15:07:00 GMThttp://www.aygfsteel.com/zongbao/archive/2012/08/18/385748.htmlhttp://www.aygfsteel.com/zongbao/comments/385748.htmlhttp://www.aygfsteel.com/zongbao/archive/2012/08/18/385748.html#Feedback0http://www.aygfsteel.com/zongbao/comments/commentRss/385748.htmlhttp://www.aygfsteel.com/zongbao/services/trackbacks/385748.html阅读全文

]]>
Linuxæ–‡äšg权限的那些事http://www.aygfsteel.com/zongbao/archive/2012/08/08/385096.html地心引力地心引力Wed, 08 Aug 2012 15:41:00 GMThttp://www.aygfsteel.com/zongbao/archive/2012/08/08/385096.htmlhttp://www.aygfsteel.com/zongbao/comments/385096.htmlhttp://www.aygfsteel.com/zongbao/archive/2012/08/08/385096.html#Feedback0http://www.aygfsteel.com/zongbao/comments/commentRss/385096.htmlhttp://www.aygfsteel.com/zongbao/services/trackbacks/385096.htmllinux是一个多用户åQŒå¤šä»ÕdŠ¡çš„æ“ä½œç³»¾lŸï¼Œå¯¹äºŽæ¯ä¸€ä¸ªæ–‡ä»¶å®ƒçš„属性中都包括:(x¨¬)æ–‡äšg所有è€?owner)åQŒæ–‡ä»¶æ‰€å±žç»„(group)åQŒå…¶ä»–用æˆ?other),˜q˜å¿…™åÕd…·å¤‡ä¸Ž˜q™ä¸‰ä¸ªè§’色对应的读,写,执行的权限,如下图:(x¨¬)

在tmp目录下面有一个a.txtæ–‡äšgåQŒæˆ‘们通过ls -l命ä×o(h¨´)可以查看其详¾l†ä¿¡æ¯ï¼š(x¨¬)

-åQšè¡¨½Cºæ™®é€šæ–‡ä»Óž¼Œd:表示目录文äšgåQŒl:链接文äšg,b:讑֤‡æ–‡äšg中可以供存储的接口设å¤?c:讑֤‡æ–‡äšg中串行端口设备如键盘ã€?/p>

ç”׃ºŽæœ€å‰é¢æ˜?åQ𿉀以a.txt是普通文件ã€?/p>

再看  rw-r--r--部分åQŒæˆ‘们将其分ä¸ÞZ¸‰¾l„,分别对应文äšg所有者,文äšg所属组åQŒå…¶ä»–用æˆïL(f¨¥ng)š„æƒé™.

其中r代表è¯Õd–权限åQŒw:代表写权限,xåQšä»£è¡¨æ‰§è¡Œæƒé™?˜q™é‡Œæ²¡å‡ºçŽ?,-åQšä»£è¡¨æ²¡æœ‰æŸ¿Uæƒé™ã€?/p>

那对上面的权限的解释ž®±æ˜¯åQ?/p>

owner:可以è¯Õd’Œå†™ï¼Œä¸èƒ½æ‰§è¡Œ

group:可以è¯Õd–不能写,不能执行

other:可以è¯Õd–åQŒä¸èƒ½å†™åQŒä¸èƒ½æ‰§è¡?/p>

 

½W¬ä¸€ä¸ªroot代表文äšg所有者,½W¬äºŒä¸ªroot代表文äšg所属组

那么现在我如果想修改文äšg所有者,文äšg所属组åQŒæ–‡ä»¶æƒé™è¯¥æ€Žä¹ˆåšï¼Œè¯ïL(f¨¥ng)‘ô¾l­å‘下阅读:(x¨¬)

chgrp:修改用户所属组åQŒchownåQšä¿®æ”ÒŽ(gu¨©)–‡ä»¶æ‰€æœ‰è€…,chmod:修改文äšg权限

 

假设我的¾pȝ»Ÿä¸­åˆä¸€ä¸ªå«gavin的组(通过/etc/group查看)

如上图,通过chgrp命ä×o(h¨´)ž®†è¯¥æ–‡äšgçš„group修改ä¸ÞZº†gavin

下面修改其所有者:(x¨¬)

 

修改其权限:(x¨¬)

 

chmod  777 a.txt   ˜q™ä¸ª777代表什ä¹?

在linux中ä‹É用数字代表权限:(x¨¬)

r:4 w:2 x:1

r--   =4+0+0=4;

rw- =4+2+0=6;

rwx =4+2+1=7

ç›æ€¿¡å†™åˆ°˜q™é‡Œå¤§å®¶éƒ½åº”该明白了吧ã€?/p>

 

权限对于文äšg和文件夹的意义是不一æ ïL(f¨¥ng)š„åQ?/p>

对于文äšgåQ?/p>

r:代表可以è¯Õd–æ–‡äšg的内容,w:代表可以修改文äšg的内容,x:可以执行˜q™ä¸ªæ–‡äšg

对于文äšg夹:(x¨¬)

r:可以获取文äšg夹中又哪些文ä»Óž¼Œw:可以æ·ÕdŠ å’Œåˆ é™¤æ–‡ä»¶å¤¹ä¸­çš„å†…å®¹åQŒx:可以˜q›å…¥æ–‡äšg夹,

如果某个角色对于一个文件夹的权限是rw-;

那么他仅仅可以ä‹É用ls获取文äšg夹中的内容,但是不可以ä‹É用cd˜q›å…¥è¯¥æ–‡ä»¶å¤¹ã€?/p>

 

 

 

æ–‡äšg的权限告一ŒDµè½åQŒçŽ°åœ¨æ¥çœ‹çœ‹linux中的那些常见目录中的内容åQ?/p>

/bin   ¾pȝ»Ÿæœ‰å¾ˆå¤šæ”¾¾|®æ‰§è¡Œæ–‡ä»¶çš„目录åQŒä½†æ˜?bin比较ç‰ÒŽ(gu¨©)®ŠåQŒå› ä¸?bin攄¡½®çš„æ˜¯åœ¨å•用户¾l´æŠ¤æ¨¡å¼ä¸‹è¿˜èƒ½å¤Ÿè¢«æ“ä½œçš„命ä×o(h¨´)åQŒåœ¨/bin下面的命令可以被root和一般è̎户ä‹É用,如:(x¨¬)cat,chmod,chown,data,mv,mkdir,cp ,bash½{‰å¸¸ç”¨å‘½ä»¤ã€?/p>

/boot  主要攄¡½®å¼€æœÞZ‹É用到的文ä»?/p>

/dev  在linux¾pȝ»Ÿä¸­ä“Q何设备与接口讑֤‡éƒ½æ˜¯ä»¥æ–‡ä»¶çš„形式存在于这个目录当中,你只要访问某个文件就相当于访问该讑֤‡

/etc  ¾pȝ»Ÿçš„主要配¾|®æ–‡ä»¶å‡ ä¹Žéƒ½åœ¨è¿™ä¸ªæ–‡ä»¶å¤¹¾c…R€?/p>

/home ˜q™æ˜¯¾pȝ»Ÿé»˜è®¤çš„用户主文äšgå¤?/p>

/lib ¾pȝ»Ÿçš„函数库非常多,äº?lib攄¡½®çš„æ˜¯å¼€æœÞZ¼š(x¨¬)使用到的函数åº?/p>

/mnt 如果你想临时挂在一些外部设备(光盘åQ‰ä¸€èˆ¬å¾è®®æ”¾¾|®åˆ°˜q™ä¸ªç›®å½•ã€?/p>

/opt ˜q™æ˜¯¾l™ç¬¬ä¸‰æ–¹è½¯äšg攄¡½®çš„ç›®å½?/p>

/root ¾pȝ»Ÿ½Ž¡ç†å‘˜çš„ä¸ÀL–‡ä»¶å¤¹

/tmp ˜q™æ˜¯è®©ä¸€èˆ¬ç”¨æˆähˆ–者正在执行的½E‹åºæ”„¡½®æ–‡äšg的地方,˜q™ä¸ªç›®å½•是ä“Q何äh都可以访问的åQŒæ‰€ä»¥ä½ éœ€è¦å®šæœŸæ¸…理一下,当然重要数据时不能放到这里来的ã€?/p>

 

 

关于文äšg权限的最后一点就是:(x¨¬)æ–‡äšg默认权限umask

现在我们已经知道如何新徏或者改变一个目录的属性了åQŒä¸˜q‡ä½ çŸ¥é“当你新徏一个新的文件或则目录是åQŒå®ƒçš„默认权限是什么吗åQŸé‚£ž®±æ˜¯äºŽumask˜q™ä¸œè¥¿æœ‰å…³äº†åQŒé‚£ä¹ˆumask是在搞什么呢åQŒåŸºæœ¬ä¸ŠåQŒumaskž®±æ˜¯åˆ¶å®šç›®å‰ç”¨æˆ·åœ¨æ–°å»ºæ–‡ä»¶æˆ–目录的时候权限的默认å€û|¼Œå¦‚果获得或设¾|®umaskåQŒæ–¹æ³•如下:(x¨¬)

#umask  或则  umask -S

(四位敎ͼŒ½W¬ä¸€ä½æˆ‘们先不管åQŒè¡¨½Cºç‰¹ŒDŠæƒé™ï¼Œæˆ‘们从第二位开始看èµ?

在默认权限上åQŒæ–‡ä»¶å’Œç›®å½•是不一æ ïL(f¨¥ng)š„åQŒå¯¹äºŽä¸€ä¸ªç›®å½•,x权限是非帔R‡è¦çš„ åQŒè€Œå¯¹äºŽä¸€ä¸ªæ–‡ä»Óž¼Œxæƒé™åœ¨é»˜è®¤æ˜¯ä¸åº”è¯¥æœ‰çš„ï¼Œå› äØ“(f¨´)æ–‡äšg大多是用来存储数据的åQŒæ‰€ä»¥åœ¨linux中,文äšg的默认权限是666,目录的默认权限是777

 

 

要注意的是umask的分数指的是“默认值需要剪掉的权限”,

所以新建文件时权限åQšrw--r--r--

新徏目录åQšr-xr-xr-x



]]>
判断一个字½W¦ä¸²æ˜¯å¦æ˜¯å›žæ–?/title><link>http://www.aygfsteel.com/zongbao/archive/2012/08/08/385095.html</link><dc:creator>地心引力</dc:creator><author>地心引力</author><pubDate>Wed, 08 Aug 2012 15:40:00 GMT</pubDate><guid>http://www.aygfsteel.com/zongbao/archive/2012/08/08/385095.html</guid><wfw:comment>http://www.aygfsteel.com/zongbao/comments/385095.html</wfw:comment><comments>http://www.aygfsteel.com/zongbao/archive/2012/08/08/385095.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zongbao/comments/commentRss/385095.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zongbao/services/trackbacks/385095.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include <stdio.h><br />#include <stdlib.h><br /><br /><span style="color: #008000; ">/*</span><span style="color: #008000; ">判断用户输入的字½W¦ä¸²æ˜¯å¦ä¸ºå›žæ–?br /> *回文是指™åø™¯»å’Œåè¯»éƒ½ä¸€æ ïL(f¨¥ng)š„ä¸?br /> *ä¾?abccba为回文,abcdab不是回文<br /></span><span style="color: #008000; ">*/</span><br /><br /><span style="color: #0000FF; ">int</span> Palindrome(<span style="color: #0000FF; ">const</span> <span style="color: #0000FF; ">char</span> *str)<br />{<br />    <span style="color: #0000FF; ">int</span> length = strlen(str);<br />    <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> i = 0; i <= length/2; i++)<br />    {<br />        <span style="color: #0000FF; ">if</span>(str[i] != str[length-i-1])<br />        {<br />            <span style="color: #0000FF; ">return</span> -1;<br />        }<br />    }<br />    <span style="color: #0000FF; ">return</span> 1;<br />}<br /><br /><span style="color: #0000FF; ">int</span> main()<br />{<br />    <span style="color: #0000FF; ">char</span> s[100];<br />    gets(s);<br />    <span style="color: #0000FF; ">int</span> result = Palindrome(s);<br />    <span style="color: #0000FF; ">if</span>(result == 1)<br />    {<br />        printf("字符串是回文");<br />    }<br />    <span style="color: #0000FF; ">else</span><br />    {<br />        printf("字符串不是回æ–?);<br />    }<br />}<br /><br /><br /> </div><img src ="http://www.aygfsteel.com/zongbao/aggbug/385095.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zongbao/" target="_blank">地心引力</a> 2012-08-08 23:40 <a href="http://www.aygfsteel.com/zongbao/archive/2012/08/08/385095.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>直接选择排序http://www.aygfsteel.com/zongbao/archive/2012/08/08/385094.html地心引力地心引力Wed, 08 Aug 2012 15:39:00 GMThttp://www.aygfsteel.com/zongbao/archive/2012/08/08/385094.htmlhttp://www.aygfsteel.com/zongbao/comments/385094.htmlhttp://www.aygfsteel.com/zongbao/archive/2012/08/08/385094.html#Feedback0http://www.aygfsteel.com/zongbao/comments/commentRss/385094.htmlhttp://www.aygfsteel.com/zongbao/services/trackbacks/385094.htmlpackage com.xtfggef;

public class SelectSort {

    /**
     * 
@param args
     
*/
    public static void main(String[] args) {
        int[] data = new int[]{2,3,4,1,9,8};
        System.out.println("before sorted:");
        for(int k=0; k<data.length; k++){
            System.out.print(data[k]+" ");
        }
        System.out.println();
        int length = data.length;
        for(int i=0; i<length-1; i++){
            int flag = i;
            for(int j=i+1; j<length; j++){
                if(data[flag]>data[j]){
                    flag = j;
                }
            }
            if(flag!=i){
                int temp=0;
                temp=data[i];
                data[i]=data[flag];
                data[flag]=temp;
            }
        }
        System.out.println("after sorted:");
        for(int h=0; h<data.length; h++){
            System.out.print(data[h]+" ");
        }
        System.out.println();
    }

}

]]>
Oracle学习(f¨¤n)åQˆå•行函敎ͼ‰http://www.aygfsteel.com/zongbao/archive/2012/08/01/384561.html地心引力地心引力Wed, 01 Aug 2012 14:05:00 GMThttp://www.aygfsteel.com/zongbao/archive/2012/08/01/384561.htmlhttp://www.aygfsteel.com/zongbao/comments/384561.htmlhttp://www.aygfsteel.com/zongbao/archive/2012/08/01/384561.html#Feedback0http://www.aygfsteel.com/zongbao/comments/commentRss/384561.htmlhttp://www.aygfsteel.com/zongbao/services/trackbacks/384561.html一.单行函数介绍

---单行函数对单行操�/span>

---每行˜q”回一个结æž?/span>

---有可能返回å€ég¸ŽåŽŸå‚æ•°æ•°æ®ç±»åž‹ä¸ä¸€è‡?转换函数)

---单行函数可以写在SELECT,WHERE,ORDER BY子句�/span>

---有些函数没有参数åQŒæœ‰äº›å‡½æ•°æœ‰ä¸€ä¸ªæˆ–多个参数

---函数可以嵌套

分类åQ?/span>字符函数åQŒæ•°å­—函敎ͼŒæ—¥æœŸå‡½æ•°åQŒè{换函敎ͼŒé€šç”¨å‡½æ•°


�字符函数

1.½Ž€ä»?/span>

定义åQ?/span>主要指参数类型是字符型,不同函数˜q”回值可能是字符或数字类åž?/span>

<1>.LOWERåQšå…¨ž®å†™

       LOWER('SQL Course')——>sql course

<2>.UPPERåQšå…¨å¤§å†™

       UPPER('SQL Course')——>SQL COURSE

<3>.INITCAPåQšé¦–字母大写

       INITCAP('SQL Course')——>Sql course

<4>.CONCATåQšå­—½W¦ä¸²˜qžæŽ¥

       CONCAT('Good','String')——>GoodString

<5>.SUBSTRåQšå­—½W¦ä¸²æˆªå–

       SUBSTR('String',1,3)——>Str

<6>.LENGTHåQšè¿”回字½W¦ä¸²é•¿åº¦

       LENGTH('String')——>6

<7>.INSTRåQšè¿”回一个字½W¦ä¸²åœ¨å¦ä¸€ä¸ªå­—½W¦ä¸²ä¸­çš„位置

       INSTR('String','r')——>3

<8>.LPADåQšå·¦å¡«å……

       LPAD(sal,10,'*')——>******5000

<9>.RPADåQšå³å¡«å……

        RPAD(sal,10,'*')——>5000******

<10>.TRIMåQšåŽ»æŽ‰å·¦å³ä¸¤è¾ÒŽ(gu¨©)Œ‡å®šå­—½W?/span>

         TRIM('S' FROM 'SSMITH')——>MITH

<11>.REPLACE:替换字符�/span>

         REPLACE('abc','b','d')——>adc


�数字函数

<1>.ROUND:四舍五入函数

       ROUND(12.3)——>12

       ROUND(12.5)——>13

<2>.TRUNC:截断函数

       TRUNC(65.654,0)——>65

       TRUNC(65.654,-1)——>60

<3>.MOD:取余函数

       MOD(10,12)——>10

       MOD(7,12)——>7

       MOD(10,4)——>2


�日期函数

<1>.SYSDATE:˜q”回¾pȝ»Ÿæ—¥æœŸ

<2>.MONTHS_BETWEEN:˜q”回两个日期间隔的月æ•?/span>

       select months_between('02-2æœ?06','02-2æœ?06') from dual;

<3>.ADD_MONTHS:在指定日期基¼‹€ä¸ŠåŠ ä¸Šç›¸åº”çš„æœˆæ•°

       select add_months('02-2æœ?06',8) from dual;

<4>.NEXT_DAY:˜q”回某一日期的下一个指定日æœ?/span>

       select next_day('1-2æœ?12','星期一')  next_day from dual;

<5>.LAST_DAY:˜q”回指定日期当月最后一天的日期

       select  last_day('1-2æœ?12') last_day from dual;

<6>.ROUND(date[,'fmt'])å¯ÒŽ(gu¨©)—¥æœŸè¿›è¡ŒæŒ‡å®šæ ¼å¼çš„四舍五入操作åQŒæŒ‰ç…§YEAR、MONTH、DAY½{‰è¿›è¡Œå››èˆäº”å…?/span>

       SELECT  employee_id, hire_date, ROUND(hire_date, 'MONTH') FROM employees WHERE SUBSTR(hire_date,-2,2)='98';

<7>.TRUNC(date[,'fmt'])å¯ÒŽ(gu¨©)—¥æœŸè¿›è¡ŒæŒ‡å®šæ ¼å¼çš„æˆªæ–­æ“ä½œã€‚按ç…?nbsp;YEAR、MONTH、DAY½{‰è¿›è¡Œæˆªæ–?/span>

       SELECT employee_id, hire_date, TRUNC(hire_date, 'MONTH') FROM employees WHERE SUBSTR(hire_date,-2,2)='98';

<8>.EXTRACTåQšè¿”回从日期¾cÕdž‹ä¸­å–出指定年、月、日

       SELECT  last_name, hire_date, EXTRACT (MONTH FROM HIRE_DATE) MONTH FROM   employees WHERE  department_id = 90;


�转换函数

---通常在字½W¦ç±»åž‹ã€æ—¥æœŸç±»åž‹ã€æ•°å­—类型之间进行显性è{换ã€?/span>


<1>.TO_CHAR(date|number|'fmt'):把日期类åž?æ•°å­—¾cÕdž‹çš„表辑ּæˆ–列转换为字½W¦ç±»åž?/span>

--‘fmt’:指的是需要显½Cºçš„æ ¼å¼åQŒéœ€è¦å†™åœ¨å•引号中,òq¶ä¸”是大ž®å†™æ•æ„ŸåQŒå¯åŒ…含ä»ÖM½•有效的日期格å¼?/span>

常用日期格式åQ?/span>

---YYYYåQ?位数字表½Cºå¹´ä»?                                           ---DY:星期的英文前三位字母

---YYåQšä¸¤ä½æ•°å­—年份,但是无世¾Uªè{æ?                         ---DAY:星期的英文拼å†?/span>

---RRåQ?位数字表½Cºå¹´ä»½ï¼Œæœ‰ä¸–¾Uªè{æ?                          ---DåQšæ•°å­—è¡¨½CÞZ¸€æ˜ŸæœŸçš„第几天åQŒæ˜ŸæœŸå¤©æ˜¯ä¸€å‘¨çš„½W¬ä¸€å¤?/span>

---YEAR:òq´ä†¾çš„英文拼å†?                                                ---DDåQšæ•°å­—è¡¨½CÞZ¸€ä¸ªæœˆä¸­çš„½W¬å‡ å¤?/span>

---MMåQšä¸¤ä½æ•°å­—表½Cºæœˆä»?                                             ---DDDåQšæ•°å­—è¡¨½CÞZ¸€òq´ä¸­çš„第几天

---MONTH:月䆾英文拼写                                                 ---AM或PMåQšä¸Šä¸‹åˆè¡¨ç¤º

---HH 或HH12或HH24åQšæ•°å­—è¡¨½Cºå°æ—?                           ---MIåQšæ•°å­—è¡¨½Cºåˆ†é’?  

HH12代表12ž®æ—¶è®¡æ—¶,HH24代表24ž®æ—¶è®¡æ—¶                  ---SSåQšæ•°å­—è¡¨½Cºç§’åQ?/span>

ç‰ÒŽ(gu¨©)®Šæ ¼å¼åQ?/span>

THåQšæ˜¾½Cºæ•°å­—表½Cºçš„英文序数词,如:(x¨¬)DDTH昄¡¤ºå¤©æ•°çš„序数词
SPåQšæ˜¾½Cºæ•°å­—表½Cºçš„æ‹¼å†™
SPTHåQšæ˜¾½Cºæ•°å­—表½Cºçš„序数词的拼写

           select to_char(sysdate,’ddspth’) from dual;

“字符ä¸?#8221;:如在格式中显½Cºå­—½W¦ä¸²åQŒéœ€è¦ä¸¤ç«¯åŠ åŒå¼•å?br />           select to_char(sysdate,’dd “of” month ‘)  from dual;        


数字到字½W¦åž‹è½¬æ¢åQ?/span>

˜q›è¡Œæ•°å­—¾cÕdž‹åˆ°å­—½W¦åž‹è½¬æ¢åQŒæ ¼å¼ä¸­çš„宽度一定要­‘…过实际列宽度,否则ä¼?x¨¬)显½CÞZØ“(f¨´)###

-- 9åQšä¸€ä½æ•°å­?br />-- 0åQšä¸€ä½æ•°å­—或å‰?br />-- $åQšæ˜¾½CÞZØ“(f¨´)¾ŸŽå…ƒ½W?br />-- LåQšæ˜¾½CºæŒ‰ç…§åŒºåŸ?br />--  .åQšå°æ•°ç‚¹
--  ,åQšåƒä½åˆ†å‰²ç¬¦ 
        

select to_char(9832, '$9,999.00')  from  dual;      


<2>.TO_NUMBER(char[,’fmt’]): 把字½W¦ç±»åž‹åˆ—或表辑ּè½¬æ¢ä¸ºæ•°å­—ç±»åž?/span>

       select to_number('9832', 9999)  from  dual;


<3>.TO_DATE(char[,‘fmt’]): 把字½W¦ç±»åž‹åˆ—或表辑ּè½¬æ¢ä¸ºæ—¥æœŸç±»åž?/span>

        select to_date('20120304', 'yy-mm-dd')  from  dual;


�通用函数

<1>NVL(表达å¼?åQŒè¡¨è¾‘Ö¼2)函数åQšè¯¥å‡½æ•°åŠŸèƒ½æ˜¯ç©ºå€ÆD{æ¢ï¼ŒæŠŠç©ºå€ÆD{æ¢äØ“(f¨´)å…¶ä»–å€û|¼Œè§£å†³½Iºå€¼é—®é¢˜ã€‚如果表辑ּ1为空åQŒåˆ™è¡¨è¾¾å¼?ž®±æ˜¯è¦è{换成的倹{€?/span>

注意åQšæ•°æ®æ ¼å¼å¯ä»¥æ˜¯æ—¥æœŸã€å­—½W¦ã€æ•°å­—,ä½?span style="color: #ff0000; ">数据¾cÕdž‹å¿…须匚w…

      select nvl(null,1) from dual;
      select nvl(2,1) from dual;


<2>.NVL2(表达å¼?, 表达å¼?, 表达å¼?)函数åQšè¯¥å‡½æ•°æ˜¯å¯¹½W¬ä¸€ä¸ªå‚数进行检查。如果第一个参æ•îC¸ä¸ºç©ºåQŒåˆ™è¾“出½W¬äºŒä¸ªå‚敎ͼŒå¦‚æžœ½W¬ä¸€ä¸ªå‚æ•îCØ“(f¨´)½Iºï¼Œåˆ™è¾“å‡ÞZ½Žä¸‰ä¸ªå‚æ•°åQ?span style="color: #cc0000; ">表达å¼?可以ä¸ÞZ“Q何数据类åž?/span>ã€?/span>

      select nvl2(null,1,2) from dual;
      select nvl2(3,1,2) from dual;


<3>.NULLIF(表达å¼?åQŒè¡¨è¾‘Ö¼2)函数åQšè¯¥å‡½æ•°ä¸»è¦å®Œæˆä¸¤ä¸ªå‚数的比较。当两个参数不相½{‰æ—¶åQŒè¿”回值是½W¬ä¸€ä¸ªå‚æ•°å€û|¼›å½“两个参数相½{‰æ—¶åQŒè¿”回值是½Iºå€¹{€?/span>

      select nullif(1,1) from dual;

      ˜q”回值是åQ?img src="http://my.csdn.net/uploads/201208/01/1343792513_7008.png" alt="" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; " />不是null;
      select nullif(1,2) from dual; 


<4>.COALESCE(表达å¼?, 表达å¼?, ... 表达式n)函数åQšè¯¥å‡½æ•°æ˜¯å¯¹NVL函数的扩展。COALESCE函数功能是返回第一个不为空的参敎ͼŒå‚数个数不受限制ã€?/span>

      select coalesce(null,null,0,1) from dual;


<5>.CASE表达å¼?/span>åQ?/span>

SELECT last_name, commission_pct,
(CASE commission_pct
WHEN 0.1  THEN 'ä½?
WHEN 0.2  THEN 'ä¸?
WHEN 0.3  THEN 'é«?
ELSE 'æ—?
END)   Commission
FROM employees
WHERE commission_pct IS NOT NULL
ORDER BY last_name;


<6>.DECODE函数åQ?/span>

DECODE(字段|表达å¼? 条äšg1,¾l“æžœ1[,条äšg2,¾l“æžœ2…åQŒ][,¾~ºçœå€¼])
 

 select last_name, commission_pct,decode( commission_pct,0.1,'ä½?,0.2,'ä¸?,0.3 , 'é«?,'æ—?) commission 

   from employees where commission_pct is not null orderbylast_name;



]]>
SQL-存储˜q‡ç¨‹http://www.aygfsteel.com/zongbao/archive/2012/08/01/384560.html地心引力地心引力Wed, 01 Aug 2012 14:04:00 GMThttp://www.aygfsteel.com/zongbao/archive/2012/08/01/384560.htmlhttp://www.aygfsteel.com/zongbao/comments/384560.htmlhttp://www.aygfsteel.com/zongbao/archive/2012/08/01/384560.html#Feedback0http://www.aygfsteel.com/zongbao/comments/commentRss/384560.htmlhttp://www.aygfsteel.com/zongbao/services/trackbacks/384560.html刚开始学ä¹?f¨¤n)存储过½E‹çš„æ—¶å€™ï¼Œž®±æŠŠå®ƒæƒ³è±¡æˆç”Ÿæ´»ä¸­æŠŠä¸€äº›ä¸œè¥¿å­˜å‚¨åœ¨æŸäº›åœ°æ–¹åQŒéœ€è¦çš„æ—¶å€™å†æŠŠå®ƒå–出来ä‹É用。而在数据库学ä¹?f¨¤n)å’Œæ€È»“中,才发现存储过½E‹æ˜¯ä¸€¿Uæ•°æ®åº“对象åQŒæ˜¯ä¸ÞZº†å®žçŽ°æŸä¸ªç‰¹å®šä»ÕdŠ¡åQŒå°†ä¸€¾l„预¾~–译的SQL语句以一个存储单元的形式存储在服务器上,供用戯‚°ƒç”¨ã€?/span>

 



]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ¸ö¾ÉÊÐ| ¿ª»¯ÏØ| ·ï¸ÔÏØ| ¼ªÂ¡ÏØ| ͳ·¬ÊÐ| ÁÚË®| ʯÁÖ| Äþ°²ÊÐ| Ïã¸ñÀïÀ­ÏØ| ÄÏ´¨ÊÐ| ÏóÖÝÏØ| ÇàÉñÏØ| ËìÄþÊÐ| ʼÐËÏØ| ÄÚÏçÏØ| ÐÂÌïÏØ| ¹àÔÆÏØ| Ðû¶÷ÏØ| ÁÖ¿ÚÏØ| ¬ÁúÏØ| ²ÊƱ| ¹óÑôÊÐ| ÕòÆ½ÏØ| ÌìÕòÏØ| Ä«Öñ¹¤¿¨ÏØ| ·ïÉ½ÏØ| °¢À­ÉÆÓÒÆì| ºÍË¶ÏØ| Æ½Ì¶ÏØ| ÕòÆºÏØ| Ëì´¨ÏØ| ÏĺÓÏØ| çõ´ºÊÐ| µÀÕæ| °ÍÄÏÇø| ±¦ÐËÏØ| Çð±±ÏØ| Ã×ÁÖÏØ| ½éÐÝÊÐ| ºÓ½òÊÐ| ƽ¹ÈÇø|