﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Alpha-文章分类-数据库SQL</title><link>http://www.blogjava.net/Alpha/category/1965.html</link><description>多少春秋风雨改 多少崎岖不变爱</description><language>zh-cn</language><lastBuildDate>Sat, 16 Apr 2011 06:47:13 GMT</lastBuildDate><pubDate>Sat, 16 Apr 2011 06:47:13 GMT</pubDate><ttl>60</ttl><item><title>mysql 5.0存储过程学习总结</title><link>http://www.blogjava.net/Alpha/articles/348389.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Sat, 16 Apr 2011 01:37:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/articles/348389.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/348389.html</wfw:comment><comments>http://www.blogjava.net/Alpha/articles/348389.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/348389.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/348389.html</trackback:ping><description><![CDATA[<p><span style="font-weight: bold">一.创建存储过程</span></p>
<div style="margin-left: 40px">1.基本语法：
<p>&nbsp;</p>
<div style="margin-left: 40px">create procedure sp_name()<br />
begin<br />
&#8230;&#8230;&#8230;<br />
end</div>
<p>2.参数传递</p>
</div>
<p><span style="font-weight: bold">二.调用存储过程</span></p>
<div style="margin-left: 40px">1.基本语法：call sp_name()<br />
注意：存储过程名称后面必须加括号，哪怕该存储过程没有参数传递</div>
<p><span style="font-weight: bold">三.删除存储过程</span></p>
<div style="margin-left: 40px">1.基本语法：<br />
drop procedure sp_name//<br />
2.注意事项<br />
(1)不能在一个存储过程中删除另一个存储过程，只能调用另一个存储过程</div>
<p><span style="font-weight: bold">四.区块，条件，循环<br />
</span></p>
<div style="margin-left: 40px">1.区块定义，常用<br />
begin<br />
&#8230;&#8230;<br />
end;<br />
也可以给区块起别名，如：<br />
lable:begin<br />
&#8230;&#8230;&#8230;..<br />
end lable;<br />
可以用leave lable;跳出区块，执行区块以后的代码<br />
2.条件语句
<p>&nbsp;</p>
<div style="border-bottom: windowtext 0.5pt solid; border-left: windowtext 0.5pt solid; padding-bottom: 4px; padding-left: 5.4pt; width: 95%; padding-right: 5.4pt; background: rgb(230,230,230) 0% 50%; border-top: windowtext 0.5pt solid; border-right: windowtext 0.5pt solid; padding-top: 4px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">
<div><img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)">&nbsp;条件&nbsp;</span><span style="color: rgb(0,0,255)">then</span><span style="color: rgb(0,0,0)"><br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" />statement<br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /></span><span style="color: rgb(0,0,255)">else</span><span style="color: rgb(0,0,0)"><br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" />statement<br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /></span><span style="color: rgb(0,0,255)">end</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)">;</span></div>
</div>
<p>3.循环语句<br />
(1).while循环</p>
<div style="border-bottom: windowtext 0.5pt solid; border-left: windowtext 0.5pt solid; padding-bottom: 4px; padding-left: 5.4pt; width: 95%; padding-right: 5.4pt; background: rgb(230,230,230) 0% 50%; border-top: windowtext 0.5pt solid; border-right: windowtext 0.5pt solid; padding-top: 4px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">
<div><img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /><span style="color: rgb(255,0,0)">[</span><span style="color: rgb(255,0,0)">label:</span><span style="color: rgb(255,0,0)">]</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">WHILE</span><span style="color: rgb(0,0,0)">&nbsp;expression&nbsp;DO<br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" />statements<br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /></span><span style="color: rgb(0,0,255)">END</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">WHILE</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(255,0,0)">[</span><span style="color: rgb(255,0,0)">label</span><span style="color: rgb(255,0,0)">]</span><span style="color: rgb(0,0,0)">&nbsp;;<br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /></span></div>
</div>
<p>&nbsp;</p>
</div>
<div style="margin-left: 40px">(2).loop循环
<p>&nbsp;</p>
<div style="border-bottom: windowtext 0.5pt solid; border-left: windowtext 0.5pt solid; padding-bottom: 4px; padding-left: 5.4pt; width: 95%; padding-right: 5.4pt; background: rgb(230,230,230) 0% 50%; border-top: windowtext 0.5pt solid; border-right: windowtext 0.5pt solid; padding-top: 4px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">
<div><img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /><span style="color: rgb(255,0,0)">[</span><span style="color: rgb(255,0,0)">label:</span><span style="color: rgb(255,0,0)">]</span><span style="color: rgb(0,0,0)">&nbsp;LOOP<br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" />statements<br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /></span><span style="color: rgb(0,0,255)">END</span><span style="color: rgb(0,0,0)">&nbsp;LOOP&nbsp;</span><span style="color: rgb(255,0,0)">[</span><span style="color: rgb(255,0,0)">label</span><span style="color: rgb(255,0,0)">]</span><span style="color: rgb(0,0,0)">;</span></div>
</div>
<p>&nbsp;</p>
</div>
<div style="margin-left: 40px">(3).repeat until循环
<p>&nbsp;</p>
<div style="border-bottom: windowtext 0.5pt solid; border-left: windowtext 0.5pt solid; padding-bottom: 4px; padding-left: 5.4pt; width: 95%; padding-right: 5.4pt; background: rgb(230,230,230) 0% 50%; border-top: windowtext 0.5pt solid; border-right: windowtext 0.5pt solid; padding-top: 4px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">
<div><img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /><span style="color: rgb(255,0,0)">[</span><span style="color: rgb(255,0,0)">label:</span><span style="color: rgb(255,0,0)">]</span><span style="color: rgb(0,0,0)">&nbsp;REPEAT<br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" />statements<br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" />UNTIL&nbsp;expression<br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /></span><span style="color: rgb(0,0,255)">END</span><span style="color: rgb(0,0,0)">&nbsp;REPEAT&nbsp;</span><span style="color: rgb(255,0,0)">[</span><span style="color: rgb(255,0,0)">label</span><span style="color: rgb(255,0,0)">]</span><span style="color: rgb(0,0,0)">&nbsp;;</span></div>
</div>
<p>&nbsp;</p>
</div>
<p><span style="font-weight: bold">五.其他常用命令</span></p>
<div style="margin-left: 40px">1.show procedure status<br />
显示数据库中所有存储的存储过程基本信息，包括所属数据库，存储过程名称，创建时间等<br />
2.show create procedure sp_name<br />
显示某一个存储过程的详细信息</div>
<p>&nbsp;</p>
<p></p>
<div class="con_sample">
<p>mysql存储过程中要用到的运算符</p>
</div>
<div class="con_all">
<div style="text-align: center">
<h2>mysql存储过程学习总结－操作符</h2>
</div>
<p><strong>算术运算符</strong></p>
<p style="margin-left: 40px">+&nbsp;&nbsp;&nbsp;&nbsp; 加&nbsp;&nbsp; SET var1=2+2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4<br />
-&nbsp;&nbsp;&nbsp;&nbsp; 减&nbsp;&nbsp; SET var2=3-2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br />
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;乘&nbsp;&nbsp; SET var3=3*2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6<br />
/&nbsp;&nbsp;&nbsp;&nbsp; 除&nbsp;&nbsp; SET var4=10/3;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.3333<br />
DIV&nbsp;&nbsp; 整除&nbsp;SET var5=10 DIV 3;&nbsp; 3<br />
%&nbsp;&nbsp;&nbsp;&nbsp; 取模&nbsp;SET var6=10%3 ;&nbsp;&nbsp;&nbsp;&nbsp; 1</p>
<p><strong>比较运算符</strong></p>
<div style="margin-left: 40px">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大于&nbsp;1&gt;2&nbsp;False<br />
&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 小于&nbsp;2&lt;1&nbsp;False<br />
&lt;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 小于等于&nbsp;2&lt;=2&nbsp;True<br />
&gt;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大于等于&nbsp;3&gt;=2&nbsp;True<br />
BETWEEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在两值之间&nbsp;5 BETWEEN 1 AND 10&nbsp;True<br />
NOT BETWEEN&nbsp; 不在两值之间&nbsp;5 NOT BETWEEN 1 AND 10&nbsp;False<br />
IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在集合中&nbsp;5 IN (1,2,3,4)&nbsp;False<br />
NOT IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不在集合中&nbsp;5 NOT IN (1,2,3,4)&nbsp;True<br />
=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;等于&nbsp;2=3&nbsp;False<br />
&lt;&gt;, !=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不等于&nbsp;2&lt;&gt;3&nbsp;False<br />
&lt;=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 严格比较两个NULL值是否相等&nbsp;NULL&lt;=&gt;NULL&nbsp;True<br />
LIKE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;简单模式匹配&nbsp;"Guy Harrison" LIKE "Guy%"&nbsp;True<br />
REGEXP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 正则式匹配&nbsp;"Guy Harrison" REGEXP "[Gg]reg"&nbsp;False<br />
IS NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为空&nbsp;0 IS NULL&nbsp;False<br />
IS NOT NULL&nbsp; 不为空&nbsp;0 IS NOT NULL&nbsp;True</div>
<p><strong>逻辑运算符</strong></p>
<p><strong>与</strong>(AND)</p>
<p style="margin-left: 40px"><br />
<br />
<meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)" /><br />
<meta name="CREATED" content="20061101;13545200" /><br />
<meta name="CHANGED" content="16010101;0" /><br />
<style type="text/css">
<!-- @page { size: 8.5in 11in; margin: 0.79in }
		TD P { margin-bottom: 0in }
		TH P { margin-bottom: 0in; font-style: italic }
		P { margin-bottom: 0.08in }
	-->
</style>
<p>
<center>
<p>&nbsp;</p>
<table border="1" cellspacing="0" bordercolor="#000000" cellpadding="4" width="464">
    <colgroup>
    <col width="107"></col>
    <col width="108"></col>
    <col width="108"></col>
    <col width="107"></col>
    <p>&nbsp;</p>
    <thead>
        <tr valign="top">
            <th width="107">
            <p><font size="1">AND</font></p>
            </th>
            <th width="108">
            <p><font size="1">TRUE</font></p>
            </th>
            <th width="108">
            <p><font size="1">FALSE</font></p>
            </th>
            <th width="107">
            <p><font size="1">NULL</font></p>
            </th>
        </tr>
    </thead>
    <tbody>
        <tr valign="top">
            <td width="107">
            <p align="left"><font size="1">TRUE</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">TRUE</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">FALSE</font></p>
            </td>
            <td width="107">
            <p align="left"><font size="1">NULL</font></p>
            </td>
        </tr>
        <tr valign="top">
            <td width="107">
            <p align="left"><font size="1">FALSE</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">FALSE</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">FALSE</font></p>
            </td>
            <td width="107">
            <p align="left"><font size="1">NULL</font></p>
            </td>
        </tr>
        <tr valign="top">
            <td width="107">
            <p align="left"><font size="1">NULL</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">NULL</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">NULL</font></p>
            </td>
            <td width="107">
            <p align="left"><font size="1">NULL</font></p>
            </td>
        </tr>
    </tbody>
</table>
<p></center></p>
<p><strong>或(OR)</strong> </p>
<div style="margin-left: 40px">
<style type="text/css">
<!-- @page { size: 8.5in 11in; margin: 0.79in }
		TD P { margin-bottom: 0in }
		TH P { margin-bottom: 0in; font-style: italic }
		P { margin-bottom: 0.08in }
	-->
</style>
<p>
<center>
<p>&nbsp;</p>
<table border="1" cellspacing="0" bordercolor="#000000" cellpadding="4" width="464">
    <colgroup>
    <col width="107"></col>
    <col width="108"></col>
    <col width="108"></col>
    <col width="107"></col>
    <p>&nbsp;</p>
    <thead>
        <tr valign="top">
            <th width="107">
            <p><font size="1">OR</font></p>
            </th>
            <th width="108">
            <p><font size="1">TRUE</font></p>
            </th>
            <th width="108">
            <p><font size="1">FALSE</font></p>
            </th>
            <th width="107">
            <p><font size="1">NULL</font></p>
            </th>
        </tr>
    </thead>
    <tbody>
        <tr valign="top">
            <td width="107">
            <p align="left"><font size="1">TRUE</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">TRUE</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">TRUE</font></p>
            </td>
            <td width="107">
            <p align="left"><font size="1">TRUE</font></p>
            </td>
        </tr>
        <tr valign="top">
            <td width="107">
            <p align="left"><font size="1">FALSE</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">TRUE</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">FALSE</font></p>
            </td>
            <td width="107">
            <p align="left"><font size="1">NULL</font></p>
            </td>
        </tr>
        <tr valign="top">
            <td width="107">
            <p align="left"><font size="1">NULL</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">TRUE</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">NULL</font></p>
            </td>
            <td width="107">
            <p align="left"><font size="1">NULL</font></p>
            </td>
        </tr>
    </tbody>
</table>
<p></center></p>
</div>
<p><strong>异或(XOR)</strong> </p>
<div style="margin-left: 40px">
<style type="text/css">
<!-- @page { size: 8.5in 11in; margin: 0.79in }
		TD P { margin-bottom: 0in }
		TH P { margin-bottom: 0in; font-style: italic }
		P { margin-bottom: 0.08in }
	-->
</style>
<p>
<center>
<p>&nbsp;</p>
<table border="1" cellspacing="0" bordercolor="#000000" summary="" cellpadding="4" width="464" align="center">
    <colgroup>
    <col width="107"></col>
    <col width="108"></col>
    <col width="108"></col>
    <col width="107"></col>
    <p>&nbsp;</p>
    <thead>
        <tr valign="top">
            <th width="107">
            <p><font size="1">XOR</font></p>
            </th>
            <th width="108">
            <p><font size="1">TRUE</font></p>
            </th>
            <th width="108">
            <p><font size="1">FALSE</font></p>
            </th>
            <th width="107">
            <p><font size="1">NULL</font></p>
            </th>
        </tr>
    </thead>
    <tbody>
        <tr valign="top">
            <td width="107">
            <p align="left"><font size="1">TRUE</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">FALSE</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">TRUE</font></p>
            </td>
            <td width="107">
            <p align="left"><font size="1">NULL</font></p>
            </td>
        </tr>
        <tr valign="top">
            <td width="107">
            <p align="left"><font size="1">FALSE</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">TRUE</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">FALSE</font></p>
            </td>
            <td width="107">
            <p align="left"><font size="1">NULL</font></p>
            </td>
        </tr>
        <tr valign="top">
            <td width="107">
            <p align="left"><font size="1">NULL</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">NULL</font></p>
            </td>
            <td width="108">
            <p align="left"><font size="1">NULL</font></p>
            </td>
            <td width="107">
            <p align="left"><font size="1">NULL</font></p>
            </td>
        </tr>
    </tbody>
</table>
<p></center></p>
</div>
<p><strong>位运算符</strong></p>
<p style="margin-left: 40px">|&nbsp;&nbsp; 位或<br />
&amp;&nbsp;&nbsp; 位与<br />
&lt;&lt;&nbsp; 左移位<br />
&gt;&gt;&nbsp; 右移位<br />
~&nbsp;&nbsp; 位非(单目运算，按位取反)</p>
<p>&nbsp;</p>
</div>
<div class="con_sample">
<p>mysq存储过程中常用的函数，字符串类型操作，数学类，日期时间类。</p>
</div>
<div class="con_all">
<div style="text-align: center">
<h1>mysql存储过程基本函数</h1>
</div>
<p><span style="font-weight: bold">一.字符串类</span>&nbsp;</p>
<div style="margin-left: 40px">CHARSET(str) //返回字串字符集<br />
CONCAT (string2&nbsp; [,... ]) //连接字串<br />
INSTR (string ,substring ) //返回substring首次在string中出现的位置,不存在返回0<br />
LCASE (string2 ) //转换成小写<br />
LEFT (string2 ,length ) //从string2中的左边起取length个字符<br />
LENGTH (string ) //string长度<br />
LOAD_FILE (file_name ) //从文件读取内容<br />
LOCATE (substring , string&nbsp; [,start_position ] ) 同INSTR,但可指定开始位置<br />
LPAD (string2 ,length ,pad ) //重复用pad加在string开头,直到字串长度为length<br />
LTRIM (string2 ) //去除前端空格<br />
REPEAT (string2 ,count ) //重复count次<br />
REPLACE (str ,search_str ,replace_str ) //在str中用replace_str替换search_str<br />
RPAD (string2 ,length ,pad) //在str后用pad补充,直到长度为length<br />
RTRIM (string2 ) //去除后端空格<br />
STRCMP (string1 ,string2 ) //逐字符比较两字串大小,<br />
SUBSTRING (str , position&nbsp; [,length ]) //从str的position开始,取length个字符,<br />
<span style="color: rgb(255,0,0)">注：mysql中处理字符串时，默认第一个字符下标为1</span>，即参数position必须大于等于1
<p>&nbsp;</p>
<div style="margin-left: 40px">mysql&gt; select substring(&#8217;abcd&#8217;,0,2);<br />
+———————&#8211;+<br />
| substring(&#8217;abcd&#8217;,0,2) |<br />
+———————&#8211;+<br />
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
+———————&#8211;+<br />
1 row in set (0.00 sec)
<p>&nbsp;</p>
</div>
<div style="margin-left: 40px">mysql&gt; select substring(&#8217;abcd&#8217;,1,2);<br />
+———————&#8211;+<br />
| substring(&#8217;abcd&#8217;,1,2) |<br />
+———————&#8211;+<br />
| ab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
+———————&#8211;+<br />
1 row in set (0.02 sec)</div>
<p>TRIM([[BOTH|LEADING|TRAILING] [padding] FROM]string2) //去除指定位置的指定字符<br />
UCASE (string2 ) //转换成大写<br />
RIGHT(string2,length) //取string2最后length个字符<br />
SPACE(count) //生成count个空格&nbsp;</p>
</div>
<p><span style="font-weight: bold">二.数学类</span></p>
<div style="margin-left: 40px">ABS (number2 ) //绝对值<br />
BIN (decimal_number ) //十进制转二进制<br />
CEILING (number2 ) //向上取整<br />
CONV(number2,from_base,to_base) //进制转换<br />
FLOOR (number2 ) //向下取整<br />
FORMAT (number,decimal_places ) //保留小数位数<br />
HEX (DecimalNumber ) //转十六进制<br />
注：HEX()中可传入字符串，则返回其ASC-11码，如HEX(&#8217;DEF&#8217;)返回4142143<br />
也可以传入十进制整数，返回其十六进制编码，如HEX(25)返回19<br />
LEAST (number , number2&nbsp; [,..]) //求最小值<br />
MOD (numerator ,denominator ) //求余<br />
POWER (number ,power ) //求指数<br />
RAND([seed]) //随机数<br />
ROUND (number&nbsp; [,decimals ]) //四舍五入,decimals为小数位数]
<p>&nbsp;</p>
<div style="margin-left: 40px">注：返回类型并非均为整数，如：<br />
(1)默认变为整形值<br />
mysql&gt; select round(1.23);<br />
+————-+<br />
| round(1.23) |<br />
+————-+<br />
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 |<br />
+————-+<br />
1 row in set (0.00 sec)
<p>&nbsp;</p>
<p>mysql&gt; select round(1.56);<br />
+————-+<br />
| round(1.56) |<br />
+————-+<br />
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 |<br />
+————-+<br />
1 row in set (0.00 sec)</p>
<p><span style="color: rgb(255,0,0)">(2)可以设定小数位数，返回浮点型数据</span><br />
mysql&gt; select round(1.567,2);<br />
+—————-+<br />
| round(1.567,2) |<br />
+—————-+<br />
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.57 |<br />
+—————-+<br />
1 row in set (0.00 sec)</p>
</div>
<p>SIGN (number2 ) //返回符号,正负或0<br />
SQRT(number2) //开平方</p>
</div>
<p>&nbsp;<br />
<span style="font-weight: bold">三.日期时间类</span><br />
&nbsp;</p>
<div style="margin-left: 40px">ADDTIME (date2 ,time_interval ) //将time_interval加到date2<br />
CONVERT_TZ (datetime2 ,fromTZ ,toTZ ) //转换时区<br />
CURRENT_DATE (&nbsp; ) //当前日期<br />
CURRENT_TIME (&nbsp; ) //当前时间<br />
CURRENT_TIMESTAMP (&nbsp; ) //当前时间戳<br />
DATE (datetime ) //返回datetime的日期部分<br />
DATE_ADD (date2 , INTERVAL d_value d_type ) //在date2中加上日期或时间<br />
DATE_FORMAT (datetime ,FormatCodes ) //使用formatcodes格式显示datetime<br />
DATE_SUB (date2 , INTERVAL d_value d_type ) //在date2上减去一个时间<br />
DATEDIFF (date1 ,date2 ) //两个日期差<br />
DAY (date ) //返回日期的天<br />
DAYNAME (date ) //英文星期<br />
DAYOFWEEK (date ) //星期(1-7) ,1为星期天<br />
DAYOFYEAR (date ) //一年中的第几天<br />
EXTRACT (interval_name&nbsp; FROM date ) //从date中提取日期的指定部分<br />
MAKEDATE (year ,day ) //给出年及年中的第几天,生成日期串<br />
MAKETIME (hour ,minute ,second ) //生成时间串<br />
MONTHNAME (date ) //英文月份名<br />
NOW (&nbsp; ) //当前时间<br />
SEC_TO_TIME (seconds ) //秒数转成时间<br />
STR_TO_DATE (string ,format ) //字串转成时间,以format格式显示<br />
TIMEDIFF (datetime1 ,datetime2 ) //两个时间差<br />
TIME_TO_SEC (time ) //时间转秒数]<br />
WEEK (date_time [,start_of_week ]) //第几周<br />
YEAR (datetime ) //年份<br />
DAYOFMONTH(datetime) //月的第几天<br />
HOUR(datetime) //小时<br />
LAST_DAY(date) //date的月的最后日期<br />
MICROSECOND(datetime) //微秒<br />
MONTH(datetime) //月<br />
MINUTE(datetime) //分</div>
<p>&nbsp;</p>
<div style="margin-left: 40px">附:可用在INTERVAL中的类型<br />
DAY ,DAY_HOUR ,DAY_MINUTE ,DAY_SECOND ,HOUR ,HOUR_MINUTE ,HOUR_SECOND ,MINUTE ,MINUTE_SECOND,MONTH ,SECOND ,YEAR&nbsp; </div>
<p>&nbsp;</p>
</div><img src ="http://www.blogjava.net/Alpha/aggbug/348389.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2011-04-16 09:37 <a href="http://www.blogjava.net/Alpha/articles/348389.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL SERVER 与ACCESS、EXCEL的数据转换</title><link>http://www.blogjava.net/Alpha/articles/9119.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Wed, 03 Aug 2005 04:41:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/articles/9119.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/9119.html</wfw:comment><comments>http://www.blogjava.net/Alpha/articles/9119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/9119.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/9119.html</trackback:ping><description><![CDATA[<SPAN id=dgfiList__ctl7_Body>SQL&nbsp;SERVER&nbsp;与ACCESS、EXCEL的数据转换&nbsp; <BR>熟悉SQL&nbsp;SERVER&nbsp;2000的数据库管理员都知道，其DTS可以进行数据的导入导出，其实，我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中，我们主要使用OpenDataSource函数、OPENROWSET&nbsp;函数，关于函数的详细说明，请参考SQL联机帮助。利用下述方法，可以十分容易地实现SQL&nbsp;SERVER、ACCESS、EXCEL数据转换，详细说明如下： <BR><BR>一、SQL&nbsp;SERVER&nbsp;和ACCESS的数据导入导出 <BR>常规的数据导入导出： <BR>使用DTS向导迁移你的Access数据到SQL&nbsp;Server，你可以使用这些步骤:&nbsp; <BR>　　○1在SQL&nbsp;SERVER企业管理器中的Tools（工具）菜单上，选择Data&nbsp;Transformation&nbsp; <BR>　　○2Services（数据转换服务），然后选择&nbsp;&nbsp;czdImport&nbsp;Data（导入数据）。&nbsp; <BR>　　○3在Choose&nbsp;a&nbsp;Data&nbsp;Source（选择数据源）对话框中选择Microsoft&nbsp;Access&nbsp;as&nbsp;the&nbsp;Source，然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。&nbsp; <BR>　　○4在Choose&nbsp;a&nbsp;Destination（选择目标）对话框中，选择Microsoft&nbsp;OLE　DB&nbsp;Prov&nbsp;ider&nbsp;for&nbsp;SQL　Server，选择数据库服务器，然后单击必要的验证方式。&nbsp; <BR>　　○5在Specify&nbsp;Table&nbsp;Copy（指定表格复制）或Query（查询）对话框中，单击Copy&nbsp;tables（复制表格）。&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;○6在Select&nbsp;Source&nbsp;Tables（选择源表格）对话框中，单击Select&nbsp;All（全部选定）。下一步，完成。 <BR><BR>Transact-SQL语句进行导入导出： <BR>1.在SQL&nbsp;SERVER里查询access数据: <BR><BR>SELECT&nbsp;*&nbsp; <BR>FROM&nbsp;OpenDataSource(&nbsp;'Microsoft.Jet.OLEDB.4.0', <BR>'Data&nbsp;Source="c:\DB.mdb";User&nbsp;ID=Admin;Password=')...表名 <BR><BR>2.将access导入SQL&nbsp;server <BR>在SQL&nbsp;SERVER&nbsp;里运行: <BR>SELECT&nbsp;* <BR>INTO&nbsp;newtable <BR>FROM&nbsp;OPENDATASOURCE&nbsp;('Microsoft.Jet.OLEDB.4.0',&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Data&nbsp;Source="c:\DB.mdb";User&nbsp;ID=Admin;Password='&nbsp;)...表名 <BR><BR>3.将SQL&nbsp;SERVER表里的数据插入到Access表中 <BR>在SQL&nbsp;SERVER&nbsp;里运行： <BR>insert&nbsp;into&nbsp;OpenDataSource(&nbsp;'Microsoft.Jet.OLEDB.4.0', <BR>&nbsp;&nbsp;'Data&nbsp;Source="&nbsp;c:\DB.mdb";User&nbsp;ID=Admin;Password=')...表名&nbsp; <BR>(列名1,列名2) <BR>select&nbsp;列名1,列名2&nbsp;&nbsp;from&nbsp;&nbsp;sql表 <BR><BR>实例： <BR>insert&nbsp;into&nbsp;&nbsp;OPENROWSET('Microsoft.Jet.OLEDB.4.0',&nbsp; <BR>&nbsp;&nbsp;&nbsp;'C:\db.mdb';'admin';'',&nbsp;Test)&nbsp; <BR>select&nbsp;id,name&nbsp;from&nbsp;Test <BR><BR><BR>INSERT&nbsp;INTO&nbsp;OPENROWSET('Microsoft.Jet.OLEDB.4.0',&nbsp;'c:\trade.mdb';&nbsp;'admin';&nbsp;'',&nbsp;表名) <BR>SELECT&nbsp;* <BR>FROM&nbsp;sqltablename <BR><BR>二、SQL&nbsp;SERVER&nbsp;和EXCEL的数据导入导出 <BR><BR>1、在SQL&nbsp;SERVER里查询Excel数据: <BR><BR>SELECT&nbsp;*&nbsp; <BR>FROM&nbsp;OpenDataSource(&nbsp;'Microsoft.Jet.OLEDB.4.0', <BR>'Data&nbsp;Source="c:\book1.xls";User&nbsp;ID=Admin;Password=;Extended&nbsp;properties=Excel&nbsp;5.0')...[Sheet1$] <BR><BR>下面是个查询的示例，它通过用于&nbsp;Jet&nbsp;的&nbsp;OLE&nbsp;DB&nbsp;提供程序查询&nbsp;Excel&nbsp;电子表格。 <BR>SELECT&nbsp;*&nbsp; <BR>FROM&nbsp;OpenDataSource&nbsp;(&nbsp;'Microsoft.Jet.OLEDB.4.0', <BR>&nbsp;&nbsp;'Data&nbsp;Source="c:\Finance\account.xls";User&nbsp;ID=Admin;Password=;Extended&nbsp;properties=Excel&nbsp;5.0')...xactions <BR><BR>2、将Excel的数据导入SQL&nbsp;server&nbsp;: <BR>SELECT&nbsp;*&nbsp;into&nbsp;newtable <BR>FROM&nbsp;OpenDataSource(&nbsp;'Microsoft.Jet.OLEDB.4.0', <BR>&nbsp;&nbsp;'Data&nbsp;Source="c:\book1.xls";User&nbsp;ID=Admin;Password=;Extended&nbsp;properties=Excel&nbsp;5.0')...[Sheet1$] <BR><BR>实例: <BR>SELECT&nbsp;*&nbsp;into&nbsp;newtable <BR>FROM&nbsp;OpenDataSource(&nbsp;'Microsoft.Jet.OLEDB.4.0', <BR>&nbsp;&nbsp;'Data&nbsp;Source="c:\Finance\account.xls";User&nbsp;ID=Admin;Password=;Extended&nbsp;properties=Excel&nbsp;5.0')...xactions <BR><BR>3、将SQL&nbsp;SERVER中查询到的数据导成一个Excel文件 <BR>T-SQL代码： <BR>EXEC&nbsp;master..xp_cmdshell&nbsp;'bcp&nbsp;库名.dbo.表名out&nbsp;c:\Temp.xls&nbsp;-c&nbsp;-q&nbsp;-S"servername"&nbsp;-U"sa"&nbsp;-P""' <BR>参数：S&nbsp;是SQL服务器名；U是用户；P是密码 <BR>说明：还可以导出文本文件等多种格式 <BR><BR>实例:EXEC&nbsp;master..xp_cmdshell&nbsp;'bcp&nbsp;saletesttmp.dbo.CusAccount&nbsp;out&nbsp;c:\temp1.xls&nbsp;-c&nbsp;-q&nbsp;-S"pmserver"&nbsp;-U"sa"&nbsp;-P"sa"' <BR><BR>&nbsp;EXEC&nbsp;master..xp_cmdshell&nbsp;'bcp&nbsp;"SELECT&nbsp;au_fname,&nbsp;au_lname&nbsp;FROM&nbsp;pubs..authors&nbsp;ORDER&nbsp;BY&nbsp;au_lname"&nbsp;queryout&nbsp;C:\&nbsp;authors.xls&nbsp;-c&nbsp;-Sservername&nbsp;-Usa&nbsp;-Ppassword' <BR><BR>在VB6中应用ADO导出EXCEL文件代码：&nbsp; <BR>Dim&nbsp;cn&nbsp;&nbsp;As&nbsp;New&nbsp;ADODB.Connection <BR>cn.open&nbsp;"Driver={SQL&nbsp;Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;" <BR>cn.execute&nbsp;"master..xp_cmdshell&nbsp;'bcp&nbsp;"SELECT&nbsp;col1,&nbsp;col2&nbsp;FROM&nbsp;库名.dbo.表名"&nbsp;queryout&nbsp;E:\DT.xls&nbsp;-c&nbsp;-Sservername&nbsp;-Usa&nbsp;-Ppassword'" <BR><BR><BR>4、在SQL&nbsp;SERVER里往Excel插入数据: <BR><BR>insert&nbsp;into&nbsp;OpenDataSource(&nbsp;'Microsoft.Jet.OLEDB.4.0', <BR>'Data&nbsp;Source="c:\Temp.xls";User&nbsp;ID=Admin;Password=;Extended&nbsp;properties=Excel&nbsp;5.0')...table1&nbsp;(A1,A2,A3)&nbsp;values&nbsp;(1,2,3) <BR><BR>T-SQL代码： <BR>INSERT&nbsp;INTO&nbsp;&nbsp; <BR>&nbsp;OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',&nbsp;&nbsp; <BR>&nbsp;'Extended&nbsp;Properties=Excel&nbsp;8.0;Data&nbsp;source=C:\training\inventur.xls')...[Filiale1$]&nbsp;&nbsp; <BR>&nbsp;(bestand,&nbsp;produkt)&nbsp;VALUES&nbsp;(20,&nbsp;'Test')&nbsp;&nbsp; <BR><BR>总结：利用以上语句，我们可以方便地将SQL&nbsp;SERVER、ACCESS和EXCEL电子表格软件中的数据进行转换，为我们提供了极大方便！ <BR><BR>参考： <BR>http://www.itrain.de/knowhow/sql/transfer/adhoc/ <BR><BR><BR>原文:<IMG align=absMiddle border=0 src="http://www.chinaaspx.com/comm/dotnetbbs/pic/url.gif"><A href="http://www.cnblogs.com/anders/archive/2004/07/27/27653.aspx" target=_blank>http://www.cnblogs.com/anders/archive/2004/07/27/27653.aspx</A></SPAN> <BR><BR><img src ="http://www.blogjava.net/Alpha/aggbug/9119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2005-08-03 12:41 <a href="http://www.blogjava.net/Alpha/articles/9119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>-＝SQL语句集锦＝-</title><link>http://www.blogjava.net/Alpha/articles/7036.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Sat, 02 Jul 2005 08:04:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/articles/7036.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/7036.html</wfw:comment><comments>http://www.blogjava.net/Alpha/articles/7036.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/7036.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/7036.html</trackback:ping><description><![CDATA[<P><BR>&nbsp; -＝SQL语句集锦＝-</P>
<P><BR>--语 句--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --功 能--</P>
<P>--数据操作<BR>select&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --从数据库表中检索数据行和列<BR>insert&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --向数据库表添加新数据行<BR>delete&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --从数据库表中删除数据行<BR>update&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --更新数据库表中的数据</P>
<P>--数据定义<BR>create table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --创建一个数据库表<BR>drop table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --从数据库中删除表<BR>alter table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --修改数据库表结构<BR>create view&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --创建一个视图<BR>drop view&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --从数据库中删除视图<BR>create index&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --为数据库表创建一个索引<BR>drop index&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --从数据库中删除索引<BR>create procedure&nbsp;&nbsp; --创建一个存储过程<BR>drop procedure&nbsp;&nbsp;&nbsp;&nbsp; --从数据库中删除存储过程<BR>create trigger&nbsp;&nbsp;&nbsp;&nbsp; --创建一个触发器<BR>drop trigger&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --从数据库中删除触发器<BR>create schema&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --向数据库添加一个新模式<BR>drop schema&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --从数据库中删除一个模式<BR>create domain&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --创建一个数据值域<BR>alter domain&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --改变域定义<BR>drop domain&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --从数据库中删除一个域</P>
<P>--数据控制<BR>grant&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --授予用户访问权限<BR>deny&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --拒绝用户访问<BR>revoke&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --解除用户访问权限</P>
<P>--事务控制<BR>commit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --结束当前事务<BR>rollback&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --中止当前事务<BR>set transaction&nbsp;&nbsp;&nbsp; --定义当前事务数据访问特征</P>
<P>--程序化sql<BR>declare&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --为查询设定游标<BR>explan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --为查询描述数据访问计划<BR>open&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --检索查询结果打开一个游标<BR>fetch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --检索一行查询结果<BR>close&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --关闭游标<BR>prepare&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --为动态执行准备sql 语句<BR>execute&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --动态地执行sql 语句<BR>describe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --描述准备好的查询</P>
<P>---局部变量<BR>declare @id char(10)<BR>--set @id = '10010001'<BR>select @id = '10010001'</P>
<P>---全局变量<BR>---必须以@@开头</P>
<P>--IF ELSE<BR>declare @x int @y int @z int<BR>select @x = 1 @y = 2 @z=3<BR>if @x &gt; @y<BR>print 'x &gt; y' --打印字符串'x &gt; y'<BR>else if @y &gt; @z<BR>print 'y &gt; z'<BR>else print 'z &gt; y'</P>
<P>--CASE<BR>use pangu<BR>update employee<BR>set e_wage =<BR>case<BR>&nbsp; when job_level = ’1’ then e_wage*1.08<BR>&nbsp; when job_level = ’2’ then e_wage*1.07<BR>&nbsp; when job_level = ’3’ then e_wage*1.06<BR>&nbsp; else e_wage*1.05<BR>end</P>
<P>--while continue break<BR>declare @x int @y int @c int<BR>select @x = 1 @y=1<BR>while @x &lt; 3<BR>begin<BR>&nbsp; print @x --打印变量x 的值<BR>&nbsp; while @y &lt; 3<BR>&nbsp;&nbsp; begin<BR>&nbsp;&nbsp;&nbsp; select @c = 100*@x + @y<BR>&nbsp;&nbsp;&nbsp; print @c --打印变量c 的值<BR>&nbsp;&nbsp;&nbsp; select @y = @y + 1<BR>&nbsp;&nbsp; end<BR>&nbsp; select @x = @x + 1<BR>&nbsp; select @y = 1<BR>end</P>
<P>--WAITFOR--<BR>--例 等待1 小时2 分零3 秒后才执行SELECT 语句<BR>waitfor delay ’01:02:03’<BR>select * from employee<BR>--例 等到晚上11 点零8 分后才执行SELECT 语句<BR>waitfor time ’23:08:00’<BR>select * from employee</P>
<P><BR>***SELECT*** </P>
<P>&nbsp;&nbsp; select *(列名) from table_name(表名) where column_name operator value<BR>&nbsp;&nbsp; ex:(宿主)<BR>&nbsp; select * from stock_information where stockid&nbsp;&nbsp; = str(nid)<BR>&nbsp;&nbsp;&nbsp;&nbsp; stockname = 'str_name' <BR>&nbsp;&nbsp;&nbsp;&nbsp; stockname like '% find this %' <BR>&nbsp;&nbsp;&nbsp;&nbsp; stockname like '[a-zA-Z]%' --------- ([]指定值的范围)<BR>&nbsp;&nbsp;&nbsp;&nbsp; stockname like '[^F-M]%'&nbsp;&nbsp; --------- (^排除指定范围)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------- 只能在使用like关键字的where子句中使用通配符)<BR>&nbsp;&nbsp;&nbsp;&nbsp; or stockpath = 'stock_path'<BR>&nbsp;&nbsp;&nbsp;&nbsp; or stocknumber &lt; 1000<BR>&nbsp;&nbsp;&nbsp;&nbsp; and stockindex = 24<BR>&nbsp;&nbsp;&nbsp;&nbsp; not stock*** = 'man'<BR>&nbsp;&nbsp;&nbsp;&nbsp; stocknumber between 20 and 100<BR>&nbsp;&nbsp;&nbsp;&nbsp; stocknumber in(10,20,30)<BR>&nbsp;&nbsp;&nbsp;&nbsp; order by stockid desc(asc) --------- 排序，desc-降序，asc-升序<BR>&nbsp;&nbsp;&nbsp;&nbsp; order by 1,2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------- by列号<BR>&nbsp;&nbsp;&nbsp;&nbsp; stockname = (select stockname from stock_information&nbsp; where stockid&nbsp; = 4)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------- 子查询<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------- 除非能确保内层select只返回一个行的值，<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------- 否则应在外层where子句中用一个in限定符<BR>&nbsp; select distinct column_name form table_name <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------- distinct指定检索独有的列值，不重复<BR>&nbsp; select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name<BR>&nbsp; select stockname , "stocknumber" = count(*) from table_name group by stockname<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------- group by 将表按行分组,指定列中有相同的值<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; having count(*) = 2&nbsp;&nbsp; ---------&nbsp; having选定指定的组<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp; select * <BR>&nbsp; from table1, table2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp; where table1.id *= table2.id&nbsp; -------- 左外部连接，table1中有的而table2中没有得以null表示<BR>&nbsp;&nbsp;&nbsp;&nbsp; table1.id =* table2.id&nbsp;&nbsp;&nbsp;&nbsp; -------- 右外部连接 </P>
<P><BR>&nbsp; select stockname from table1<BR>&nbsp; union [all]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ---------&nbsp; union合并查询结果集，all-保留重复行<BR>&nbsp; select stockname from table2</P>
<P>&nbsp;</P>
<P>***insert***</P>
<P><BR>&nbsp; insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value (select Stockname , Stocknumber from Stock_table2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -------- value为select语句</P>
<P><BR>***update***</P>
<P>&nbsp; update table_name set Stockname = "xxx" [where Stockid = 3]<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stockname = default<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stockname = null<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stocknumber = Stockname + 4<BR>&nbsp;</P>
<P>***delete***</P>
<P>&nbsp; delete from table_name where Stockid = 3<BR>&nbsp; truncate table_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------- 删除表中所有行，仍保持表的完整性<BR>&nbsp; drop table table_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------- 完全删除表</P>
<P>***alter table***&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------- 修改数据库表结构</P>
<P>&nbsp; alter table database.owner.table_name add column_name char(2) null .....<BR>&nbsp; sp_help table_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------- 显示表已有特征<BR>&nbsp; create table table_name (name char(20), age smallint, lname varchar(30))<BR>&nbsp; insert into table_name select ......... <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------- 实现删除列的方法（创建新表）<BR>&nbsp; alter table table_name drop constraint Stockname_default <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------- 删除Stockname的default约束</P>
<P>&nbsp;&nbsp;&nbsp; <BR>***function(/*常用函数*/)***</P>
<P><BR>----统计函数----<BR>AVG&nbsp;&nbsp;&nbsp; --求平均值<BR>COUNT&nbsp;&nbsp; --统计数目<BR>MAX&nbsp;&nbsp;&nbsp; --求最大值<BR>MIN&nbsp;&nbsp;&nbsp; --求最小值<BR>SUM&nbsp;&nbsp;&nbsp; --求和</P>
<P><BR>--AVG<BR>use pangu<BR>select avg(e_wage) as dept_avgWage<BR>from employee<BR>group by dept_id</P>
<P><BR>--MAX<BR>--求工资最高的员工姓名<BR>use pangu<BR>select e_name<BR>from employee<BR>where e_wage =<BR>(select max(e_wage)<BR>&nbsp; from employee)</P>
<P><BR>--stdev()<BR>--stdev()函数返回表达式中所有数据的标准差</P>
<P><BR>--stdevp()<BR>--stdevp()函数返回总体标准差</P>
<P>--var()<BR>--var()函数返回表达式中所有值的统计变异数</P>
<P><BR>--varp()<BR>--varp()函数返回总体变异数</P>
<P>----算术函数----</P>
<P>/***三角函数***/<BR>sin(float_expression) --返回以弧度表示的角的正弦<BR>cos(float_expression) --返回以弧度表示的角的余弦<BR>tan(float_expression) --返回以弧度表示的角的正切<BR>cot(float_expression) --返回以弧度表示的角的余切</P>
<P>/***反三角函数***/<BR>asin(float_expression) --返回正弦是float 值的以弧度表示的角<BR>acos(float_expression) --返回余弦是float 值的以弧度表示的角<BR>atan(float_expression) --返回正切是float 值的以弧度表示的角<BR>atan2(float_expression1,float_expression2) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --返回正切是float_expression1 /float_expres-sion2的以弧度表示的角<BR>degrees(numeric_expression)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --把弧度转换为角度返回与表达式相同的数据类型可为<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --integer/money/real/float 类型<BR>radians(numeric_expression) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --把角度转换为弧度返回与表达式相同的数据类型可为<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --integer/money/real/float 类型<BR>exp(float_expression)&nbsp; --返回表达式的指数值<BR>log(float_expression)&nbsp; --返回表达式的自然对数值<BR>log10(float_expression)--返回表达式的以10 为底的对数值<BR>sqrt(float_expression) --返回表达式的平方根</P>
<P>/***取近似值函数***/<BR>ceiling(numeric_expression)&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --返回&gt;=表达式的最小整数返回的数据类型与表达式相同可为<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --integer/money/real/float 类型<BR>floor(numeric_expression)&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --返回&lt;=表达式的最小整数返回的数据类型与表达式相同可为<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --integer/money/real/float 类型<BR>round(numeric_expression)&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --返回以integer_expression 为精度的四舍五入值返回的数据<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --类型与表达式相同可为integer/money/real/float 类型<BR>abs(numeric_expression)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --返回表达式的绝对值返回的数据类型与表达式相同可为<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --integer/money/real/float 类型<BR>sign(numeric_expression)&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --与表达式相同可为integer/money/real/float 类型</P>
<P>pi()&nbsp;&nbsp;&nbsp; --返回值为π 即3.1415926535897936<BR>rand([integer_expression])&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数</P>
<P><BR>----字符串函数----<BR>ascii()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回字符表达式最左端字符的ascii 码值<BR>char()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数用于将ascii 码转换为字符<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --如果没有输入0 ~ 255 之间的ascii 码值char 函数会返回一个null 值<BR>lower()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数把字符串全部转换为小写<BR>upper()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数把字符串全部转换为大写<BR>str()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数把数值型数据转换为字符型数据<BR>ltrim()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数把字符串头部的空格去掉<BR>rtrim()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数把字符串尾部的空格去掉<BR>left(),right(),substring()&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回部分字符串<BR>charindex(),patindex()&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回字符串中某个指定的子串出现的开始位置<BR>soundex()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回一个四位字符码 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --soundex函数可用来查找声音相似的字符串<BR>&nbsp;&nbsp;--但soundex函数对数字和汉字均只返回0 值&nbsp;&nbsp;&nbsp;&nbsp; <BR>difference()&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回由soundex 函数返回的两个字符表达式的值的差异<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --0 两个soundex 函数返回值的第一个字符不同<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --1 两个soundex 函数返回值的第一个字符相同<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --2 两个soundex 函数返回值的第一二个字符相同<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --3 两个soundex 函数返回值的第一二三个字符相同<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --4 两个soundex 函数返回值完全相同<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>quotename()&nbsp;&nbsp;&nbsp;&nbsp; --函数返回被特定字符括起来的字符串</P>
<P>/*select quotename('abc', '{') quotename('abc')<BR>运行结果如下<BR>----------------------------------<BR>{abc} [abc]*/</P>
<P><BR>replicate()&nbsp;&nbsp;&nbsp;&nbsp; --函数返回一个重复character_expression 指定次数的字符串<BR>/*select replicate('abc', 3) replicate( 'abc', -2)<BR>运行结果如下<BR>----------- -----------<BR>abcabcabc NULL*/<BR>&nbsp;</P>
<P>reverse()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数将指定的字符串的字符排列顺序颠倒<BR>replace()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回被替换了指定子串的字符串<BR>/*select replace('abc123g', '123', 'def')<BR>运行结果如下<BR>----------- -----------<BR>abcdefg*/</P>
<P><BR>space()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回一个有指定长度的空白字符串<BR>stuff()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数用另一子串替换字符串指定位置长度的子串</P>
<P><BR>----数据类型转换函数----<BR>cast() 函数语法如下<BR>cast() (&lt;expression&gt; as &lt;data_ type&gt;[ length ])<BR>convert() 函数语法如下<BR>convert() (&lt;data_ type&gt;[ length ], &lt;expression&gt; [, style])</P>
<P>select cast(100+99 as char) convert(varchar(12), getdate())<BR>运行结果如下<BR>------------------------------------------<BR>199&nbsp;&nbsp; Jan 15 2000</P>
<P><BR>----日期函数----<BR>day()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回date_expression 中的日期值<BR>month()&nbsp;&nbsp;&nbsp;&nbsp; --函数返回date_expression 中的月份值<BR>year()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回date_expression 中的年份值<BR>dateadd(&lt;datepart&gt; ,&lt;number&gt; ,&lt;date&gt;) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期<BR>datediff(&lt;datepart&gt; ,&lt;number&gt; ,&lt;date&gt;)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回两个指定日期在datepart 方面的不同之处<BR>datename(&lt;datepart&gt; , &lt;date&gt;)&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数以字符串的形式返回日期的指定部分<BR>datepart(&lt;datepart&gt; , &lt;date&gt;)&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数以整数值的形式返回日期的指定部分<BR>getdate()&nbsp;&nbsp; --函数以datetime 的缺省格式返回系统当前的日期和时间</P>
<P><BR>----系统函数----<BR>app_name()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回当前执行的应用程序的名称<BR>coalesce()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回众多表达式中第一个非null 表达式的值<BR>col_length(&lt;'table_name'&gt;, &lt;'column_name'&gt;) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回表中指定字段的长度值<BR>col_name(&lt;table_id&gt;, &lt;column_id&gt;)&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回表中指定字段的名称即列名<BR>datalength()&nbsp;&nbsp;&nbsp; --函数返回数据表达式的数据的实际长度<BR>db_id(['database_name']) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回数据库的编号<BR>db_name(database_id)&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回数据库的名称<BR>host_id()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回服务器端计算机的名称<BR>host_name()&nbsp;&nbsp;&nbsp;&nbsp; --函数返回服务器端计算机的名称<BR>identity(&lt;data_type&gt;[, seed increment]) [as column_name])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --identity() 函数只在select into 语句中<BR>&nbsp;&nbsp;--使用用于插入一个identity column列到新表中</P>
<P>/*select identity(int, 1, 1) as column_name<BR>into newtable<BR>from oldtable*/</P>
<P>isdate()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数判断所给定的表达式是否为合理日期<BR>isnull(&lt;check_expression&gt;, &lt;replacement_value&gt;) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数将表达式中的null 值用指定值替换<BR>isnumeric()&nbsp;&nbsp;&nbsp;&nbsp; --函数判断所给定的表达式是否为合理的数值<BR>newid()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --函数返回一个uniqueidentifier 类型的数值<BR>nullif(&lt;expression1&gt;, &lt;expression2&gt;)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --nullif 函数在expression1 与expression2 相等时<BR>&nbsp;&nbsp;--返回null 值若不相等时则返回expression1 的值</P>
<P><BR>====精妙SQL语句====</P>
<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 <BR>&nbsp;&nbsp;&nbsp;&nbsp; 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('minute',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><BR>&nbsp;</P><img src ="http://www.blogjava.net/Alpha/aggbug/7036.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2005-07-02 16:04 <a href="http://www.blogjava.net/Alpha/articles/7036.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>