<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>刺客 &#187; Sql</title>
	<atom:link href="http://blog.cike.org/tag/sql/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.cike.org</link>
	<description>刘益民中文网</description>
	<lastBuildDate>Mon, 03 May 2010 06:23:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>dede5.1升5.3程序完毕</title>
		<link>http://blog.cike.org/2009/dedecms51-tupdate-to53/</link>
		<comments>http://blog.cike.org/2009/dedecms51-tupdate-to53/#comments</comments>
		<pubDate>Sun, 24 May 2009 22:55:57 +0000</pubDate>
		<dc:creator>cike</dc:creator>
				<category><![CDATA[1984]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Sql]]></category>
		<category><![CDATA[升级]]></category>

		<guid isPermaLink="false">http://blog.cike.org/?p=409</guid>
		<description><![CDATA[反复折腾多次总算把杨树网（www.yangshu.org）升级完成，问题主要出在分类信息、问答，官方升级说明中也强调了这两个是不能兼容新版本的]]></description>
			<content:encoded><![CDATA[<p>反复折腾多次总算把<a href="http://www.yangshu.org" target="_blank">杨树网</a>（www.yangshu.org）升级完成，问题主要出在分类信息、问答，官方升级说明中也强调了这两个是不能兼容新版本的</p>
<p>我的升级历程：</p>
<ol>
<li>第一次长级完发现问答数据丢失</li>
<li>重新运行升级程序，文章数据也丢失</li>
<li>回档到5.1</li>
<li>数据库升级过程闪显红色错误，没在意跳过</li>
<li>测试发布信息，出现“<span style="color: #000000;">把数据保存到数据库附加表 `dede_addoninfos` 时出错……</span>”</li>
<li>本地安装完整dedecms5.3，对比表dede_addoninfos，索引键值等一切相同，这个表没问题，那就是数据有问题了</li>
<li>回档到5.1，这次<span style="color: #ff0000;">做一点备份一点，回档是个力气活，很枯燥</span></li>
<li>重回第四步，本次开了QQ准备好了&#8221;Ctrl+Alt+A&#8221;，顺便截住数据库升级过程中的一次报错（约1秒后会消失，升级最终不会报错，所以<span style="color: #ff0000;">每一次页面涮新都要盯好不能只看最后的升级成功页面提示</span>）提示“insert dede_arctiny(……”</li>
<li>查dede_arctiny表，发现没这个dede_arctin，大喜，从5.3默认库中导出SQL，回到新升级的库发现有dede_arctiny表（第一次看错库了，开了三个数据库界面5.3默认的、5.1老数据、刚升级后的数据，把5.1老的当成刚升级完的- -！），查表新库中的dede_arctiny，有数据但条数不对，那问题就出在某一条记录上，操作SQL最终排查到dede_addoninfos中aid=0这条记录无法被导入，强删，再导</li>
<li>成功，余下就是二次开发和升级模板的事了</li>
</ol>
<p>心得是什么，看上面的红色字块</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cike.org/2009/dedecms51-tupdate-to53/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转]精妙SQL语句收集</title>
		<link>http://blog.cike.org/2007/sql-favorites/</link>
		<comments>http://blog.cike.org/2007/sql-favorites/#comments</comments>
		<pubDate>Wed, 04 Jul 2007 03:06:12 +0000</pubDate>
		<dc:creator>cike</dc:creator>
				<category><![CDATA[后端]]></category>
		<category><![CDATA[Asp]]></category>
		<category><![CDATA[Sql]]></category>

		<guid isPermaLink="false">http://temp.cike.org/2007/07/%e7%b2%be%e5%a6%99sql%e8%af%ad%e5%8f%a5%e6%94%b6%e9%9b%86/</guid>
		<description><![CDATA[<p>说明：复制表(只复制结构,源表名：a 新表名：b) SQL: select * into b from a where 1&#60;&#62;1 说明：拷贝表(拷贝数据,源表名：a 目标表名：b) SQL: insert into b(a, b, c) select d,e,f from b; 说明：显示文章、提交人和最后回复时间 SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate fr...</p>]]></description>
			<content:encoded><![CDATA[<p>说明：复制表(只复制结构,源表名：a 新表名：b)<br />
SQL: select * into b from a where 1&lt;&gt;1</p>
<p>说明：拷贝表(拷贝数据,源表名：a 目标表名：b)<br />
SQL: insert into b(a, b, c) select d,e,f from b;</p>
<p>说明：显示文章、提交人和最后回复时间<br />
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b</p>
<p>说明：外连接查询(表名1：a 表名2：b)<br />
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c</p>
<p>说明：日程安排提前五分钟提醒<br />
SQL: select * from 日程安排 where datediff(&#8216;minute&#8217;,f开始时间,getdate())&gt;5</p>
<p>说明：两张关联表，删除主表中已经在副表中没有的信息<br />
SQL:<br />
delete from info where not exists ( select * from infobz where info.infid=infobz.infid )</p>
<p>说明：&#8211;<br />
SQL:<br />
SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE FROM TABLE1,(SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND FROM TABLE2 WHERE TO_CHAR(UPD_DATE,&#8217;YYYY/MM&#8217;) = TO_CHAR(SYSDATE, &#8216;YYYY/MM&#8217;)) X, (SELECT NUM, UPD_DATE, STOCK_ONHAND FROM TABLE2 WHERE TO_CHAR(UPD_DATE,&#8217;YYYY/MM&#8217;) = TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, &#8216;YYYY/MM&#8217;) ¦¦ &#8216;/01&#8242;,&#8217;YYYY/MM/DD&#8217;) &#8211; 1, &#8216;YYYY/MM&#8217;) ) Y, WHERE X.NUM = Y.NUM （+）AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) &lt;&gt; X.STOCK_ONHAND ) B WHERE A.NUM = B.NUM</p>
<p>说明：&#8211;<br />
SQL:<br />
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名称=&#8217;&#8221;&amp;strdepartmentname&amp;&#8221;&#8216; and 专业名称=&#8217;&#8221;&amp;strprofessionname&amp;&#8221;&#8216; order by 性别,生源地,高考总成绩</p>
<p>说明：<br />
从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源）<br />
SQL:<br />
SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, &#8216;yyyy&#8217;) AS telyear, SUM(decode(TO_CHAR(a.telfeedate, &#8216;mm&#8217;), &#8216;01&#8242;, a.factration)) AS JAN, SUM(decode(TO_CHAR(a.telfeedate, &#8216;mm&#8217;), &#8216;02&#8242;, a.factration)) AS FRI, SUM(decode(TO_CHAR(a.telfeedate, &#8216;mm&#8217;), &#8216;03&#8242;, a.factration)) AS MAR, SUM(decode(TO_CHAR(a.telfeedate, &#8216;mm&#8217;), &#8216;04&#8242;, a.factration)) AS APR, SUM(decode(TO_CHAR(a.telfeedate, &#8216;mm&#8217;), &#8216;05&#8242;, a.factration)) AS MAY, SUM(decode(TO_CHAR(a.telfeedate, &#8216;mm&#8217;), &#8216;06&#8242;, a.factration)) AS JUE,SUM(decode(TO_CHAR(a.telfeedate, &#8216;mm&#8217;), &#8216;07&#8242;, a.factration)) AS JUL, SUM(decode(TO_CHAR(a.telfeedate, &#8216;mm&#8217;), &#8216;08&#8242;, a.factration)) AS AGU, SUM(decode(TO_CHAR(a.telfeedate, &#8216;mm&#8217;), &#8216;09&#8242;, a.factration)) AS SEP, SUM(decode(TO_CHAR(a.telfeedate, &#8216;mm&#8217;), &#8216;10&#8242;, a.factration)) AS OCT, SUM(decode(TO_CHAR(a.telfeedate, &#8216;mm&#8217;), &#8216;11&#8242;, a.factration)) AS NOV,SUM(decode(TO_CHAR(a.telfeedate, &#8216;mm&#8217;), &#8216;12&#8242;, a.factration)) AS DEC FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration FROM TELFEESTAND a, TELFEE b WHERE a.tel = b.telfax) a GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, &#8216;yyyy&#8217;)</p>
<p>说明：四表联查问题：<br />
SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where &#8230;..</p>
<p>说明：得到表中最小的未使用的ID号<br />
SQL:<br />
SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID FROM Handle WHERE NOT HandleID IN (SELECT a.HandleID &#8211; 1 FROM Handle a)</p>
<p> </p>
<p>1.按姓氏笔画排序:<br />
Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as</p>
<p>2.数据库加密:<br />
select encrypt(&#8216;原始密码&#8217;)<br />
select pwdencrypt(&#8216;原始密码&#8217;)<br />
select pwdcompare(&#8216;原始密码&#8217;,'加密后密码&#8217;) = 1&#8211;相同；否则不相同 encrypt(&#8216;原始密码&#8217;)<br />
select pwdencrypt(&#8216;原始密码&#8217;)<br />
select pwdcompare(&#8216;原始密码&#8217;,'加密后密码&#8217;) = 1&#8211;相同；否则不相同</p>
<p>3.取回表中字段:<br />
declare @list varchar(1000),@sql nvarchar(1000)<br />
select @list=@list+&#8217;,'+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name=&#8217;表A&#8217;<br />
set @sql=&#8217;select &#8216;+right(@list,len(@list)-1)+&#8217; from 表A&#8217;<br />
exec (@sql)</p>
<p>4.查看硬盘分区:<br />
EXEC master..xp_fixeddrives</p>
<p>5.比较A,B表是否相等:<br />
if (select checksum_agg(binary_checksum(*)) from A)<br />
    =<br />
   (select checksum_agg(binary_checksum(*)) from B)<br />
print &#8216;相等&#8217;<br />
else<br />
print &#8216;不相等&#8217;</p>
<p>6.杀掉所有的事件探察器进程:<br />
DECLARE hcforeach CURSOR GLOBAL FOR SELECT &#8216;kill &#8216;+RTRIM(spid) FROM master.dbo.sysprocesses<br />
WHERE program_name IN(&#8216;SQL profiler&#8217;,N&#8217;SQL 事件探查器&#8217;)<br />
EXEC sp_msforeach_worker &#8216;?&#8217;</p>
<p>7.记录搜索:<br />
开头到N条记录<br />
Select Top N * From 表<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
N到M条记录(要有主索引ID)<br />
Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID  Desc<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
N到结尾记录<br />
Select Top N * From 表 Order by ID Desc</p>
<p>8.如何修改数据库的名称:<br />
sp_renamedb &#8216;old_name&#8217;, &#8216;new_name&#8217;</p>
<p>9：获取当前数据库中的所有用户表<br />
select Name from sysobjects where xtype=&#8217;u&#8217; and status&gt;=0</p>
<p>10：获取某一个表的所有字段<br />
select name from syscolumns where id=object_id(&#8216;表名&#8217;)</p>
<p>11：查看与某一个表相关的视图、存储过程、函数<br />
select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like &#8216;%表名%&#8217;</p>
<p>12：查看当前数据库中所有存储过程<br />
select name as 存储过程名称 from sysobjects where xtype=&#8217;P&#8217;</p>
<p>13：查询用户创建的所有数据库<br />
select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name=&#8217;sa&#8217;)<br />
或者<br />
select dbid, name AS DB_NAME from master..sysdatabases where sid &lt;&gt; 0&#215;01</p>
<p>14：查询某一个表的字段和数据类型<br />
select column_name,data_type from information_schema.columns<br />
where table_name = &#8216;表名&#8217;</p>
<p>[n].[标题]:<br />
Select * From TableName Order By CustomerName</p>
<p>[n].[标题]:<br />
Select * From TableName Order By CustomerName</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cike.org/2007/sql-favorites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
