<?xml version="1.0" encoding="GBK" ?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/">
 <channel>
  	  <title><![CDATA[欣@悦~]]></title>
	  <link>http://ni0918.blog.163.com</link>
	  <description><![CDATA[献出一点：爱心----~ ~ 祖国将是更美好！ 望眼欲穿,爱心一片......
  一切都是美好的,要好好爱惜！]]></description>
	  <language>zh-CN</language>
	  <pubDate>Thu, 3 Jul 2008 22:52:02 +0800</pubDate>
	  <lastBuildDate>Thu, 3 Jul 2008 22:52:02 +0800</lastBuildDate>
	  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
	  <generator><![CDATA[NetEase Space]]></generator>
	  <managingEditor><![CDATA[ni0918]]></managingEditor>
	  <webMaster><![CDATA[＊碐＆　皎＄]]></webMaster>
		  <ttl>120</ttl>
	  <image>
	  	<title><![CDATA[欣@悦~]]></title>
	  	<url>http://ava.blog.163.com/photo/Cgu8fEAx-WueTjxKX3GZ8A==/177892185281552611.jpg</url>
	  	<link>http://ni0918.blog.163.com</link>
	  </image>
  <item>
  	<title><![CDATA[《赤壁》首映发布会林志玲赵薇争艳(组图)]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/38588912200863105053323</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://ent.163.com/08/0702/23/4FSP1NIE00032KMI.html" target=_blank>《赤壁》首映发布会林志玲赵薇争艳(组图)</A></P>
<P>　　华语巨制《赤壁》在北京举行了盛大的首映发布会，三位女星林志玲、赵薇、小宋佳更是同场斗艳。林志玲一袭中西合璧的白纱裙延续典雅迷人路线抢尽风头，而赵薇的艳粉色宽大连身裙就不慎走光露底裤。<A href="http://ent.163.com/08/0702/23/4FSP1NIE00032KMI.html" target=_blank>查看全文&gt;&gt;</A></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/38588912200863105053323</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/38588912200863105053323</guid>
    <pubDate>Thu, 3 Jul 2008 22:50:53 +0800</pubDate>
    <dcterms:modified>2008-07-03T22:50:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[严淑明衣橱里的诱惑]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/3858891220086373457613</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://ent.163.com/08/0703/10/4FU0UVVF00032F5M.html" target=_blank>严淑明衣橱里的诱惑</A></P>
<P>
</P><P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"><CLK><NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,4)" target="_blank">身材</NOBR>性感、性格豪爽、身兼作家、主持人、演员、歌手等众多头衔的</CLK><A href="http://data.ent.163.com/ent/star/one/id=00030BOeCPcM.html">严淑明</A><CLK>，在名牌华服的簇拥下，说她是超级性感大美女一点也不为过，但什么漂亮衣服她都穿过，就是没有穿过男人的衣服，<NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,0)" target="_blank">我们</NOBR>告诉她，这次何不大胆尝试一下，给读者看看不一样的严淑明。 </CLK></P>
<P style="TEXT-INDENT: 2em"><CLK>她欣然同意，并有点兴奋地跃跃欲试。想象严淑明潜入你的<NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,1)" target="_blank">房间</NOBR>，翻出你的帽衫和黑袜子穿上，帮你熨白衬衫并整理衣橱，你是不是也超兴奋？ </CLK></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/7/3/20080703103332c2f11.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/7/3/20080703103346a3b6a.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img1.cache.netease.com/ent/2008/7/3/200807031034133e5d0.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img1.cache.netease.com/ent/2008/7/3/200807031034286edcc.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">(本文来源：<A href="http://media.163.com/special/007625CB/guojizaixian.html">国际在线</A> ) <A href="http://ent.163.com/"><IMG height=10 alt=俞瑞山 src="http://cimg2.163.com/ent/newimg/arc_icon.gif" width=11 border=0></A> 
</P><DIV style="CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; TEXT-INDENT: 2em; PADDING-TOP: 15px"><A href="http://comment.ent.163.com/sexy_bbs/4FU0UVVF00032F5M.html" target=_blank>【已有<SPAN fB" >13</SPAN>位网友发表了看法，点击查看。】</A></DIV><A href="http://ent.163.com/08/0703/10/4FU0UVVF00032F5M.html" target=_blank>查看全文&gt;&gt;</A>
<P></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/3858891220086373457613</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/3858891220086373457613</guid>
    <pubDate>Thu, 3 Jul 2008 19:34:57 +0800</pubDate>
    <dcterms:modified>2008-07-03T19:34:57+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[莉亚迪桑同性火辣写真]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/3858891220086172644206</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://ent.163.com/08/0626/20/4FD2RTDU00032E3S_2.html#" target=_blank>莉亚迪桑同性火辣写真</A></P>
<P>
</P><P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/20080626204316be028.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/200806262043458bfb9.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/20080626204356c4311.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img1.cache.netease.com/ent/2008/6/26/200806262044060a58b.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img1.cache.netease.com/ent/2008/6/26/200806262044154cf3b.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"><CLK>(本文来源：网易<NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,0)" target="_blank">美女</NOBR> ) </CLK><A href="http://ent.163.com/"><IMG height=10 alt=达文蕉 src="http://cimg2.163.com/ent/newimg/arc_icon.gif" width=11 border=0></A> 
</P><DIV style="CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; TEXT-INDENT: 2em; PADDING-TOP: 15px"><A href="http://comment.ent.163.com/sexy_bbs/4FD2RTDU00032E3S.html" target=_blank>【已有<SPAN fB" >6</SPAN>位网友发表了看法，点击查看。】</A></DIV><A href="http://ent.163.com/08/0626/20/4FD2RTDU00032E3S_2.html#" target=_blank>查看全文&gt;&gt;</A>
<P></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/3858891220086172644206</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/3858891220086172644206</guid>
    <pubDate>Tue, 1 Jul 2008 19:26:44 +0800</pubDate>
    <dcterms:modified>2008-07-01T19:26:44+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[莉亚迪桑同性火辣写真]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/3858891220086172615649</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://ent.163.com/08/0626/20/4FD2RTDU00032E3S.html" target=_blank>莉亚迪桑同性火辣写真</A></P>
<P>
</P><P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/20080626204244974a0.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img1.cache.netease.com/ent/2008/6/26/2008062620425110a91.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/20080626204257b5342.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/20080626204305fffa5.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img1.cache.netease.com/ent/2008/6/26/2008062620432495055.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"><CLK>(本文来源：网易<NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,0)" target="_blank">美女</NOBR> ) </CLK><A href="http://ent.163.com/"><IMG height=10 alt=达文蕉 src="http://cimg2.163.com/ent/newimg/arc_icon.gif" width=11 border=0></A> 
</P><DIV style="CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; TEXT-INDENT: 2em; PADDING-TOP: 15px"><A href="http://comment.ent.163.com/sexy_bbs/4FD2RTDU00032E3S.html" target=_blank>【已有<SPAN fB" >6</SPAN>位网友发表了看法，点击查看。】</A></DIV><A href="http://ent.163.com/08/0626/20/4FD2RTDU00032E3S.html" target=_blank>查看全文&gt;&gt;</A>
<P></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/3858891220086172615649</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/3858891220086172615649</guid>
    <pubDate>Tue, 1 Jul 2008 19:26:15 +0800</pubDate>
    <dcterms:modified>2008-07-01T19:26:15+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[白歆惠林苇如交织缠绵展另类风情]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/3858891220086172524438</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://ent.163.com/08/0606/10/4DOG3IM000032F5M.html" target=_blank>白歆惠林苇如交织缠绵展另类风情</A></P>
<P>
</P><P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg20.163.com/ent/2008/6/6/20080606103430336b7.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg21.163.com/ent/2008/6/6/2008060610335062eac.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg21.163.com/ent/2008/6/6/20080606103535f3b8a.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg20.163.com/ent/2008/6/6/20080606103610272f0.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"><CLK>(本文<NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,0)" target="_blank">来源</NOBR>：</CLK><A href="http://media.163.com/special/007625CB/guojizaixian.html">国际在线</A> ) <A href="http://ent.163.com/"><IMG height=10 alt=达文蕉 src="http://cimg2.163.com/ent/newimg/arc_icon.gif" width=11 border=0></A> 
</P><DIV style="CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; TEXT-INDENT: 2em; PADDING-TOP: 15px"><A href="http://comment.ent.163.com/star_ent_bbs/4DOG3IM000032F5M.html" target=_blank>【已有<SPAN fB" >182</SPAN>位网友发表了看法，点击查看。】</A></DIV><A href="http://ent.163.com/08/0606/10/4DOG3IM000032F5M.html" target=_blank>查看全文&gt;&gt;</A>
<P></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/3858891220086172524438</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/3858891220086172524438</guid>
    <pubDate>Tue, 1 Jul 2008 19:25:24 +0800</pubDate>
    <dcterms:modified>2008-07-01T19:25:24+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[十二候选港姐拍外景 水上乐园泳装嬉戏]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/385889122008617248976</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://ent.163.com/08/0630/15/4FMPPCJ900032MG6.html" target=_blank>十二候选港姐拍外景 水上乐园泳装嬉戏</A></P>
<P><STRONG><FONT color=#ff00ff>
<CENTER><IMG alt="" src="http://img1.cache.netease.com/ent/2008/6/30/20080630151734a2153.jpg" border=0><BR></CENTER></FONT></STRONG>
</P><P style="TEXT-INDENT: 2em" align=center><STRONG><FONT color=#ff00ff>7号梁雅琳(绿衣者)、8号姚婷芝和10号史宛殷(下)玩大喇叭时的兴奋表情</FONT></STRONG></P><STRONG><STRONG>
<P style="TEXT-INDENT: 2em"><FONT color=#ff00ff></FONT></P></STRONG></P>
<P style="TEXT-INDENT: 2em"></P></STRONG><CLK>今日(27/6)12位佳丽来到番禺水上乐园<NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,3)" target="_blank">挑战大喇叭!站在高高的大喇叭上，只要张一张眼都有点惊怕，更何况要从高处滑下呢! 开始众佳丽都显得十分害怕，上了大喇叭后神情更为慌张，因为真是猜不透下滑时的感觉。当她们顺着水流向下冲时，就算站在远远的都可以听到声嘶力竭的呼叫声。为何呼叫声不绝?原来众候选佳丽居然玩了6次之多，所以呼叫声不绝。相<A href="http://data.ent.163.com/ent/star/one/id=00030BOeCbFB.html">信</A>她们已经爱上了这刺激的大喇叭吧!<STRONG></STRONG><FONT color=#ff00ff><STRONG>
<CENTER><IMG alt="" src="http://img2.cache.netease.com/ent/2008/6/30/20080630151743c4aa9.jpg" border=0><BR></CENTER></STRONG></FONT>
<P style="TEXT-INDENT: 2em" align=center><FONT color=#ff00ff><STRONG>众佳丽合照</STRONG></FONT></P>
<P style="TEXT-INDENT: 2em">不过细心数一数，原来只有11位佳丽试玩，独缺3号<A href="http://data.ent.163.com/ent/star/one/id=00030BOeCcQA.html">张舒雅</A>。舒雅表示自己是畏高和惊怕有离心力的机动游戏，因此她只好站在一旁为好姐妹打气。10号史宛殷同样是畏高的，不过当她在众姐妹的鼓励下和试玩了一次之后就开始适应。而9号谢静婷讲述当站在高处准备玩大喇叭时，心跳得快要跳了出来。当大喇叭滑下时，突然一下子的离心力真的以为自己会飞堕出去哩。请放心，如此安全的设施又怎会弄伤美丽动人的佳丽呢?放心玩多次吧!</P><FONT color=#ff00ff><STRONG>
<CENTER><IMG alt="" src="http://img1.cache.netease.com/ent/2008/6/30/2008063015175981faf.jpg" border=0><BR></CENTER></STRONG></FONT>
<P style="TEXT-INDENT: 2em" align=center><FONT color=#ff00ff><STRONG>&nbsp;准备乘风破浪的一刻</STRONG></FONT></P>
<P style="TEXT-INDENT: 2em"><FONT color=#ff00ff><STRONG></STRONG></FONT></P>
<P style="TEXT-INDENT: 2em"><CLK>12位候选佳丽在水上乐园玩毕机动游戏后便来到人造浪泳池继续<NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,1)" target="_blank">拍摄</NOBR>。众人均穿上色彩斑斓的泳衣示人，状态十足之余又明艳照人。她们更向记者展现出美好的身段，显现自信的一面。这样的场面当然吸引数百人在旁围观伊人出水啦。</CLK></P><FONT color=#ff00ff><STRONG>
<CENTER><IMG alt="" src="http://img1.cache.netease.com/ent/2008/6/30/20080630151809a30af.jpg" border=0><BR></CENTER></STRONG></FONT>
<P style="TEXT-INDENT: 2em" align=center><FONT color=#ff00ff><STRONG>(左起)1号文柏姿、4号高海宁及11号马赛在动物浮床上英姿飒飒</STRONG></FONT></P>
<P style="TEXT-INDENT: 2em"><CLK>当众佳丽走进水中，泳池的人造浪越大，她们的<NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,0)" target="_blank">心情</NOBR>就越兴奋。之后各人均拿起可爱动物浮床乘风破浪，可能港姐们体型太轻又或是浪太大的关系，她们每次乘上浮床后便立即被大浪冲走，即使佳丽们再跟巨浪恶斗一番都是无功而回。</CLK></P><STRONG><FONT color=#ff00ff>
<CENTER><IMG alt="" src="http://img1.cache.netease.com/ent/2008/6/30/2008063015182015504.jpg" border=0><BR></CENTER></FONT></STRONG>
<P style="TEXT-INDENT: 2em" align=center><STRONG><FONT color=#ff00ff>&nbsp;小飞象果然很吸引</FONT></STRONG></P>
<P style="TEXT-INDENT: 2em"><CLK>7号梁雅琳乘坐的小飞象由于造型特别所以最为引人注目，她觉得小飞象十分有趣，同时又认为<NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,4)" target="_blank">冲浪</NOBR>关键是不能跟浪一齐上至高处，否则最后会被冲走。8号姚婷芝和9号谢静婷则同坐一张浮床，可惜合二人之力都是胜不过巨浪。姚婷芝表示好像置身大海中，加上不懂游泳和大浪的缘故，实在难以控制。而11号马赛表示自小马爸爸便带她到泳滩玩，因而掌握到一定<NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,2)" target="_blank">技巧</NOBR>，难怪她可以控制自如!</CLK></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">(本文来源：TVB ) <A href="http://ent.163.com/"><IMG height=10 alt=达文蕉 src="http://cimg2.163.com/ent/newimg/arc_icon.gif" width=11 border=0></A> 
</P><DIV style="CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; TEXT-INDENT: 2em; PADDING-TOP: 15px"><A href="http://comment.ent.163.com/star_ent_bbs/4FMPPCJ900032MG6.html" target=_blank>【已有<SPAN fB" >26</SPAN>位网友发表了看法，点击查看。】</A></DIV><A href="http://ent.163.com/08/0630/15/4FMPPCJ900032MG6.html" target=_blank>查看全文&gt;&gt;</A>
<P></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/385889122008617248976</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/385889122008617248976</guid>
    <pubDate>Tue, 1 Jul 2008 19:24:08 +0800</pubDate>
    <dcterms:modified>2008-07-01T19:24:08+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[汤唯上韩国杂志封面 诱惑写真延续《色戒》风格]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/385889122008617219214</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://ent.163.com/08/0701/17/4FPIVNMR00031H2L_2.html" target=_blank>汤唯上韩国杂志封面 诱惑写真延续《色戒》风格</A></P>
<P>　　汤唯登上韩国(W)7月号杂志，其中，汤唯为该杂志拍摄了一组写真，一如既往的延续了诱惑性感风格。<A href="http://ent.163.com/08/0701/17/4FPIVNMR00031H2L_2.html" target=_blank>查看全文&gt;&gt;</A></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/385889122008617219214</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/385889122008617219214</guid>
    <pubDate>Tue, 1 Jul 2008 19:21:09 +0800</pubDate>
    <dcterms:modified>2008-07-02T14:25:55+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[汤唯上韩国杂志封面 诱惑写真延续《色戒》风格]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/3858891220086172042595</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://ent.163.com/08/0701/17/4FPIVNMR00031H2L.html" target=_blank>汤唯上韩国杂志封面 诱惑写真延续《色戒》风格</A></P>
<P>　　汤唯登上韩国(W)7月号杂志，其中，汤唯为该杂志拍摄了一组写真，一如既往的延续了诱惑性感风格。<A href="http://ent.163.com/08/0701/17/4FPIVNMR00031H2L.html" target=_blank>查看全文&gt;&gt;</A></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/3858891220086172042595</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/3858891220086172042595</guid>
    <pubDate>Tue, 1 Jul 2008 19:20:42 +0800</pubDate>
    <dcterms:modified>2008-07-02T14:25:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[MyEclipse的安装过程(系统环境变量设置)]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/38588912200853011254544</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD>
<P></P>
<P style="TEXT-INDENT: 2em">MyEclipse的安装过程(系统环境变量设置)</P>
<P style="TEXT-INDENT: 2em"></P></TD></TR>
<TR>
<TD><A href="http://www.mldn.cn/print.jtml?articleid=1278#"></A></TD></TR>
<TR>
<TD></TD></TR>
<TR>
<TD>MyEclipse是Eclipse的一个插件，所以，你必须先安装Eclipse才可以安装MyEclipse。 
<P></P>
<P style="TEXT-INDENT: 2em">MyEclipse是一个编译器，要做JAVA程序，就要配置基本的JDK环境变量 </P>
<P style="TEXT-INDENT: 2em">一、安装JDK </P>
<P style="TEXT-INDENT: 2em">首先下载JDK 5.0（JDK 5.0的下载页面为：http://java.sun.com/j2se/1.5.0/download.jsp）； 然后运行JDK 5.0安装程序jdk-1_5_0_06-windows-i586-p.exe，安装过程中所有选项保持默认；最后配置JDK的环境变量：在“我的电脑”上点右键—&gt;“属性”—&gt;“高级”—&gt; “环境变量(N)”。 </P>
<P style="TEXT-INDENT: 2em">新建系统变量JAVA_HOME：C:\Program Files\Java\jdk1.5.0_06； </P>
<P style="TEXT-INDENT: 2em">新建系统变量CLASSPATH：.;%JAVA_HOME%\lib;（注意：点号表示当前目录，不能省略） </P>
<P style="TEXT-INDENT: 2em">在系统变量Path的值的前面加入以下内容：%JAVA_HOME%\bin;(注意:这里的分号不能省略) </P>
<P style="TEXT-INDENT: 2em">到这里，JDK安装完毕。 </P>
<P style="TEXT-INDENT: 2em">注意:如果以后要安装诸如Eclipse、Borland JBuilder、JCreator、IntelliJ IDEA等集成开发环境(IDE,Integrated Development Environment),应该在IDE中编译运行一个简单的HelloWorld程序，以保证IDE可以识别出JDK的位置。 </P>
<P style="TEXT-INDENT: 2em">二、安装Tomcat </P>
<P style="TEXT-INDENT: 2em">首先下载jakarta-tomcat-5.0.30.zip，之所以下载免安装版的好处是可以使用多个Tomcat（jakarta-tomcat-5.0.30.zip的下载页面为： </P>
<P style="TEXT-INDENT: 2em">http://apache.linuxforum.net/tomcat/tomcat-5/v5.0.30/bin/）； </P>
<P style="TEXT-INDENT: 2em">然后将jakarta-tomcat-5.0.30.zip直接解压到D盘根目录： </P>
<P style="TEXT-INDENT: 2em">最后配置Tomcat的环境变量：在“我的电脑”上点右键—&gt;“属性”—&gt;“高级”—&gt; “环境变量(N)”。 </P>
<P style="TEXT-INDENT: 2em">新建系统变量CATALINA_HOME：D:\jakarta-tomcat-5.0.30 </P>
<P style="TEXT-INDENT: 2em">在系统变量CLASSPATH的值的后面加入：%CATALINA_HOME%\common\lib; </P>
<P style="TEXT-INDENT: 2em">在系统变量Path的值中"%JAVA_HOME%\bin;"的后面加入以下内容：%CATALINA_HOME%\bin; </P>
<P style="TEXT-INDENT: 2em">到这里，Tomcat安装完毕。 </P>
<P style="TEXT-INDENT: 2em">进行完一、二两步的设置以后，各系统变量的值如下： </P>
<P style="TEXT-INDENT: 2em">JAVA_HOME:C:\Program Files\Java\jdk1.5.0_06 </P>
<P style="TEXT-INDENT: 2em">CATALINA_HOME:D:\jakarta-tomcat-5.0.30 </P>
<P style="TEXT-INDENT: 2em">CLASSPATH:.;%JAVA_HOME%\lib;%CATALINA_HOME%\common\lib; </P>
<P style="TEXT-INDENT: 2em">Path:%JAVA_HOME%\bin;%CATALINA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem </P>
<P style="TEXT-INDENT: 2em">三、安装Eclipse </P>
<P style="TEXT-INDENT: 2em">首先下载eclipse-SDK-3.1.2-win32.zip（eclipse-SDK-3.1.2-win32.zip下载地址为： </P>
<P style="TEXT-INDENT: 2em">http://www.eclipse.org/downloads/）； </P>
<P style="TEXT-INDENT: 2em">然后将eclipse-SDK-3.1.2-win32.zip直接解压到D盘根目录： </P>
<P style="TEXT-INDENT: 2em">到这里， Eclipse安装完毕。 </P>
<P style="TEXT-INDENT: 2em">四、安装MyEclipse </P>
<P style="TEXT-INDENT: 2em">首先下载EnterpriseWorkbenchInstaller_4.1.1GA_E3.1.exe（EnterpriseWorkbenchInstaller_4.1.1GA_E3.1.exe 的下载地址为： </P>
<P style="TEXT-INDENT: 2em">http://www.myeclipseide.com/ContentExpress-display-ceid-10.html）； </P>
<P style="TEXT-INDENT: 2em">然后安装EnterpriseWorkbenchInstaller_4.1.1GA_E3.1.exe。注意：安装时候要选择Eclipse的安装路径，其他选项保持默认。 </P>
<P style="TEXT-INDENT: 2em">安装完毕之后，将MyEclipse安装目录下的features和plugins这2个目录覆盖到Eclipse的安装目录下。 </P>
<P style="TEXT-INDENT: 2em">最后将刚才安装的 MyEclipse 卸载。 </P>
<P style="TEXT-INDENT: 2em">解释一下上面这样做的原因： 因为MyEclipse是Eclipse的插件，所以只要把features和plugins这2个目录覆盖到Eclipse的安装目录，Eclipse就会自动认出这些插件。 </P>
<P style="TEXT-INDENT: 2em">到这里，MyEclipse安装完毕。 </P>
<P style="TEXT-INDENT: 2em">五、破解MyEclipse </P>
<P style="TEXT-INDENT: 2em">运行MyEclipse4.1.1注册机MyEclipseKeyGen.exe，选择MyEclipse的版本号，输入注册名，生成序列号。（MyEclip**4.*注册机的下载地址为： </P>
<P style="TEXT-INDENT: 2em">http://esoft.g8.com.cn/UploadFiles/2006-5/520753587.rar） </P>
<P style="TEXT-INDENT: 2em">运行eclipse.exe（首次运行要求指定Workspace），依次点击Window ----&gt; Preferences ----&gt;MyEclipse----&gt;Subscription ----&gt; Enter Subscription，输入注册名以及注册机生成的注册码。 </P>
<P style="TEXT-INDENT: 2em">到这里，MyEclipse破解完毕。 </P>
<P style="TEXT-INDENT: 2em">六、指定Eclipse+MyEclipse的JRE </P>
<P style="TEXT-INDENT: 2em">1.设定Eclipse+MyEclipse的JRE </P>
<P style="TEXT-INDENT: 2em">一般情况下，Eclipse可以自动找到JRE，我们不用进行过多的设置。 </P>
<P style="TEXT-INDENT: 2em">到这里，我们的Eclipse+MyEclipse开发环境就搭建完毕了！</P></TD></TR></TBODY></TABLE></P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/38588912200853011254544</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/38588912200853011254544</guid>
    <pubDate>Mon, 30 Jun 2008 23:25:45 +0800</pubDate>
    <dcterms:modified>2008-06-30T23:25:45+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[芜湖街头“上演”自行车婚礼(组图)]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/38588912200852910297543</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://news.163.com/08/0629/13/4FJVSLM80001125G.html" target=_blank>芜湖街头“上演”自行车婚礼(组图)</A></P>
<P>　　核心提示：6月29日，安徽芜湖市一对新人举行别开生面的自行车婚礼，新郎骑着自行车迎娶新娘，200多名自行车爱好者组成的迎亲队伍随行，场面壮观。<A href="http://news.163.com/08/0629/13/4FJVSLM80001125G.html" target=_blank>查看全文&gt;&gt;</A></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/38588912200852910297543</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/38588912200852910297543</guid>
    <pubDate>Sun, 29 Jun 2008 22:29:07 +0800</pubDate>
    <dcterms:modified>2008-06-29T22:29:07+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[韩国第一车模林智慧牛仔写真]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/38588912200852993015289</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://ent.163.com/08/0416/09/49L2VIJ500032E3S.html#" target=_blank>韩国第一车模林智慧牛仔写真</A></P>
<P>
</P><P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg20.163.com/ent/2008/4/16/200804160941078835b.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg20.163.com/ent/2008/4/16/20080416094156dcefa.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg20.163.com/ent/2008/4/16/200804160942083bef4.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg21.163.com/ent/2008/4/16/200804160942516fbf4.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg20.163.com/ent/2008/4/16/200804160943087bc21.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg20.163.com/ent/2008/4/16/2008041609434752ac1.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg20.163.com/ent/2008/4/16/20080416094359a7099.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg21.163.com/ent/2008/4/16/2008041609441181a93.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"><CLK>(本文<NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,0)" target="_blank">来源</NOBR>：</CLK><A href="http://media.163.com/special/007625CB/guojizaixian.html">国际在线</A> ) <A href="http://ent.163.com/"><IMG height=10 alt=俞瑞山 src="http://cimg2.163.com/ent/newimg/arc_icon.gif" width=11 border=0></A> 
</P><DIV style="CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; TEXT-INDENT: 2em; PADDING-TOP: 15px"><A href="http://comment.ent.163.com/sexy_bbs/49L2VIJ500032E3S.html" target=_blank>【已有<SPAN fB" >128</SPAN>位网友发表了看法，点击查看。】</A></DIV><A href="http://ent.163.com/08/0416/09/49L2VIJ500032E3S.html#" target=_blank>查看全文&gt;&gt;</A>
<P></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/38588912200852993015289</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/38588912200852993015289</guid>
    <pubDate>Sun, 29 Jun 2008 21:30:15 +0800</pubDate>
    <dcterms:modified>2008-06-29T21:30:15+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[模特冠军王希维的唯美女同志写真]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/38588912200852933650197</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://ent.163.com/08/0129/09/43C64AFV00032E3Q.html" target=_blank>模特冠军王希维的唯美女同志写真</A></P>
<P>
</P><P style="TEXT-INDENT: 2em">姓 名：王希维 </P>
<P style="TEXT-INDENT: 2em">身 高：177cm </P>
<P style="TEXT-INDENT: 2em">三 围：85/60/88 </P>
<P style="TEXT-INDENT: 2em">兴趣爱好：钢琴、跳舞、唱歌</P>
<P style="TEXT-INDENT: 2em"><CLK><NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,0)" target="_blank">职业</NOBR>经历 第九届中国模特之星大赛 冠军</CLK></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg2.163.com/ent/2008/1/29/2008012909134758dbc.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg2.163.com/ent/2008/1/29/200801290913371d898.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg2.163.com/ent/2008/1/29/20080129091325cd3f4.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg2.163.com/ent/2008/1/29/200801290913145e496.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg2.163.com/ent/2008/1/29/2008012909130329c8b.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg2.163.com/ent/2008/1/29/200801290912512aede.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://cimg2.163.com/ent/2008/1/29/20080129091236164c6.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em">(本文来源：网易美女频道 ) <A href="http://ent.163.com/"><IMG height=10 alt=椰子达人 src="http://cimg2.163.com/ent/newimg/arc_icon.gif" width=11 border=0></A> 
</P><DIV style="CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; TEXT-INDENT: 2em; PADDING-TOP: 15px"><A href="http://comment.ent.163.com/sexy_bbs/43C64AFV00032E3Q.html" target=_blank>【已有<SPAN fB" >17</SPAN>位网友发表了看法，点击查看。】</A></DIV><A href="http://ent.163.com/08/0129/09/43C64AFV00032E3Q.html" target=_blank>查看全文&gt;&gt;</A>
<P></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/38588912200852933650197</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/38588912200852933650197</guid>
    <pubDate>Sun, 29 Jun 2008 15:36:50 +0800</pubDate>
    <dcterms:modified>2008-06-29T15:36:50+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[韩艺瑟秀玲珑曲线代言啤酒]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/38588912200852933525193</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://ent.163.com/08/0626/19/4FD02R7M00032E3S.html" target=_blank>韩艺瑟秀玲珑曲线代言啤酒</A></P>
<P>
</P><P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/200806261955350f761.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img1.cache.netease.com/ent/2008/6/26/200806261955434c319.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/20080626195555ef596.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/200806261956030de82.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"><CLK>(本文来源：网易<NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,0)" target="_blank">美女</NOBR> ) </CLK><A href="http://ent.163.com/"><IMG height=10 alt=达文蕉 src="http://cimg2.163.com/ent/newimg/arc_icon.gif" width=11 border=0></A> 
</P><DIV style="CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; TEXT-INDENT: 2em; PADDING-TOP: 15px"><A href="http://comment.ent.163.com/sexy_bbs/4FD02R7M00032E3S.html" target=_blank>【已有<SPAN fB" >0</SPAN>位网友发表了看法，点击查看。】</A></DIV><A href="http://ent.163.com/08/0626/19/4FD02R7M00032E3S.html" target=_blank>查看全文&gt;&gt;</A>
<P></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/38588912200852933525193</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/38588912200852933525193</guid>
    <pubDate>Sun, 29 Jun 2008 15:35:25 +0800</pubDate>
    <dcterms:modified>2008-06-29T15:35:25+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[尹恩惠娇艳俏皮秀水果装]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/38588912200852933239990</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://ent.163.com/08/0626/20/4FD0D4Q300032E3S.html#" target=_blank>尹恩惠娇艳俏皮秀水果装</A></P>
<P>
</P><P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img1.cache.netease.com/ent/2008/6/26/200806262001391cefe.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/200806262001308a794.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/20080626200118e37ba.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/200806262000562be7e.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"><CLK>(本文来源：网易<NOBR false;" this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" kwC(event,0)" target="_blank">美女</NOBR> ) </CLK><A href="http://ent.163.com/"><IMG height=10 alt=达文蕉 src="http://cimg2.163.com/ent/newimg/arc_icon.gif" width=11 border=0></A> 
</P><DIV style="CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; TEXT-INDENT: 2em; PADDING-TOP: 15px"><A href="http://comment.ent.163.com/sexy_bbs/4FD0D4Q300032E3S.html" target=_blank>【已有<SPAN fB" >0</SPAN>位网友发表了看法，点击查看。】</A></DIV><A href="http://ent.163.com/08/0626/20/4FD0D4Q300032E3S.html#" target=_blank>查看全文&gt;&gt;</A>
<P></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/38588912200852933239990</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/38588912200852933239990</guid>
    <pubDate>Sun, 29 Jun 2008 15:32:39 +0800</pubDate>
    <dcterms:modified>2008-06-29T15:32:39+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[SQL Server2000 索引结构及其使用]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/3858891220085281027592</link>
    <description><![CDATA[<div><P><FONT size=2><STRONG>一、深入浅出理解索引结构<BR><BR></STRONG></STRONG>　　实际上，您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引：聚集索引（clustered index，也称聚类索引、簇集索引）和非聚集索引（nonclustered index，也称非聚类索引、非簇集索引）。下面，我们举例来说明一下聚集索引和非聚集索引的区别：</FONT></P>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>其实，我们的汉语字典的正文本身就是一个聚集索引。比如，我们要查“安”字，就会很自然地翻开字典的前几页，因为“安”的拼音是“an”，而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的，那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字，那么就说明您的字典中没有这个字；同样的，如果查“张”字，那您也会将您的字典翻到最后部分，因为“张”的拼音是“zhang”。也就是说，字典的正文部分本身就是一个目录，您不需要再去查其他目录来找到您需要找的内容。我们把这种正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。<BR><BR>　　如果您认识某个字，您可以快速地从自动中查到这个字。但您也可能会遇到您不认识的字，不知道它的发音，这时候，您就不能按照刚才的方法找到您要查的字，而需要去根据“偏旁部首”查到您要找的字，然后根据这个字后的页码直接翻到某页来找到您要找的字。但您结合“部首目录”和“检字表”而查到的字的排序并不是真正的正文的排序方法，比如您查“张”字，我们可以看到在查部首之后的检字表中“张”的页码是672页，检字表中“张”的上面是“驰”字，但页码却是63页，“张”的下面是“弩”字，页面是390页。很显然，这些字并不是真正的分别位于“张”字的上下方，现在您看到的连续的“驰、张、弩”三字实际上就是他们在非聚集索引中的排序，是字典正文中的字在非聚集索引中的映射。我们可以通过这种方式来找到您所需要的字，但它需要两个过程，先找到目录中的结果，然后再翻到您所需要的页码。我们把这种目录纯粹是目录，正文纯粹是正文的排序方式称为“非聚集索引”。<BR><BR>　　通过以上例子，我们可以理解到什么是“聚集索引”和“非聚集索引”。进一步引申一下，我们可以很容易的理解：每个表只能有一个聚集索引，因为目录只能按照一种方法进行排序。<BR><BR><STRONG>　　二、何时使用聚集索引或非聚集索引</STRONG><BR><BR>　　下面的表总结了何时使用聚集索引或非聚集索引（很重要）： </FONT></P>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2></FONT></P>
<P style="TEXT-INDENT: 2em">
</P><P>
</P><P style="TEXT-INDENT: 2em">
<TABLE style="COLOR: #000000; BORDER-COLLAPSE: collapse" height=107 cellSpacing=0 cellPadding=0 width="62%" align=center border=1>
<P style="TEXT-INDENT: 2em">
<TBODY>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD align=middle width="40%" height=23><FONT size=2>动作描述</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD align=middle width="29%" height=23><FONT size=2>使用聚集索引</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD align=middle width="31%" height=23><FONT size=2>使用非聚集索引</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="40%" height=20><FONT size=2>列经常被分组排序</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="29%" height=20><FONT size=2>应</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="31%" height=20><FONT size=2>应</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="40%" height=20><FONT size=2>返回某范围内的数据</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="29%" height=20><FONT size=2>应</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="31%" height=20><FONT size=2>不应</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="40%" height=20><FONT size=2>一个或极少不同值</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="29%" height=20><FONT size=2>不应</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="31%" height=20><FONT size=2>不应</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="40%" height=20><FONT size=2>小数目的不同值</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="29%" height=20><FONT size=2>应</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="31%" height=20><FONT size=2>不应</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="40%" height=20><FONT size=2>大数目的不同值</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="29%" height=20><FONT size=2>不应</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="31%" height=20><FONT size=2>应</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="40%" height=20><FONT size=2>频繁更新的列</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="29%" height=20><FONT size=2>不应</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="31%" height=20><FONT size=2>应</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="40%" height=20><FONT size=2>外键列</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="29%" height=20><FONT size=2>应</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="31%" height=20><FONT size=2>应</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="40%" height=20><FONT size=2>主键列</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="29%" height=20><FONT size=2>应</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="31%" height=20><FONT size=2>应</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="40%" height=20><FONT size=2>频繁修改索引列</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="29%" height=20><FONT size=2>不应</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="31%" height=20><FONT size=2>应</FONT></TD></P></TR></P></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　事实上，我们可以通过前面聚集索引和非聚集索引的定义的例子来理解上表。如：返回某范围内的数据一项。比如您的某个表有一个时间列，恰好您把聚合索引建立在了该列，这时您查询2004年1月1日至2004年10月1日之间的全部数据时，这个速度就将是很快的，因为您的这本字典正文是按日期进行排序的，聚类索引只需要找到要检索的所有数据中的开头和结尾数据即可；而不像非聚集索引，必须先查到目录中查到每一项数据对应的页码，然后再根据页码查到具体内容。<BR><BR><STRONG>　　三、结合实际，谈索引使用的误区</STRONG><BR><BR>　　理论的目的是应用。虽然我们刚才列出了何时应使用聚集索引或非聚集索引，但在实践中以上规则却很容易被忽视或不能根据实际情况进行综合分析。下面我们将根据在实践中遇到的实际问题来谈一下索引使用的误区，以便于大家掌握索引建立的方法。<BR><BR>　　1、主键就是聚集索引<BR><BR>　　这种想法笔者认为是极端错误的，是对聚集索引的一种浪费。虽然SQL SERVER默认是在主键上建立聚集索引的。<BR><BR>　　通常，我们会在每个表中都建立一个ID列，以区分每条数据，并且这个ID列是自动增大的，步长一般为1。我们的这个办公自动化的实例中的列Gid就是如此。此时，如果我们将这个列设为主键，SQL SERVER会将此列默认为聚集索引。这样做有好处，就是可以让您的数据在</FONT><FONT size=2>数据库</FONT><FONT size=2>中按照ID进行物理排序，但笔者认为这样做意义不大。<BR><BR>　　显而易见，聚集索引的优势是很明显的，而每个表中只能有一个聚集索引的规则，这使得聚集索引变得更加珍贵。<BR><BR>　　从我们前面谈到的聚集索引的定义我们可以看出，使用聚集索引的最大好处就是能够根据查询要求，迅速缩小查询范围，避免全表扫描。在实际应用中，因为ID号是自动生成的，我们并不知道每条记录的ID号，所以我们很难在实践中用ID号来进行查询。这就使让ID号这个主键作为聚集索引成为一种资源浪费。其次，让每个ID号都不同的字段作为聚集索引也不符合“大数目的不同值情况下不应建立聚合索引”规则；当然，这种情况只是针对用户经常修改记录内容，特别是索引项的时候会负作用，但对于查询速度并没有影响。<BR><BR>　　在办公自动化系统中，无论是系统首页显示的需要用户签收的文件、会议还是用户进行文件查询等任何情况下进行数据查询都离不开字段的是“日期”还有用户本身的“用户名”。<BR><BR>　　通常，办公自动化的首页会显示每个用户尚未签收的文件或会议。虽然我们的where语句可以仅仅限制当前用户尚未签收的情况，但如果您的系统已建立了很长时间，并且数据量很大，那么，每次每个用户打开首页的时候都进行一次全表扫描，这样做意义是不大的，绝大多数的用户1个月前的文件都已经浏览过了，这样做只能徒增</FONT><FONT size=2>数据库</FONT><FONT size=2>的开销而已。事实上，我们完全可以让用户打开系统首页时，</FONT><FONT size=2>数据库</FONT><FONT size=2>仅仅查询这个用户近3个月来未阅览的文件，通过“日期”这个字段来限制表扫描，提高查询速度。如果您的办公自动化系统已经建立的2年，那么您的首页显示速度理论上将是原来速度8倍，甚至更快。<BR><BR>　　在这里之所以提到“理论上”三字，是因为如果您的聚集索引还是盲目地建在ID这个主键上时，您的查询速度是没有这么高的，即使您在“日期”这个字段上建立的索引（非聚合索引）。下面我们就来看一下在1000万条数据量的情况下各种查询的速度表现（3个月内的数据为25万条）：<BR><BR>　　（1）仅在主键上建立聚集索引，并且不划分时间段：</FONT></P><PRE><FONT size=2>Select gid,fariqi,neibuyonghu,title from tgongwen</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：128470毫秒（即：128秒）<BR>　<BR>　　（2）在主键上建立聚集索引，在fariq上建立非聚集索引：</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,title from Tgongwen 
<P style="TEXT-INDENT: 2em">where fariqi&gt; dateadd(day,-90,getdate())</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：53763毫秒（54秒）<BR><BR>　　（3）将聚合索引建立在日期列（fariqi）上：</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,title from Tgongwen 
<P style="TEXT-INDENT: 2em">where fariqi&gt; dateadd(day,-90,getdate())</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：2423毫秒（2秒）<BR><BR>　　虽然每条语句提取出来的都是25万条数据，各种情况的差异却是巨大的，特别是将聚集索引建立在日期列时的差异。事实上，如果您的</FONT><FONT size=2>数据库</FONT><FONT size=2>真的有1000万容量的话，把主键建立在ID列上，就像以上的第1、2种情况，在网页上的表现就是超时，根本就无法显示。这也是我摒弃ID列作为聚集索引的一个最重要的因素。得出以上速度的方法是：在各个select语句前加：</FONT></P><PRE><FONT size=2>declare @d datetime 
<P style="TEXT-INDENT: 2em">set @d=getdate()</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　并在select语句后加：</FONT></P><PRE><FONT size=2>select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　2、只要建立索引就能显著提高查询速度<BR><BR>　　事实上，我们可以发现上面的例子中，第2、3条语句完全相同，且建立索引的字段也相同；不同的仅是前者在fariqi字段上建立的是非聚合索引，后者在此字段上建立的是聚合索引，但查询速度却有着天壤之别。所以，并非是在任何字段上简单地建立索引就能提高查询速度。<BR><BR>　　从建表的语句中，我们可以看到这个有着1000万数据的表中fariqi字段有5003个不同记录。在此字段上建立聚合索引是再合适不过了。在现实中，我们每天都会发几个文件，这几个文件的发文日期就相同，这完全符合建立聚集索引要求的：“既不能绝大多数都相同，又不能只有极少数相同”的规则。由此看来，我们建立“适当”的聚合索引对于我们提高查询速度是非常重要的。<BR><BR>　　3、把所有需要提高查询速度的字段都加进聚集索引，以提高查询速度<BR><BR>　　上面已经谈到：在进行数据查询时都离不开字段的是“日期”还有用户本身的“用户名”。既然这两个字段都是如此的重要，我们可以把他们合并起来，建立一个复合索引（compound index）。<BR><BR>　　很多人认为只要把任何字段加进聚集索引，就能提高查询速度，也有人感到迷惑：如果把复合的聚集索引字段分开查询，那么查询速度会减慢吗？带着这个问题，我们来看一下以下的查询速度（结果集都是25万条数据）：（日期列fariqi首先排在复合聚集索引的起始列，用户名neibuyonghu排在后列）：</FONT></P><PRE><FONT size=2>　　（1）select gid,fariqi,neibuyonghu,title from Tgongwen where fariqi&gt;''2004-5-5'' </FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　查询速度：2513毫秒</FONT></P><PRE><FONT size=2>　　（2）select gid,fariqi,neibuyonghu,title from Tgongwen  
<P style="TEXT-INDENT: 2em">　　　　　　　　　　　　where fariqi&gt;''2004-5-5'' and neibuyonghu=''办公室''</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　查询速度：2516毫秒</FONT></P><PRE><FONT size=2>　　（3）select gid,fariqi,neibuyonghu,title from Tgongwen where neibuyonghu=''办公室''</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　查询速度：60280毫秒<BR><BR>　　从以上试验中，我们可以看到如果仅用聚集索引的起始列作为查询条件和同时用到复合聚集索引的全部列的查询速度是几乎一样的，甚至比用上全部的复合索引列还要略快（在查询结果集数目一样的情况下）；而如果仅用复合聚集索引的非起始列作为查询条件的话，这个索引是不起任何作用的。当然，语句1、2的查询速度一样是因为查询的条目数一样，如果复合索引的所有列都用上，而且查询结果少的话，这样就会形成“索引覆盖”，因而性能可以达到最优。同时，请记住：无论您是否经常使用聚合索引的其他列，但其前导列一定要是使用最频繁的列。</FONT></P>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2><STRONG>四、其他书上没有的索引使用经验总结<BR><BR></STRONG>　　1、用聚合索引比用不是聚合索引的主键速度快<BR><BR>　　下面是实例语句：（都是提取25万条数据）</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16''</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　使用时间：3326毫秒</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen where gid&lt;=250000</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　使用时间：4470毫秒<BR><BR>　　这里，用聚合索引比用不是聚合索引的主键速度快了近1/4。<BR><BR>　　2、用聚合索引比用一般的主键作order by时速度快，特别是在小数据量情况下</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen order by fariqi</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：12936</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen order by gid</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：18843<BR><BR>　　这里，用聚合索引比用一般的主键作order by时，速度快了3/10。事实上，如果数据量很小的话，用聚集索引作为排序列要比使用非聚集索引速度快得明显的多；而数据量如果很大的话，如10万以上，则二者的速度差别不明显。<BR><BR>　　3、使用聚合索引内的时间段，搜索时间会按数据占整个数据表的百分比成比例减少，而无论聚合索引使用了多少个：</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi&gt;''2004-1-1''</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：6343毫秒（提取100万条） </FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi&gt;''2004-6-6''</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：3170毫秒（提取50万条）</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16''</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：3326毫秒（和上句的结果一模一样。如果采集的数量一样，那么用大于号和等于号是一样的）</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen  
<P style="TEXT-INDENT: 2em">　　　　　　　　　　　　where fariqi&gt;''2004-1-1'' and fariqi&lt;''2004-6-6''</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：3280毫秒<BR><BR>　　4、日期列不会因为有分秒的输入而减慢查询速度<BR><BR>　　下面的例子中，共有100万条数据，2004年1月1日以后的数据有50万条，但只有两个不同的日期，日期精确到日；之前有数据50万条，有5000个不同的日期，日期精确到秒。</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen  
<P style="TEXT-INDENT: 2em">　　　　　　　　　　where fariqi&gt;''2004-1-1'' order by fariqi</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：6390毫秒</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen  
<P style="TEXT-INDENT: 2em">　　　　　　　　　　　　where fariqi&lt;''2004-1-1'' order by fariqi</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：6453毫秒<BR><BR><STRONG>　　五、其他注意事项</STRONG><BR><BR>　　“水可载舟，亦可覆舟”，索引也一样。索引有助于提高检索性能，但过多或不当的索引也会导致系统低效。因为用户在表中每加进一个索引，</FONT><FONT size=2>数据库</FONT><FONT size=2>就要做更多的工作。过多的索引甚至会导致索引碎片。<BR><BR>　　所以说，我们要建立一个“适当”的索引体系，特别是对聚合索引的创建，更应精益求精，以使您的</FONT><FONT size=2>数据库</FONT><FONT size=2>能得到高性能的发挥。<BR><BR>　　当然，在实践中，作为一个尽职的</FONT><FONT size=2>数据库</FONT><FONT size=2>管理员，您还要多测试一些方案，找出哪种方案效率最高、最为有效。<BR><BR>　　<STRONG>改善SQL语句</STRONG><BR><BR>　　很多人不知道SQL语句在SQL SERVER中是如何执行的，他们担心自己所写的SQL语句会被SQL SERVER误解。比如：</FONT></P><PRE><FONT size=2>select * from table1 where name=''zhangsan'' and tID &gt; 10000</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　和执行:</FONT></P><PRE><FONT size=2>select * from table1 where tID &gt; 10000 and name=''zhangsan''</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　一些人不知道以上两条语句的执行效率是否一样，因为如果简单的从语句先后上看，这两个语句的确是不一样，如果tID是一个聚合索引，那么后一句仅仅从表的10000条以后的记录中查找就行了；而前一句则要先从全表中查找看有几个name=''zhangsan''的，而后再根据限制条件条件tID&gt;10000来提出查询结果。<BR><BR>　　事实上，这样的担心是不必要的。SQL SERVER中有一个“查询分析优化器”，它可以计算出where子句中的搜索条件并确定哪个索引能缩小表扫描的搜索空间，也就是说，它能实现自动优化。<BR><BR>　　虽然查询优化器可以根据where子句自动的进行查询优化，但大家仍然有必要了解一下“查询优化器”的工作原理，如非这样，有时查询优化器就会不按照您的本意进行快速查询。<BR><BR>　　在查询分析阶段，查询优化器查看查询的每个阶段并决定限制需要扫描的数据量是否有用。如果一个阶段可以被用作一个扫描参数（SARG），那么就称之为可优化的，并且可以利用索引快速获得所需数据。<BR><BR>　　SARG的定义：用于限制搜索的一个操作，因为它通常是指一个特定的匹配，一个值得范围内的匹配或者两个以上条件的AND连接。形式如下：</FONT></P><PRE><FONT size=2>列名 操作符 &lt;常数 或 变量&gt; 
<P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">或 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">&lt;常数 或 变量&gt; 操作符列名</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　列名可以出现在操作符的一边，而常数或变量出现在操作符的另一边。如：</FONT></P><PRE><FONT size=2>Name=’张三’ 
<P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">价格&gt;5000 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">5000&lt;价格 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">Name=’张三’ and 价格&gt;5000</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　如果一个表达式不能满足SARG的形式，那它就无法限制搜索的范围了，也就是SQL SERVER必须对每一行都判断它是否满足WHERE子句中的所有条件。所以一个索引对于不满足SARG形式的表达式来说是无用的。<BR><BR>　　介绍完SARG后，我们来总结一下使用SARG以及在实践中遇到的和某些资料上结论不同的经验：<BR><BR>　　1、Like语句是否属于SARG取决于所使用的通配符的类型</FONT></P><PRE><FONT size=2>如：name like ‘张%’ ，这就属于SARG 
<P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">而：name like ‘%张’ ,就不属于SARG。</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　原因是通配符%在字符串的开通使得索引无法使用。<BR><BR>　　2、or 会引起全表扫描<BR><BR>　　Name=’张三’ and 价格&gt;5000 符号SARG，而：Name=’张三’ or 价格&gt;5000 则不符合SARG。使用or会引起全表扫描。<BR><BR>　　3、非操作符、函数引起的不满足SARG形式的语句<BR><BR>　　不满足SARG形式的语句最典型的情况就是包括非操作符的语句，如：NOT、!=、&lt;&gt;、!&lt;、!&gt;、NOT EXISTS、NOT IN、NOT LIKE等，另外还有函数。下面就是几个不满足SARG形式的例子：</FONT></P><PRE><FONT size=2>ABS(价格)&lt;5000 
<P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">Name like ‘%三’ 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">有些表达式，如： 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">WHERE 价格*2&gt;5000 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">SQL SERVER也会认为是SARG，SQL SERVER会将此式转化为： 
</P><P style="TEXT-INDENT: 2em">WHERE 价格&gt;2500/2</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　但我们不推荐这样使用，因为有时SQL SERVER不能保证这种转化与原始表达式是完全等价的。<BR><BR>　　4、IN 的作用相当与OR<BR><BR>　　语句：</FONT></P><PRE><FONT size=2>Select * from table1 where tid in (2,3) 
<P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">和 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">Select * from table1 where tid=2 or tid=3</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　是一样的，都会引起全表扫描，如果tid上有索引，其索引也会失效。<BR><BR>　　5、尽量少用NOT<BR><BR>　　6、exists 和 in 的执行效率是一样的<BR><BR>　　很多资料上都显示说，exists要比in的执行效率要高，同时应尽可能的用not exists来代替not in。但事实上，我试验了一下，发现二者无论是前面带不带not，二者之间的执行效率都是一样的。因为涉及子查询，我们试验这次用SQL SERVER自带的pubs</FONT><FONT size=2>数据库</FONT><FONT size=2>。运行前我们可以把SQL SERVER的statistics I/O状态打开：</FONT></P><PRE><FONT size=2>（1）select title,price from titles where title_id in (select title_id from sales where qty&gt;30)</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　该句的执行结果为：<BR><BR>表 ''sales''。扫描计数 18，逻辑读 56 次，物理读 0 次，预读 0 次。<BR>表 ''titles''。扫描计数 1，逻辑读 2 次，物理读 0 次，预读 0 次。</FONT></P><PRE><FONT size=2>（2）select title,price from titles  
<P style="TEXT-INDENT: 2em">　　　　　　　where exists (select * from sales  
</P><P style="TEXT-INDENT: 2em">　　　　　　　　where sales.title_id=titles.title_id and qty&gt;30)</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　第二句的执行结果为：<BR><BR>表 ''sales''。扫描计数 18，逻辑读 56 次，物理读 0 次，预读 0 次。<BR>表 ''titles''。扫描计数 1，逻辑读 2 次，物理读 0 次，预读 0 次。<BR><BR>　　我们从此可以看到用exists和用in的执行效率是一样的。<BR><BR>　　7、用函数charindex()和前面加通配符%的LIKE执行效率一样<BR><BR>　　前面，我们谈到，如果在LIKE前面加上通配符%，那么将会引起全表扫描，所以其执行效率是低下的。但有的资料介绍说，用函数charindex()来代替LIKE速度会有大的提升，经我试验，发现这种说明也是错误的：<BR>　</FONT></P><PRE><FONT size=2>select gid,title,fariqi,reader from tgongwen  
<P style="TEXT-INDENT: 2em">　　　　　　　　　where charindex(''刑侦支队'',reader)&gt;0 and fariqi&gt;''2004-5-5''</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：7秒，另外：扫描计数 4，逻辑读 7155 次，物理读 0 次，预读 0 次。</FONT></P><PRE><FONT size=2>select gid,title,fariqi,reader from tgongwen  
<P style="TEXT-INDENT: 2em">　　　　　　　　　where reader like ''%'' + ''刑侦支队'' + ''%'' and fariqi&gt;''2004-5-5''</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：7秒，另外：扫描计数 4，逻辑读 7155 次，物理读 0 次，预读 0 次。<BR><BR>　　8、union并不绝对比or的执行效率高<BR><BR>　　我们前面已经谈到了在where子句中使用or会引起全表扫描，一般的，我所见过的资料都是推荐这里用union来代替or。事实证明，这种说法对于大部分都是适用的。</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen  
<P style="TEXT-INDENT: 2em">　　　　　　　　　　where fariqi=''2004-9-16'' or gid&gt;9990000</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：68秒。扫描计数 1，逻辑读 404008 次，物理读 283 次，预读 392163 次。</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16''  
<P style="TEXT-INDENT: 2em">union 
</P><P style="TEXT-INDENT: 2em">select gid,fariqi,neibuyonghu,reader,title from Tgongwen where gid&gt;9990000</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：9秒。扫描计数 8，逻辑读 67489 次，物理读 216 次，预读 7499 次。<BR><BR>　　看来，用union在通常情况下比用or的效率要高的多。<BR><BR>　　但经过试验，笔者发现如果or两边的查询列是一样的话，那么用union则反倒和用or的执行速度差很多，虽然这里union扫描的是索引，而or扫描的是全表。<BR>　</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen  
<P style="TEXT-INDENT: 2em">　　　　　　　　　　where fariqi=''2004-9-16'' or fariqi=''2004-2-5''</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：6423毫秒。扫描计数 2，逻辑读 14726 次，物理读 1 次，预读 7176 次。</FONT></P><PRE><FONT size=2>select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16''  
<P style="TEXT-INDENT: 2em">union 
</P><P style="TEXT-INDENT: 2em">select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-2-5''</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：11640毫秒。扫描计数 8，逻辑读 14806 次，物理读 108 次，预读 1144 次。<BR><BR>　　9、字段提取要按照“需多少、提多少”的原则，避免“select *”<BR><BR>　　我们来做一个试验：</FONT></P><PRE><FONT size=2>select top 10000 gid,fariqi,reader,title from tgongwen order by gid desc</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：4673毫秒</FONT></P><PRE><FONT size=2>select top 10000 gid,fariqi,title from tgongwen order by gid desc</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：1376毫秒</FONT></P><PRE><FONT size=2>select top 10000 gid,fariqi from tgongwen order by gid desc</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：80毫秒<BR><BR>　　由此看来，我们每少提取一个字段，数据的提取速度就会有相应的提升。提升的速度还要看您舍弃的字段的大小来判断。<BR><BR>　　10、count(*)不比count(字段)慢<BR><BR>　　某些资料上说：用*会统计所有列，显然要比一个世界的列名效率低。这种说法其实是没有根据的。我们来看：</FONT></P><PRE><FONT size=2>select count(*) from Tgongwen</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：1500毫秒</FONT></P><PRE><FONT size=2>select count(gid) from Tgongwen </FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：1483毫秒</FONT></P><PRE><FONT size=2>select count(fariqi) from Tgongwen</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：3140毫秒</FONT></P><PRE><FONT size=2>select count(title) from Tgongwen</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：52050毫秒<BR><BR>　　从以上可以看出，如果用count(*)和用count(主键)的速度是相当的，而count(*)却比其他任何除主键以外的字段汇总速度要快，而且字段越长，汇总的速度就越慢。我想，如果用count(*)， SQL SERVER可能会自动查找最小字段来汇总的。当然，如果您直接写count(主键)将会来的更直接些。<BR><BR>　　11、order by按聚集索引列排序效率最高<BR><BR>　　我们来看：（gid是主键，fariqi是聚合索引列）：</FONT></P><PRE><FONT size=2>select top 10000 gid,fariqi,reader,title from tgongwen</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：196 毫秒。 扫描计数 1，逻辑读 289 次，物理读 1 次，预读 1527 次。</FONT></P><PRE><FONT size=2>select top 10000 gid,fariqi,reader,title from tgongwen order by gid asc</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：4720毫秒。 扫描计数 1，逻辑读 41956 次，物理读 0 次，预读 1287 次。</FONT></P><PRE><FONT size=2>select top 10000 gid,fariqi,reader,title from tgongwen order by gid desc</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：4736毫秒。 扫描计数 1，逻辑读 55350 次，物理读 10 次，预读 775 次。</FONT></P><PRE><FONT size=2>select top 10000 gid,fariqi,reader,title from tgongwen order by fariqi asc</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：173毫秒。 扫描计数 1，逻辑读 290 次，物理读 0 次，预读 0 次。</FONT></P><PRE><FONT size=2>select top 10000 gid,fariqi,reader,title from tgongwen order by fariqi desc</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　用时：156毫秒。 扫描计数 1，逻辑读 289 次，物理读 0 次，预读 0 次。<BR><BR>　　从以上我们可以看出，不排序的速度以及逻辑读次数都是和“order by 聚集索引列” 的速度是相当的，但这些都比“order by 非聚集索引列”的查询速度是快得多的。<BR><BR>　　同时，按照某个字段进行排序的时候，无论是正序还是倒序，速度是基本相当的。<BR><BR>　　12、高效的TOP<BR><BR>　　事实上，在查询和提取超大容量的数据集时，影响</FONT><FONT size=2>数据库</FONT><FONT size=2>响应时间的最大因素不是数据查找，而是物理的I/0操作。如：</FONT></P><PRE><FONT size=2>select top 10 * from ( 
<P style="TEXT-INDENT: 2em">select top 10000 gid,fariqi,title from tgongwen 
</P><P style="TEXT-INDENT: 2em">where neibuyonghu=''办公室'' 
</P><P style="TEXT-INDENT: 2em">order by gid desc) as a 
</P><P style="TEXT-INDENT: 2em">order by gid asc</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　这条语句，从理论上讲，整条语句的执行时间应该比子句的执行时间长，但事实相反。因为，子句执行后返回的是10000条记录，而整条语句仅返回10条语句，所以影响</FONT><FONT size=2>数据库</FONT><FONT size=2>响应时间最大的因素是物理I/O操作。而限制物理I/O操作此处的最有效方法之一就是使用TOP关键词了。TOP关键词是SQL SERVER中经过系统优化过的一个用来提取前几条或前几个百分比数据的词。经笔者在实践中的应用，发现TOP确实很好用，效率也很高。但这个词在另外一个大型</FONT><FONT size=2>数据库</FONT><FONT size=2>ORACLE中却没有，这不能说不是一个遗憾，虽然在ORACLE中可以用其他方法（如：rownumber）来解决。在以后的关于“实现千万级数据的分页显示存储过程”的讨论中，我们就将用到TOP这个关键词。<BR><BR>　　到此为止，我们上面讨论了如何实现从大容量的</FONT><FONT size=2>数据库</FONT><FONT size=2>中快速地查询出您所需要的数据方法。当然，我们介绍的这些方法都是“软”方法，在实践中，我们还要考虑各种“硬”因素，如：网络性能、</FONT><FONT size=2>服务器</FONT><FONT size=2>的性能、</FONT><FONT color=#333333 size=2>操作系统</FONT><FONT size=2>的性能，甚至网卡、交换机等。</FONT></P>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2><STRONG>实现小数据量和海量数据的通用分页显示存储过程<BR><BR></STRONG>　　建立一个 Web 应用，分页浏览功能必不可少。这个问题是</FONT><FONT size=2>数据库</FONT><FONT size=2>处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法，也就是利用ADO自带的分页功能（利用游标）来实现分页。但这种分页方法仅适用于较小数据量的情形，因为游标本身有缺点：游标是存放在内存中，很费内存。游标一建立，就将相关的记录锁住，直到取消游标。游标提供了对特定集合中逐行扫描的手段，一般使用游标来逐行遍历数据，根据取出数据条件的不同进行不同的操作。而对于多表和大表中定义的游标（大的数据集合）循环很容易使程序进入一个漫长的等待甚至死机。<BR><BR>　　更重要的是，对于非常大的数据模型而言，分页检索时，如果按照传统的每次都加载整个数据源的方法是非常浪费资源的。现在流行的分页方法一般是检索页面大小的块区的数据，而非检索所有的数据，然后单步执行当前行。<BR><BR>　　最早较好地实现这种根据页面大小和页码来提取数据的方法大概就是“俄罗斯存储过程”。这个存储过程用了游标，由于游标的局限性，所以这个方法并没有得到大家的普遍认可。<BR><BR>　　后来，网上有人改造了此存储过程，下面的存储过程就是结合我们的办公自动化实例写的分页存储过程： </FONT></P>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2></FONT></P><PRE><FONT size=2>CREATE procedure pagination1 
<P style="TEXT-INDENT: 2em">(@pagesize int, --页面大小，如每页存储20条记录 
</P><P style="TEXT-INDENT: 2em">@pageindex int --当前页码 
</P><P style="TEXT-INDENT: 2em">) 
</P><P style="TEXT-INDENT: 2em">as 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">set nocount on 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">begin 
</P><P style="TEXT-INDENT: 2em">declare @indextable table(id int identity(1,1),nid int) --定义表变量 
</P><P style="TEXT-INDENT: 2em">declare @PageLowerBound int --定义此页的底码 
</P><P style="TEXT-INDENT: 2em">declare @PageUpperBound int --定义此页的顶码 
</P><P style="TEXT-INDENT: 2em">set @PageLowerBound=(@pageindex-1)*@pagesize 
</P><P style="TEXT-INDENT: 2em">set @PageUpperBound=@PageLowerBound+@pagesize 
</P><P style="TEXT-INDENT: 2em">set rowcount @PageUpperBound 
</P><P style="TEXT-INDENT: 2em">insert into @indextable(nid) select gid from TGongwen  
</P><P style="TEXT-INDENT: 2em">　　　　　　where fariqi &gt;dateadd(day,-365,getdate()) order by fariqi desc 
</P><P style="TEXT-INDENT: 2em">select O.gid,O.mid,O.title,O.fadanwei,O.fariqi from TGongwen O,@indextable t  
</P><P style="TEXT-INDENT: 2em">           where O.gid=t.nid and t.id&gt;@PageLowerBound  
</P><P style="TEXT-INDENT: 2em">                        and t.id&lt;=@PageUpperBound order by t.id 
</P><P style="TEXT-INDENT: 2em">end 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">set nocount off</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　以上存储过程运用了SQL SERVER的最新技术――表变量。应该说这个存储过程也是一个非常优秀的分页存储过程。当然，在这个过程中，您也可以把其中的表变量写成临时表：CREATE TABLE #Temp。但很明显，在SQL SERVER中，用临时表是没有用表变量快的。所以笔者刚开始使用这个存储过程时，感觉非常的不错，速度也比原来的ADO的好。但后来，我又发现了比此方法更好的方法。<BR>　　笔者曾在网上看到了一篇小短文《从数据表中取出第n条到第m条的记录的方法》，全文如下：</FONT></P><PRE><FONT size=2>从publish 表中取出第 n 条到第 m 条的记录：  
<P style="TEXT-INDENT: 2em">SELECT TOP m-n+1 *  
</P><P style="TEXT-INDENT: 2em">FROM publish  
</P><P style="TEXT-INDENT: 2em">WHERE (id NOT IN  
</P><P style="TEXT-INDENT: 2em">　　　　(SELECT TOP n-1 id  
</P><P style="TEXT-INDENT: 2em">　　　　 FROM publish))  
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">id 为publish 表的关键字 </P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　我当时看到这篇文章的时候，真的是精神为之一振，觉得思路非常得好。等到后来，我在作办公自动化系统（</FONT><FONT size=2>ASP</FONT><FONT size=2>.NET+ C#＋SQL SERVER）的时候，忽然想起了这篇文章，我想如果把这个语句改造一下，这就可能是一个非常好的分页存储过程。于是我就满网上找这篇文章，没想到，文章还没找到，却找到了一篇根据此语句写的一个分页存储过程，这个存储过程也是目前较为流行的一种分页存储过程，我很后悔没有争先把这段文字改造成存储过程：</FONT></P><PRE><FONT size=2>CREATE PROCEDURE pagination2 
<P style="TEXT-INDENT: 2em">( 
</P><P style="TEXT-INDENT: 2em">@SQL nVARCHAR(4000), --不带排序语句的SQL语句 
</P><P style="TEXT-INDENT: 2em">@Page int, --页码 
</P><P style="TEXT-INDENT: 2em">@RecsPerPage int, --每页容纳的记录数 
</P><P style="TEXT-INDENT: 2em">@ID VARCHAR(255), --需要排序的不重复的ID号 
</P><P style="TEXT-INDENT: 2em">@Sort VARCHAR(255) --排序字段及规则 
</P><P style="TEXT-INDENT: 2em">) 
</P><P style="TEXT-INDENT: 2em">AS 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">DECLARE @Str nVARCHAR(4000) 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">SET @Str=''SELECT TOP ''+CAST(@RecsPerPage AS VARCHAR(20))+'' * FROM  
</P><P style="TEXT-INDENT: 2em">(''+@SQL+'') T WHERE T.''+@ID+''NOT IN (SELECT TOP ''+CAST((@RecsPerPage*(@Page-1))  
</P><P style="TEXT-INDENT: 2em">AS VARCHAR(20))+'' ''+@ID+'' FROM (''+@SQL+'') T9 ORDER BY ''+@Sort+'') ORDER BY ''+@Sort 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">PRINT @Str 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">EXEC sp_ExecuteSql @Str 
</P><P style="TEXT-INDENT: 2em">GO</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　其实，以上语句可以简化为：</FONT></P><PRE><FONT size=2>SELECT TOP 页大小 * 
<P style="TEXT-INDENT: 2em">FROM Table1 WHERE (ID NOT IN (SELECT TOP 页大小*页数 id FROM 表 ORDER BY id)) 
</P><P style="TEXT-INDENT: 2em">ORDER BY ID</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　但这个存储过程有一个致命的缺点，就是它含有NOT IN字样。虽然我可以把它改造为：</FONT></P><PRE><FONT size=2>SELECT TOP 页大小 * 
<P style="TEXT-INDENT: 2em">FROM Table1 WHERE not exists 
</P><P style="TEXT-INDENT: 2em">(select * from (select top (页大小*页数) * from table1 order by id) b where b.id=a.id ) 
</P><P style="TEXT-INDENT: 2em">order by id</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　即，用not exists来代替not in，但我们前面已经谈过了，二者的执行效率实际上是没有区别的。既便如此，用TOP 结合NOT IN的这个方法还是比用游标要来得快一些。<BR><BR>　　虽然用not exists并不能挽救上个存储过程的效率，但使用SQL SERVER中的TOP关键字却是一个非常明智的选择。因为分页优化的最终目的就是避免产生过大的记录集，而我们在前面也已经提到了TOP的优势，通过TOP 即可实现对数据量的控制。<BR><BR>　　在分页算法中，影响我们查询速度的关键因素有两点：TOP和NOT IN。TOP可以提高我们的查询速度，而NOT IN会减慢我们的查询速度，所以要提高我们整个分页算法的速度，就要彻底改造NOT IN，同其他方法来替代它。<BR><BR>　　我们知道，几乎任何字段，我们都可以通过max(字段)或min(字段)来提取某个字段中的最大或最小值，所以如果这个字段不重复，那么就可以利用这些不重复的字段的max或min作为分水岭，使其成为分页算法中分开每页的参照物。在这里，我们可以用操作符“&gt;”或“&lt;”号来完成这个使命，使查询语句符合SARG形式。如：</FONT></P><PRE><FONT size=2>Select top 10 * from table1 where id&gt;200</FONT></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　于是就有了如下分页方案：</FONT></P><PRE><FONT size=2>select top 页大小 * 
<P style="TEXT-INDENT: 2em">from table1  
</P><P style="TEXT-INDENT: 2em">where id&gt; 
</P><P style="TEXT-INDENT: 2em">(select max (id) from  
</P><P style="TEXT-INDENT: 2em">(select top ((页码-1)*页大小) id from table1 order by id) as T 
</P><P style="TEXT-INDENT: 2em">)  
</P><P style="TEXT-INDENT: 2em">order by id</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　在选择即不重复值，又容易分辨大小的列时，我们通常会选择主键。下表列出了笔者用有着1000万数据的办公自动化系统中的表，在以GID（GID是主键，但并不是聚集索引。）为排序列、提取gid,fariqi,title字段，分别以第1、10、100、500、1000、1万、10万、25万、50万页为例，测试以上三种分页方案的执行速度：（单位：毫秒）</FONT></P>
<P style="TEXT-INDENT: 2em">
</P><P>
</P><P style="TEXT-INDENT: 2em">
<TABLE style="COLOR: #000000; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="70%" align=center border=1>
<P style="TEXT-INDENT: 2em">
<TBODY>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD align=middle width="22%"><STRONG><FONT size=2>页码</FONT></STRONG></TD>
</P><P style="TEXT-INDENT: 2em">
<TD align=middle width="25%"><STRONG><FONT size=2>方案1</FONT></STRONG></TD>
</P><P style="TEXT-INDENT: 2em">
<TD align=middle width="30%"><STRONG><FONT size=2>方案2</FONT></STRONG></TD>
</P><P style="TEXT-INDENT: 2em">
<TD align=middle width="23%"><STRONG><FONT size=2>方案3</FONT></STRONG></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="22%"><FONT size=2>1</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="25%"><FONT size=2>60</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="30%"><FONT size=2>30</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="23%"><FONT size=2>76</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="22%"><FONT size=2>10</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="25%"><FONT size=2>46</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="30%"><FONT size=2>16</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="23%"><FONT size=2>63</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="22%"><FONT size=2>100</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="25%"><FONT size=2>1076</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="30%"><FONT size=2>720</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="23%"><FONT size=2>130</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="22%"><FONT size=2>500</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="25%"><FONT size=2>540</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="30%"><FONT size=2>12943</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="23%"><FONT size=2>83</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="22%"><FONT size=2>1000</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="25%"><FONT size=2>17110</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="30%"><FONT size=2>470</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="23%"><FONT size=2>250</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="22%"><FONT size=2>10000</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="25%"><FONT size=2>24796</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="30%"><FONT size=2>4500</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="23%"><FONT size=2>140</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="22%"><FONT size=2>100000</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="25%"><FONT size=2>38326</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="30%"><FONT size=2>42283</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="23%"><FONT size=2>1553</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="22%"><FONT size=2>250000</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="25%"><FONT size=2>28140</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="30%"><FONT size=2>128720</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="23%"><FONT size=2>2330</FONT></TD></P></TR>
</P><P style="TEXT-INDENT: 2em">
<TR>
<P style="TEXT-INDENT: 2em">
<TD width="22%"><FONT size=2>500000</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="25%"><FONT size=2>121686</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="30%"><FONT size=2>127846</FONT></TD>
</P><P style="TEXT-INDENT: 2em">
<TD width="23%"><FONT size=2>7168</FONT></TD></P></TR></P></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　从上表中，我们可以看出，三种存储过程在执行100页以下的分页命令时，都是可以信任的，速度都很好。但第一种方案在执行分页1000页以上后，速度就降了下来。第二种方案大约是在执行分页1万页以上后速度开始降了下来。而第三种方案却始终没有大的降势，后劲仍然很足。<BR>　　在确定了第三种分页方案后，我们可以据此写一个存储过程。大家知道SQL SERVER的存储过程是事先编译好的SQL语句，它的执行效率要比通过WEB页面传来的SQL语句的执行效率要高。下面的存储过程不仅含有分页方案，还会根据页面传来的参数来确定是否进行数据总数统计。<BR><BR>--获取指定页的数据：</FONT></P><PRE><FONT size=2>CREATE PROCEDURE pagination3 
<P style="TEXT-INDENT: 2em">@tblName varchar(255), -- 表名 
</P><P style="TEXT-INDENT: 2em">@strGetFields varchar(1000) = ''*'', -- 需要返回的列  
</P><P style="TEXT-INDENT: 2em">@fldName varchar(255)='''', -- 排序的字段名 
</P><P style="TEXT-INDENT: 2em">@PageSize int = 10, -- 页尺寸 
</P><P style="TEXT-INDENT: 2em">@PageIndex int = 1, -- 页码 
</P><P style="TEXT-INDENT: 2em">@doCount bit = 0, -- 返回记录总数, 非 0 值则返回 
</P><P style="TEXT-INDENT: 2em">@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序 
</P><P style="TEXT-INDENT: 2em">@strWhere varchar(1500) = '''' -- 查询条件 (注意: 不要加 where) 
</P><P style="TEXT-INDENT: 2em">AS 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">declare @strSQL varchar(5000) -- 主语句 
</P><P style="TEXT-INDENT: 2em">declare @strTmp varchar(110) -- 临时变量 
</P><P style="TEXT-INDENT: 2em">declare @strOrder varchar(400) -- 排序类型 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">if @doCount != 0 
</P><P style="TEXT-INDENT: 2em">begin 
</P><P style="TEXT-INDENT: 2em">if @strWhere !='''' 
</P><P style="TEXT-INDENT: 2em">set @strSQL = "select count(*) as Total from [" + @tblName + "] where "+@strWhere 
</P><P style="TEXT-INDENT: 2em">else 
</P><P style="TEXT-INDENT: 2em">set @strSQL = "select count(*) as Total from [" + @tblName + "]" 
</P><P style="TEXT-INDENT: 2em">end </P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>--以上代码的意思是如果@doCount传递过来的不是0，就执行总数统计。以下的所有代码都是@doCount为0的情况：</FONT></P><PRE><FONT size=2>else 
<P style="TEXT-INDENT: 2em">begin 
</P><P style="TEXT-INDENT: 2em">if @OrderType != 0 
</P><P style="TEXT-INDENT: 2em">begin 
</P><P style="TEXT-INDENT: 2em">set @strTmp = "&lt;(select min" 
</P><P style="TEXT-INDENT: 2em">set @strOrder = " order by [" + @fldName +"] desc"</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>--如果@OrderType不是0，就执行降序，这句很重要！</FONT></P><PRE><FONT size=2>end 
<P style="TEXT-INDENT: 2em">else 
</P><P style="TEXT-INDENT: 2em">begin 
</P><P style="TEXT-INDENT: 2em">set @strTmp = "&gt;(select max" 
</P><P style="TEXT-INDENT: 2em">set @strOrder = " order by [" + @fldName +"] asc" 
</P><P style="TEXT-INDENT: 2em">end 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">if @PageIndex = 1 
</P><P style="TEXT-INDENT: 2em">begin 
</P><P style="TEXT-INDENT: 2em">if @strWhere != ''''  
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " 
</P><P style="TEXT-INDENT: 2em">　　　　　　　　from [" + @tblName + "] where " + @strWhere + " " + @strOrder 
</P><P style="TEXT-INDENT: 2em">else 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ "  
</P><P style="TEXT-INDENT: 2em">　　　　　　　　from ["+ @tblName + "] "+ @strOrder</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>--如果是第一页就执行以上代码，这样会加快执行速度</FONT></P><PRE><FONT size=2>end 
<P style="TEXT-INDENT: 2em">else 
</P><P style="TEXT-INDENT: 2em">begin</P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>--以下代码赋予了@strSQL以真正执行的SQL代码<BR>　</FONT></P><PRE><FONT size=2>set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from [" 
<P style="TEXT-INDENT: 2em">+ @tblName + "] where [" + @fldName + "]" + @strTmp + "(["+ @fldName + "])  
</P><P style="TEXT-INDENT: 2em">　　　　　　from (select top " + str((@PageIndex-1)*@PageSize) + " ["+ @fldName + "]  
</P><P style="TEXT-INDENT: 2em">　　　　　　from [" + @tblName + "]" + @strOrder + ") as tblTmp)"+ @strOrder 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">if @strWhere != '''' 
</P><P style="TEXT-INDENT: 2em">set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from [" 
</P><P style="TEXT-INDENT: 2em">+ @tblName + "] where [" + @fldName + "]" + @strTmp + "([" 
</P><P style="TEXT-INDENT: 2em">+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " [" 
</P><P style="TEXT-INDENT: 2em">+ @fldName + "] from [" + @tblName + "] where " + @strWhere + " " 
</P><P style="TEXT-INDENT: 2em">+ @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder 
</P><P style="TEXT-INDENT: 2em">end  
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">end  
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">exec (@strSQL) 
</P><P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em">GO 
</P><P style="TEXT-INDENT: 2em"></P></FONT></P></PRE>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　上面的这个存储过程是一个通用的存储过程，其注释已写在其中了。 在大数据量的情况下，特别是在查询最后几页的时候，查询时间一般不会超过9秒；而用其他存储过程，在实践中就会导致超时，所以这个存储过程非常适用于大容量</FONT><FONT size=2>数据库</FONT><FONT size=2>的查询。 笔者希望能够通过对以上存储过程的解析，能给大家带来一定的启示，并给工作带来一定的效率提升，同时希望同行提出更优秀的实时数据分页算法。</FONT></P>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2><STRONG>聚集索引的重要性和如何选择聚集索引<BR><BR></STRONG>　　至此我们讨论了实现小数据量和海量数据的通用分页显示存储过程。这是因为在将本存储过程应用于“办公自动化”系统的实践中时，笔者发现这第三种存储过程在小数据量的情况下，有如下现象：</FONT></P>
<P style="TEXT-INDENT: 2em">
</P><P><FONT size=2>　　1、分页速度一般维持在1秒和3秒之间。<BR><BR>　　2、在查询最后一页时，速度一般为5秒至8秒，哪怕分页总数只有3页或30万页。<BR><BR>　　虽然在超大容量情况下，这个分页的实现过程是很快的，但在分前几页时，这个1－3秒的速度比起第一种甚至没有经过优化的分页方法速度还要慢，借用户的话说就是“还没有ACCESS</FONT><FONT size=2>数据库</FONT><FONT size=2>速度快”，这个认识足以导致用户放弃使用您开发的系统。<BR><BR>　　笔者就此分析了一下，原来产生这种现象的症结是如此的简单，但又如此的重要：排序的字段不是聚集索引！<BR><BR>　　本篇文章的题目是：“查询优化及分页算法方案”。笔者只所以把“查询优化”和“分页算法”这两个联系不是很大的论题放在一起，就是因为二者都需要一个非常重要的东西――聚集索引。<BR><BR>　　在前面的讨论中我们已经提到了，聚集索引有两个最大的优势：<BR><BR>　　1、以最快的速度缩小查询范围。<BR><BR>　　2、以最快的速度进行字段排序。<BR><BR>　　第1条多用在查询优化时，而第2条多用在进行分页时的数据排序。<BR><BR>　　而聚集索引在每个表内又只能建立一个，这使得聚集索引显得更加的重要。聚集索引的挑选可以说是实现“查询优化”和“高效分页”的最关键因素。<BR>　　但要既使聚集索引列既符合查询列的需要，又符合排序列的需要，这通常是一个矛盾。笔者前面“索引”的讨论中，将fariqi，即用户发文日期作为了聚集索引的起始列，日期的精确度为“日”。这种作法的优点，前面已经提到了，在进行划时间段的快速查询中，比用ID主键列有很大的优势。<BR>　　但在分页时，由于这个聚集索引列存在着重复记录，所以无法使用max或min来最为分页的参照物，进而无法实现更为高效的排序。而如果将ID主键列作为聚集索引，那么聚集索引除了用以排序之外，没有任何用处，实际上是浪费了聚集索引这个宝贵的资源。<BR>　　为解决这个矛盾，笔者后来又添加了一个日期列，其默认值为getdate()。用户在写入记录时，这个列自动写入当时的时间，时间精确到毫秒。即使这样，为了避免可能性很小的重合，还要在此列上创建UNIQUE约束。将此日期列作为聚集索引列。<BR>　　有了这个时间型聚集索引列之后，用户就既可以用这个列查找用户在插入数据时的某个时间段的查询，又可以作为唯一列来实现max或min，成为分页算法的参照物。<BR>　　经过这样的优化，笔者发现，无论是大数据量的情况下还是小数据量的情况下，分页速度一般都是几十毫秒，甚至0毫秒。而用日期段缩小范围的查询速度比原来也没有任何迟钝。聚集索引是如此的重要和珍贵，所以笔者总结了一下，一定要将聚集索引建立在：<BR><BR>1、您最频繁使用的、用以缩小查询范围的字段上；<BR><BR>2、您最频繁使用的、需要排序的字段上。</FONT></P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/3858891220085281027592</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/3858891220085281027592</guid>
    <pubDate>Sat, 28 Jun 2008 22:27:59 +0800</pubDate>
    <dcterms:modified>2008-06-28T22:27:59+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[日期,日期格式及解析和计算]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/38588912200852885615483</link>
    <description><![CDATA[<div>Java 语言的Calendar(日历),Date(日期), 和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分. 日期是商业逻辑计算一个关键的部分. 所有的开发者都应该能够计算未来的日期, 定制日期的显示格式, 并将文本数据解析成日期对象. 我们写了两篇文章, 这是第一篇, 我们将大概的学习日期, 日期格式, 日期的解析和日期的计算.&nbsp;&nbsp;<BR><BR><BR>我们将讨论下面的类:&nbsp;&nbsp;<BR><BR>1、具体类(和抽象类相对)java.util.Date&nbsp;&nbsp;<BR>2、抽象类java.text.DateFormat 和它的一个具体子类,java.text.SimpleDateFormat&nbsp;&nbsp;<BR>3、抽象类java.util.Calendar 和它的一个具体子类,java.util.GregorianCalendar&nbsp;&nbsp;<BR><BR>具体类可以被实例化, 但是抽象类却不能. 你首先必须实现抽象类的一个具体子类.&nbsp;&nbsp;<BR><BR>Date 类从Java 开发包(JDK) 1.0 就开始进化, 当时它只包含了几个取得或者设置一个日期数据的各个部分的方法, 比如说月, 日, 和年. 这些方法现在遭到了批评并且已经被转移到了Calendar类里去了, 我们将在本文中进一步讨论它. 这种改进旨在更好的处理日期数据的国际化格式. 就象在JDK 1.1中一样, Date 类实际上只是一个包裹类, 它包含的是一个长整型数据, 表示的是从GMT(格林尼治标准时间)1970年, 1 月 1日00:00:00这一刻之前或者是之后经历的毫秒数.&nbsp;&nbsp;<BR><BR><BR>一、创建一个日期对象&nbsp;&nbsp;<BR><BR>让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数的简单例子. 这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间.&nbsp;&nbsp;<BR>[code:1:ad22b58018]import java.util.Date;&nbsp;&nbsp;<BR><BR>public class DateExample1 {&nbsp;&nbsp;<BR>public static void main(String[] args) {&nbsp;&nbsp;<BR>// Get the system date/time&nbsp;&nbsp;<BR>Date date = new Date();&nbsp;&nbsp;<BR><BR>System.out.println(date.getTime());&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>[/code:1:ad22b58018] <BR><BR>在星期六, 2001年9月29日, 下午大约是6:50的样子, 上面的例子在系统输出设备上显示的结果是 1001803809710. 在这个例子中,值得注意的是我们使用了Date 构造函数创建一个日期对象, 这个构造函数没有接受任何参数. 而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期.&nbsp;&nbsp;<BR><BR>那么, 现在我们已经知道了如何获取从1970年1月1日开始经历的毫秒数了. 我们如何才能以一种用户明白的格式来显示这个日期呢? 在这里类java.text.SimpleDateFormat 和它的抽象基类 java.text.DateFormat 就派得上用场了.&nbsp;&nbsp;<BR><BR><BR>二、日期数据的定制格式&nbsp;&nbsp;<BR><BR>假如我们希望定制日期数据的格式, 比方星期六-9月-29日-2001年. 下面的例子展示了如何完成这个工作: <BR>[code:1:ad22b58018]import java.text.SimpleDateFormat;&nbsp;&nbsp;<BR>import java.util.Date;&nbsp;&nbsp;<BR><BR>public class DateExample2 {&nbsp;&nbsp;<BR><BR>public static void main(String[] args) {&nbsp;&nbsp;<BR><BR>SimpleDateFormat bartDateFormat =&nbsp;&nbsp;<BR>new SimpleDateFormat("EEEE-MMMM-dd-yyyy");&nbsp;&nbsp;<BR><BR>Date date = new Date();&nbsp;&nbsp;<BR><BR>System.out.println(bartDateFormat.format(date));&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>[/code:1:ad22b58018] <BR>只要通过向SimpleDateFormat 的构造函数传递格式字符串"EEE-MMMM-dd-yyyy", 我们就能够指明自己想要的格式. 你应该可以看见, 格式字符串中的ASCII 字符告诉格式化函数下面显示日期数据的哪一个部分. EEEE是星期, MMMM是月, dd是日, yyyy是年. 字符的个数决定了日期是如何格式化的.传递"EE-MM-dd-yy"会显示 Sat-09-29-01. 请察看Sun 公司的Web 站点获取日期格式化选项的完整的指示.<BR>三、将文本数据解析成日期对象&nbsp;&nbsp;<BR><BR>假设我们有一个文本字符串包含了一个格式化了的日期对象, 而我们希望解析这个字符串并从文本日期数据创建一个日期对象. 我们将再次以格式化字符串"MM-dd-yyyy" 调用SimpleDateFormat类, 但是这一次, 我们使用格式化解析而不是生成一个文本日期数据. 我们的例子, 显示在下面, 将解析文本字符串"9-29-2001"并创建一个值为001736000000 的日期对象.&nbsp;&nbsp;<BR><BR>例子程序:&nbsp;&nbsp;<BR>[code:1:10d3268d34]import java.text.SimpleDateFormat;&nbsp;&nbsp;<BR>import java.util.Date;&nbsp;&nbsp;<BR><BR>public class DateExample3 {&nbsp;&nbsp;<BR><BR>public static void main(String[] args) {&nbsp;&nbsp;<BR>// Create a date formatter that can parse dates of&nbsp;&nbsp;<BR>// the form MM-dd-yyyy.&nbsp;&nbsp;<BR>SimpleDateFormat bartDateFormat =&nbsp;&nbsp;<BR>new SimpleDateFormat("MM-dd-yyyy");&nbsp;&nbsp;<BR><BR>// Create a string containing a text date to be parsed.&nbsp;&nbsp;<BR>String dateStringToParse = "9-29-2001";&nbsp;&nbsp;<BR><BR>try {&nbsp;&nbsp;<BR>// Parse the text version of the date.&nbsp;&nbsp;<BR>// We have to perform the parse method in a&nbsp;&nbsp;<BR>// try-catch construct in case dateStringToParse&nbsp;&nbsp;<BR>// does not contain a date in the format we are expecting.&nbsp;&nbsp;<BR>Date date = bartDateFormat.parse(dateStringToParse);&nbsp;&nbsp;<BR><BR>// Now send the parsed date as a long value&nbsp;&nbsp;<BR>// to the system output.&nbsp;&nbsp;<BR>System.out.println(date.getTime());&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>catch (Exception ex) {&nbsp;&nbsp;<BR>System.out.println(ex.getMessage());&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>[/code:1:10d3268d34] <BR><BR>五、使用标准的日期格式化过程&nbsp;&nbsp;<BR><BR>既然我们已经可以生成和解析定制的日期格式了, 让我们来看一看如何使用内建的格式化过程. 方法 DateFormat.getDateTimeInstance() 让我们得以用几种不同的方法获得标准的日期格式化过程. 在下面的例子中, 我们获取了四个内建的日期格式化过程. 它们包括一个短的, 中等的, 长的, 和完整的日期格式.&nbsp;&nbsp;<BR>[code:1:10d3268d34]import java.text.DateFormat;&nbsp;&nbsp;<BR>import java.util.Date;&nbsp;&nbsp;<BR><BR>public class DateExample4 {&nbsp;&nbsp;<BR><BR>public static void main(String[] args) {&nbsp;&nbsp;<BR>Date date = new Date();&nbsp;&nbsp;<BR><BR>DateFormat shortDateFormat =&nbsp;&nbsp;<BR>DateFormat.getDateTimeInstance(&nbsp;&nbsp;<BR>DateFormat.SHORT,&nbsp;&nbsp;<BR>DateFormat.SHORT);&nbsp;&nbsp;<BR><BR>DateFormat mediumDateFormat =&nbsp;&nbsp;<BR>DateFormat.getDateTimeInstance(&nbsp;&nbsp;<BR>DateFormat.MEDIUM,&nbsp;&nbsp;<BR>DateFormat.MEDIUM);&nbsp;&nbsp;<BR><BR>DateFormat longDateFormat =&nbsp;&nbsp;<BR>DateFormat.getDateTimeInstance(&nbsp;&nbsp;<BR>DateFormat.LONG,&nbsp;&nbsp;<BR>DateFormat.LONG);&nbsp;&nbsp;<BR><BR>DateFormat fullDateFormat =&nbsp;&nbsp;<BR>DateFormat.getDateTimeInstance(&nbsp;&nbsp;<BR>DateFormat.FULL,&nbsp;&nbsp;<BR>DateFormat.FULL);&nbsp;&nbsp;<BR><BR>System.out.println(shortDateFormat.format(date));&nbsp;&nbsp;<BR>System.out.println(mediumDateFormat.format(date));&nbsp;&nbsp;<BR>System.out.println(longDateFormat.format(date));&nbsp;&nbsp;<BR>System.out.println(fullDateFormat.format(date));&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>[/code:1:10d3268d34] <BR><BR>注意我们在对 getDateTimeInstance的每次调用中都传递了两个值. 第一个参数是日期风格, 而第二个参数是时间风格. 它们都是基本数据类型int(整型). 考虑到可读性, 我们使用了DateFormat 类提供的常量: SHORT, MEDIUM, LONG, 和 FULL. 要知道获取时间和日期格式化过程的更多的方法和选项, 请看Sun 公司Web 站点上的解释.&nbsp;&nbsp;<BR><BR>运行我们的例子程序的时候, 它将向标准输出设备输出下面的内容:&nbsp;&nbsp;<BR>9/29/01 8:44 PM&nbsp;&nbsp;<BR>Sep 29, 2001 8:44:45 PM&nbsp;&nbsp;<BR>September 29, 2001 8:44:45 PM EDT&nbsp;&nbsp;<BR>Saturday, September 29, 2001 8:44:45 PM EDT<BR>六、Calendar 类&nbsp;&nbsp;<BR><BR>我们现在已经能够格式化并创建一个日期对象了, 但是我们如何才能设置和获取日期数据的特定部分呢, 比如说小时, 日, 或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类. 就如我们前面提到的那样, Calendar 类中的方法替代了Date 类中被人唾骂的方法.&nbsp;&nbsp;<BR><BR>假设你想要设置, 获取, 和操纵一个日期对象的各个部分, 比方一个月的一天或者是一个星期的一天. 为了演示这个过程, 我们将使用具体的子类 java.util.GregorianCalendar. 考虑下面的例子, 它计算得到下面的第十个星期五是13号.&nbsp;&nbsp;<BR>[code:1:041aeb23d1]import java.util.GregorianCalendar;&nbsp;&nbsp;<BR>import java.util.Date;&nbsp;&nbsp;<BR>import java.text.DateFormat;&nbsp;&nbsp;<BR><BR>public class DateExample5 {&nbsp;&nbsp;<BR><BR>public static void main(String[] args) {&nbsp;&nbsp;<BR>DateFormat dateFormat =&nbsp;&nbsp;<BR>DateFormat.getDateInstance(DateFormat.FULL);&nbsp;&nbsp;<BR><BR>// Create our Gregorian Calendar.&nbsp;&nbsp;<BR>GregorianCalendar cal = new GregorianCalendar();&nbsp;&nbsp;<BR><BR>// Set the date and time of our calendar&nbsp;&nbsp;<BR>// to the system&amp;s date and time&nbsp;&nbsp;<BR>cal.setTime(new Date());&nbsp;&nbsp;<BR><BR>System.out.println("System Date: " +&nbsp;&nbsp;<BR>dateFormat.format(cal.getTime()));&nbsp;&nbsp;<BR><BR>// Set the day of week to FRIDAY&nbsp;&nbsp;<BR>cal.set(GregorianCalendar.DAY_OF_WEEK,&nbsp;&nbsp;<BR>GregorianCalendar.FRIDAY);&nbsp;&nbsp;<BR>System.out.println("After Setting Day of Week to Friday: " +&nbsp;&nbsp;<BR>dateFormat.format(cal.getTime()));&nbsp;&nbsp;<BR><BR>int friday13Counter = 0;&nbsp;&nbsp;<BR>while (friday13Counter &lt;= 10) {&nbsp;&nbsp;<BR><BR>// Go to the next Friday by adding 7 days.&nbsp;&nbsp;<BR>cal.add(GregorianCalendar.DAY_OF_MONTH, 7);&nbsp;&nbsp;<BR><BR>// If the day of month is 13 we have&nbsp;&nbsp;<BR>// another Friday the 13th.&nbsp;&nbsp;<BR>if (cal.get(GregorianCalendar.DAY_OF_MONTH) == 13) {&nbsp;&nbsp;<BR>friday13Counter++;&nbsp;&nbsp;<BR>System.out.println(dateFormat.format(cal.getTime()));&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>}&nbsp;&nbsp;<BR>[/code:1:041aeb23d1] <BR><BR>在这个例子中我们作了有趣的函数调用:&nbsp;&nbsp;<BR>cal.set(GregorianCalendar.DAY_OF_WEEK,&nbsp;&nbsp;<BR>GregorianCalendar.FRIDAY);&nbsp;&nbsp;<BR><BR>和:&nbsp;&nbsp;<BR>cal.add(GregorianCalendar.DAY_OF_MONTH, 7);&nbsp;&nbsp;<BR><BR>set 方法能够让我们通过简单的设置星期中的哪一天这个域来将我们的时间调整为星期五. 注意到这里我们使用了常量 DAY_OF_WEEK 和 FRIDAY来增强代码的可读性. add 方法让我们能够在日期上加上数值. 润年的所有复杂的计算都由这个方法自动处理.&nbsp;&nbsp;<BR><BR>我们这个例子的输出结果是:&nbsp;&nbsp;<BR>System Date: Saturday, September 29, 2001&nbsp;&nbsp;<BR>当我们将它设置成星期五以后就成了: Friday, September 28, 2001&nbsp;&nbsp;<BR>Friday, September 13, 2002&nbsp;&nbsp;<BR>Friday, December 13, 2002&nbsp;&nbsp;<BR>Friday, June 13, 2003&nbsp;&nbsp;<BR>Friday, February 13, 2004&nbsp;&nbsp;<BR>Friday, August 13, 2004&nbsp;&nbsp;<BR>Friday, May 13, 2005&nbsp;&nbsp;<BR>Friday, January 13, 2006&nbsp;&nbsp;<BR>Friday, October 13, 2006&nbsp;&nbsp;<BR>Friday, April 13, 2007&nbsp;&nbsp;<BR>Friday, July 13, 2007&nbsp;&nbsp;<BR>Friday, June 13, 2008&nbsp;&nbsp;<BR><BR><BR>七、时间掌握在你的手里&nbsp;&nbsp;<BR><BR>有了这些Date 和Calendar 类的例子, 你应该能够使用 java.util.Date, java.text.SimpleDateFormat, 和 java.util.GregorianCalendar 创建许多方法了.&nbsp;&nbsp;<BR></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/38588912200852885615483</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/38588912200852885615483</guid>
    <pubDate>Sat, 28 Jun 2008 20:56:15 +0800</pubDate>
    <dcterms:modified>2008-06-28T20:56:15+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Oracle10g常用语句]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/38588912200852885257534</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">1．&nbsp;&nbsp;数据类型：</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 字符类型：char(标准通用拉丁字符),nchar(汉字等其他字符),varchar2(长度可变长字符),nvarchar2,long;</P>
<P style="TEXT-INDENT: 2em">数字类型：number(通用),integer,float</P>
<P style="TEXT-INDENT: 2em">日期和时间：date,timestamps(分秒，时区)</P>
<P style="TEXT-INDENT: 2em">行：rowid(逻辑地址),urowid（逻辑地址，内存地址）;</P>
<P style="TEXT-INDENT: 2em">二进制:raw(size)(原始二进制数据),long raw,blob(二进制大型对象;最大4G字节),clob(字符大型对象),nclob,bfile;</P>
<P style="TEXT-INDENT: 2em">2.oracle WEB管理页面：localhost:5560/isqlplus; localhost:5500/em</P>
<P style="TEXT-INDENT: 2em">3.net设置远程测试：tnsping datebasename；远程连接:sqlplus name/password@datebasename;</P>
<P style="TEXT-INDENT: 2em">4.创建表空间：create tablespace test </P>
<P style="TEXT-INDENT: 2em">datafile 'test.dbf' size 10m autoextend on next 2m</P>
<P style="TEXT-INDENT: 2em">maxsize unlimited</P>
<P style="TEXT-INDENT: 2em">logging</P>
<P style="TEXT-INDENT: 2em">permanent</P>
<P style="TEXT-INDENT: 2em">extent management local autoallocate</P>
<P style="TEXT-INDENT: 2em">blocksize 8k</P>
<P style="TEXT-INDENT: 2em">segment space management manuaL;//段空间</P>
<P style="TEXT-INDENT: 2em">5．创建用户并连接： create user "TEST" identified by "TEST" </P>
<P style="TEXT-INDENT: 2em">default tablespace TEST</P>
<P style="TEXT-INDENT: 2em">temporary tablespace TEMP</P>
<P style="TEXT-INDENT: 2em">quota unlimited on TEST</P>
<P style="TEXT-INDENT: 2em">quota unlimited on TEMP</P>
<P style="TEXT-INDENT: 2em">grant "connect" to test//分配基本权限。</P>
<P style="TEXT-INDENT: 2em">conn test/test;</P>
<P style="TEXT-INDENT: 2em">6．重设用户密码：</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scott/tiger为默认用户，</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alter user scott identified by tiger;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;解锁：alter user scott account unlock;</P>
<P style="TEXT-INDENT: 2em">7.sql脚本的执行：@路径/filename.sql;</P>
<P style="TEXT-INDENT: 2em">8.创建表：create table t1(c1 type 约束,c2 type 约束（not null,unique,check,primary key））</P>
<P style="TEXT-INDENT: 2em">9.查询：select distinct c1 from t1 where 条件 group by c1 having by 子条件order by c1;</P>
<P style="TEXT-INDENT: 2em">10.连接字符串：select c1 (as可省) 列1 ||c2 from t1;</P>
<P style="TEXT-INDENT: 2em">11.单行函数：select lower(c1) from t1；upper全大写，initcap第一个字母大写，length；</P>
<P style="TEXT-INDENT: 2em">12.select Sysdate from dual(系统默认的空表)显示系统时间,months_between(date,date);</P>
<P style="TEXT-INDENT: 2em">13.round(数据,5位数),to_date(1997-10-11,’yyyy-mm-dd’)，to_char()函数使用要转换。</P>
<P style="TEXT-INDENT: 2em">14.nvl(c1,0)把字段为空的值换为0，nvl2(c1,1,0)不空的为1，空的值为0；</P>
<P style="TEXT-INDENT: 2em">15.操作符：</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; 比较：=，&lt;&gt;,&gt;=,&lt;=,&gt;,&lt;；逻辑：and,or,not</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; 其他：in/not in,between..and..,is null/is not null,like，exists/not exists；</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; Eg:select count(distinct c1) as 种类 from t1 where c1 like ‘%l%’(模糊查询如m_n)(c1 between 10 and 100) group by c1 order by c1 desc，c2 desc（不写就默认asc）</P>
<P style="TEXT-INDENT: 2em">16.聚合函数：count(*)返回所有行的记录数,min(c1),max(c1),sum(c1),avg(c1);</P>
<P style="TEXT-INDENT: 2em">Eg:select c1,count(*) from t1 group by c1 having by count(*)&gt;1;(having不能用变量申明);等价于select c1,count(*) as cn from t1 group by c1 where cn&gt;1;</P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">17.声明主键和check：一.create table t1(c1 primary key) </P>
<P style="TEXT-INDENT: 2em">二.创建表的时候指定限制的名称:create table t1(c1&nbsp;&nbsp;constraint pk_emp primary key); </P>
<P style="TEXT-INDENT: 2em">三：create table t1(emp_no number not null , constraint pk_emp primary key(emp_no))； 为已经存在的表增加主键:alter table t1 add constraint pk_emp2 primary key (c1)； </P>
<P style="TEXT-INDENT: 2em">创建check: create table t1(budget number(7),constraint CHK_PROJ check(budget&gt;10000 and budget&lt;1000000))</P>
<P style="TEXT-INDENT: 2em">18.创建外键: create table t1(dept_no varchar2(4) not null, constraint fk_emp foreign key (dept_no) references t2(dept_no), 对已经存在表创建外键:alter table t1</P>
<P style="TEXT-INDENT: 2em">add constraint foreign_work_emp foreign key(c1) references t2(c1)；</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;删除一个外键alter table t1 drop constraint foreign_work_emp；</P>
<P style="TEXT-INDENT: 2em">19.删除表：drop table t1; 查看回收站:show recyclebin; 清空回收站 purge recyclebin;</P>
<P style="TEXT-INDENT: 2em">从回收站中恢复数据表:flashback table t1 to before drop;</P>
<P style="TEXT-INDENT: 2em">20.更新数据操作：插入记录：insert into t1(c1,c2)values(‘’,’’)；</P>
<P style="TEXT-INDENT: 2em">插入一字段:insert into t1(c1,c2) select c3,c4 from t2;</P>
<P style="TEXT-INDENT: 2em">更新记录：update t1&nbsp;&nbsp; set c1=’’ where ;</P>
<P style="TEXT-INDENT: 2em">删除记录：delete from t1 where;truncate table t1;drop table t1;</P>
<P style="TEXT-INDENT: 2em">21.合并查询：intersect(select * intersect select *),union(去掉空),union all(包括空),minus（减集）;</P>
<P style="TEXT-INDENT: 2em">22.多表查询:select * from t1,t2;(笛卡尔集c1行*c2行)；select * from t1 join t2 using(num);等价于select * from t1 inner join t2 on(t1.no=t2.no);join逻辑连接，只连接有联系的字段，full join物理机械连接，out join,left out join(右边变成空),right out join;</P>
<P style="TEXT-INDENT: 2em">23．控制语句：select emp_no, case project_no</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;when 'p1' then case when enter_date&lt;to_date('1997-10-1','yyyy-mm-dd')then '三室'</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;when enter_date&gt;to_date('1998-10-1','yyyy-mm-dd')then '等两年'//时间非字段时间型</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else '两室一厅'end</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;when 'p2' then case when enter_date&lt;to_date('1997-10-1','yyyy-mm-dd')</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then '三室两厅' when enter_date&gt;to_date('1998-10-1','yyyy-mm-dd')</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then '看情况再分' else ' 一室一厅'end</P>
<P style="TEXT-INDENT: 2em">end as 分房情况from works_on；</P>
<P style="TEXT-INDENT: 2em">if then end if,loop end loop,declare type *,while( )loop end loop,case when then end</P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"><FONT color=#ff00ff>24.嵌套查询select c1 from t1 where c2 in(select c2 from t2 where c3=(select c3 from t3))</FONT>
</P><P style="TEXT-INDENT: 2em">25．Pl/sql语言：</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;模块语法和流程控制:(头控制符没有标点;尾控制符都有;)</P>
<P style="TEXT-INDENT: 2em">26．序列Sequence. </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; create sequence se_1&nbsp;&nbsp;increment by 1&nbsp;&nbsp;start with 100</P>
<P style="TEXT-INDENT: 2em">maxvalue 999999 //minvalue n --表示序列可以生成的最小值(降序).&nbsp;&nbsp;cycle;//到头自动循环</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查看：select se_1.nextval from dual; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select se_1.currval from dual;（必先next初始化）</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用：create table stu1(stu_no number(10) not null,stu_name varchar2(20) not null);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;insert into stu1(stu_no,stu_name) values(se_1.nextval,'joi');</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 修改序列：alter sequence &lt;sequencen_name&gt;//start with 语句不能用了，否则重复定义</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 删除序号：drop sequence &lt;sequence_name&gt;；</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 自动序列：rownum</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select * from t1 where rownum&lt;5;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select * from(select rownum as a,e.* from t1 e)where a=3//单行必先关联，e为表的别名</P>
<P style="TEXT-INDENT: 2em">27．创建视图</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create or replace view v1 as </P>
<P style="TEXT-INDENT: 2em">使用视图：select * from v1;</P>
<P style="TEXT-INDENT: 2em">28．创建函数：</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create or replace function get_maxe_empno return varchar2 &nbsp;&nbsp;is </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin&nbsp;&nbsp;//可执行语句</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select max(emp_no) into tmpvar from employee;//把取出的值赋给一个变量</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return tmpvar;//函数的重要特征就是通过return语句来传递参数</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end get_maxe_empno;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用：select get_maxe_empno() from dual;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数字字典：select distinct(name) from user_source where type='FUNCTION'</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从数字字典里查找信息：select text from all_source where name='GET_MAXE_EMPNO';</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 删除函数：drop function get_maxe_empno;</P>
<P style="TEXT-INDENT: 2em">29.过程：</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create or replace procedure sp_test</P>
<P style="TEXT-INDENT: 2em">(fname in varchar2, update_count out int)//参数列表是过程的特征&nbsp;&nbsp;is</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cursor emp_cursor//定义游标</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select emp_no from employee where employee.emp_fname=fname;//输入in</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;可执行语句</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;update_count:=0;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;for emp_rec in emp_cursor</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;loop</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update employee set emp_fname=emp_lname,emp_lname=fname</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;where employee.emp_no=emp_rec.emp_no;update_count:=update_count+1;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;end loop;commit;//控制语句，强制执行</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end；//过程可以有in/out变量</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查看过程：</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select distinct(name) from user_source where type='PROCEDURE'</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select text from all_source where name='SP_TEST' order by line;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用过程：</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;declare fname varchar2(200);</P>
<P style="TEXT-INDENT: 2em">update_count number;</P>
<P style="TEXT-INDENT: 2em">begin</P>
<P style="TEXT-INDENT: 2em">fname:='John';update_count:=0;</P>
<P style="TEXT-INDENT: 2em">sp_test(fname,update_count);commit;dbms_output.put_line(update_count);</P>
<P style="TEXT-INDENT: 2em">end;</P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">declare icount number;</P>
<P style="TEXT-INDENT: 2em">begin</P>
<P style="TEXT-INDENT: 2em">icount :=0;</P>
<P style="TEXT-INDENT: 2em">for mycount in reverse 0..10//mycount 为自定义变量</P>
<P style="TEXT-INDENT: 2em">---while(icount&lt;100)</P>
<P style="TEXT-INDENT: 2em">Loop&nbsp;&nbsp;&nbsp;icount :=icount+10;</P>
<P style="TEXT-INDENT: 2em">---exit when(icount&gt;100);</P>
<P style="TEXT-INDENT: 2em"><FONT color=#3366ff>if(mycount&gt;5) then</FONT></P>
<P style="TEXT-INDENT: 2em"><FONT color=#3366ff>&nbsp;&nbsp;dbms_output.put_line('result='||icount);//流程输出语句</FONT></P>
<P style="TEXT-INDENT: 2em"><FONT color=#3366ff>end if;</FONT></P>
<P style="TEXT-INDENT: 2em"><FONT color=#3366ff>end loop;</FONT></P>
<P style="TEXT-INDENT: 2em"><FONT color=#3366ff>end; //(set serverout on才能输出)tmpvar varchar2(20);//局部变量声明</FONT>
</P><P style="TEXT-INDENT: 2em">30.触发器：create or replace trigger tgr_emp_change </P>
<P style="TEXT-INDENT: 2em">after insert or update or delete on employee</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;referencing new as n old as o// :new为引用最新列值; :old为引用以前列值;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp; for each row</P>
<P style="TEXT-INDENT: 2em">begin </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;if inserting then</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;insert into emp_update_info(emp_no,oper_type) values(:n.emp_no,1);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end if;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if updating then&nbsp;&nbsp;// updating为触发器的操作符；</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;insert into emp_update_info(emp_no,oper_type) values(:o.emp_no,3);</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end if;</P>
<P style="TEXT-INDENT: 2em">end;</P>
<P style="TEXT-INDENT: 2em">建表：create table emp_update_info(emp_no varchar2(20) not null,oper_type integer);</P>
<P style="TEXT-INDENT: 2em">查看trigger：select distinct( name ) from user_source where type='TRIGGER';</P>
<P style="TEXT-INDENT: 2em">对employee的操作就自动出发的emp_update_info</P>
<P style="TEXT-INDENT: 2em">31．声明包：create or replace package pkg_test as</P>
<P style="TEXT-INDENT: 2em">function get_max_empno &nbsp;&nbsp;return varchar2;//子程序说明，公共对象声明</P>
<P style="TEXT-INDENT: 2em">procedure sp_test(fname in varchar2,update_count out int);</P>
<P style="TEXT-INDENT: 2em">end pkg_test;</P>
<P style="TEXT-INDENT: 2em">创建包体:create or replace package body pkg_test&nbsp;&nbsp;as // is也行</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function get_max_empno return varchar2&nbsp;&nbsp;&nbsp;as //公共类型与对象声明</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;tmpvar&nbsp;&nbsp;&nbsp;&nbsp;varchar2(20);//公共类型和对象声明，&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin&nbsp;&nbsp;&nbsp;// 语句体中是初始化语句，特殊用途</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select max(emp_no) into tmpvar from employee; return tmpvar;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end get_max_empno;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//子程序主体部分</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;procedure sp_test(fname in varchar2,update_count out int) is</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cursor emp_cursor&nbsp;&nbsp;is</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select emp_no from employee where employee.emp_fname = fname;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; update_count := 0;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for emp_rec in emp_cursor</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loop</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; update employee set emp_fname = emp_lname, emp_lname = fname</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where employee.emp_no = emp_rec.emp_no;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;update_count := update_count + 1;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end loop;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;commit;//强制执行</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;end;</P>
<P style="TEXT-INDENT: 2em">end pkg_test;</P>
<P style="TEXT-INDENT: 2em">查看定义的package：select distinct( name ) from user_source where type='PACKAGE'</P>
<P style="TEXT-INDENT: 2em">使用package中的对象：select pkg_test.get_max_empno from dual;</P>
<P style="TEXT-INDENT: 2em">32．数据库设计：业务规则和流程—实体和关系—ER图（一对一，一对多，出现多对多进行拆分）—SQL语句—视图和索引—储存过程和触发器—维护。
</P><P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/38588912200852885257534</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/38588912200852885257534</guid>
    <pubDate>Sat, 28 Jun 2008 20:52:57 +0800</pubDate>
    <dcterms:modified>2008-06-28T20:52:57+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[百万网民签名反对CNN恶意报道，你也一起来签名]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/385889122008528881940</link>
    <description><![CDATA[<div>ni0918郑重签名支持北京奥运<br/><p>CNN恶意裁剪暴乱图片，极尽妖魔化中国之能事；评论员卡弗蒂口出妄言，充斥傲慢与偏见；CNN的声明挑拨中国人民与政府的感情，司马昭之心路人皆知。他们的所作所为让所有的中国人民以及全世界的所有华人深感愤怒，是时候发出我们的怒吼了——今天我郑重签下了我的名字，反对CNN不实报道，支持北京奥运。<a href="http://qm.news.163.com" target="_blank">[查看详情]</a></p><p>我对这次签名活动的感想是：</p></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/385889122008528881940</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/385889122008528881940</guid>
    <pubDate>Sat, 28 Jun 2008 20:08:19 +0800</pubDate>
    <dcterms:modified>2008-06-28T20:08:19+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[李孝利银色抹胸秀完美身材]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/3858891220085282530654</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://ent.163.com/08/0626/09/4FBSMLT200032F5M.html" target=_blank>李孝利银色抹胸秀完美身材</A></P>
<P>
</P><P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/2008062609362839b6a.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img1.cache.netease.com/ent/2008/6/26/20080626093728d6878.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><CENTER><IMG src="http://img2.cache.netease.com/ent/2008/6/26/20080626093543a7a4a.jpg" border=0></CENTER>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">(本文来源：<A href="http://media.163.com/special/007625CB/guojizaixian.html">国际在线</A> ) <A href="http://ent.163.com/"><IMG height=10 alt=达文蕉 src="http://cimg2.163.com/ent/newimg/arc_icon.gif" width=11 border=0></A> 
</P><DIV style="CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; TEXT-INDENT: 2em; PADDING-TOP: 15px"><A href="http://comment.ent.163.com/star_ent_bbs/4FBSMLT200032F5M.html" target=_blank>【已有<SPAN fB" >46</SPAN>位网友发表了看法，点击查看。】</A></DIV><A href="http://ent.163.com/08/0626/09/4FBSMLT200032F5M.html" target=_blank>查看全文&gt;&gt;</A>
<P></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/3858891220085282530654</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/3858891220085282530654</guid>
    <pubDate>Sat, 28 Jun 2008 14:53:00 +0800</pubDate>
    <dcterms:modified>2008-06-28T14:53:00+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[奥巴马希拉里提名战后首度同台亮相(组图)]]></title>	
    <link>http://ni0918.blog.163.com/blog/static/38588912200852823816316</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">据 <A href="http://news.163.com/" target=_blank>网易新闻</A> 报道： <A href="http://news.163.com/08/0628/09/4FH1JH3Q0001121M.html#" target=_blank>奥巴马希拉里提名战后首度同台亮相(组图)</A></P>
<P>　　核心提示：奥巴马和希拉里此次同台亮相的地点(团结镇)是经过“精心挑选”的，有弥合两方支持者因党内提名战所产生裂痕的象征意味。<A href="http://news.163.com/08/0628/09/4FH1JH3Q0001121M.html#" target=_blank>查看全文&gt;&gt;</A></P>
<P><STRONG>我对这条新闻的看法是：</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[＊碐＆　皎＄]]></author>
	    <comments>http://ni0918.blog.163.com/blog/static/38588912200852823816316</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ni0918.blog.163.com/blog/static/38588912200852823816316</guid>
    <pubDate>Sat, 28 Jun 2008 14:38:16 +0800</pubDate>
    <dcterms:modified>2008-06-28T14:38:16+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[我的密友]]></title>	
    <link></link>
    <description><![CDATA[<div>
			<a href="http://hjl381.blog.163.com/" target="_blank"><img src="http://ava.blog.163.com/photo/BS4YmV9TTUVTxC3iGl632Q==/181269885001843159.jpg" border="0" />小雨</a>
			<a href="http://blog.163.com/nanhai_wuxia/" target="_blank"><img src="http://ava.blog.163.com/photo/Q_FSoJZzHGSprJ7mEJ2RLA==/1441433355735512883.jpg" border="0" />我要幸福!!!!!!</a>
			<a href="http://wendyyanrong.blog.163.com/" target="_blank"><img src="http://ava.blog.163.com/photo/oYITDeawE2ff1NnLvPkKWw==/170573835887155575.jpg" border="0" />猪猪</a>
			<a href="http://hexiao0925.blog.163.com/" target="_blank"><img src="http://ava.blog.163.com/photo/0C_-ga-Z-caLGblnCxygHA==/490047934453576539.jpg" border="0" />临窗听雨</a>
			<a href="http://zhougangshen.blog.163.com/" target="_blank"><img src="http://ava.blog.163.com/photo/Qhgu_j8M-fSEPawTQky3rA==/467248461339800474.jpg" border="0" />罡申妈妈</a>
			<a href="http://naicha.05.blog.163.com/" target="_blank"><img src="http://ava.blog.163.com/photo/tPxrXYXmiSzSEAonEzm32A==/477663035478924830.jpg" border="0" />奶茶.05</a>
			<a href="http://dengpingping0711.blog.163.com/" target="_blank"><img src="http://ava.blog.163.com/photo/YqYNTxt9d6QSkgrgchZP6A==/180425460071596085.jpg" border="0" />北极光</a>
			<a href="http://blog.163.com/haitun521xin@126/" target="_blank"><img src="http://ava.blog.163.com/photo/Wk6Vn-AL2cKWHBvY60TxOQ==/180425460071637670.jpg" border="0" />haitun521xin</a>
			<a href="http://zuojianfang1234.blog.163.com/" target="_blank"><img src="http://ava.blog.163.com/photo/Ng5PbzDnqVSiEJ1HQOBvVg==/170573835888334687.jpg" border="0" />青柠</a>
</div>]]></description>
    <guid isPermaLink="false">http://ni0918.blog.163.com/friends</guid>
    <pubDate>Tue, 1 Jan 2008 00:00:00 +0800</pubDate>
    <dcterms:modified>2008-01-01T00:00:00+08:00</dcterms:modified>
  </item>    
 </channel>
</rss>