⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 24717.htm

📁 一本很基础的SQL讲解
💻 HTM
字号:
<link href="./dzs_cs.css" rel="stylesheet" type="text/css" /><table width="96%" border="0" align="center" cellpadding="0" cellspacing="0">      <tr>        <td>&nbsp;</td>      </tr>      <tr>        <td height="24" align="center" valign="bottom" class="d_font3">SQL Server数据库和XML标识语言的集成</td>      </tr>      <tr>        <td height="3" bgcolor="#E3E3E3"></td>      </tr>      <tr>        <td>&nbsp;</td>      </tr>      <tr>        <td class="d_font4"><P>XML相比HTML给予了Web开发人员更大的编程灵活性。这种技术驱动开发机构尝试把XML同自己的产品集成起来。微软就是采取如此举措的先驱者。微软的几乎所有产品中都能看到XML的身影。举个例子:微软是如何在其SQL Server产品线中集成XML的呢?下面咱们就来看看关键的FOR XML子句。 </P>
<P><STRONG>以XML的名义获取信息</STRONG><BR><BR>SQL Server和XML之间的集成首要一点就是根据SQL数据创建XML文件。XML文件的构造并不复杂,用简单的脚本和ADO记录集就可以轻松产生。这个任务虽然不算麻烦,但开发人员却需要针对他们从服务器获取的结果集合产生不同的脚本,或者编写更为复杂的通用脚本。SELECT 语句则由此而配备了新的FOR XML子句。</P>
<P>该子句的语法如下所示:<BR><BR>[ FOR { XML { RAW | AUTO | EXPLICIT }<BR><BR>[ , XMLDATA ]<BR><BR>[ , ELEMENTS ]<BR><BR>[ , BINARY BASE64 ] } ]</P>
<P>FOR XML子句的XML模式由三种参数值表示:RAW、AUTO或者EXPLICIT。模式决定了结果XML的形式和组成。下面我们就更深入些地通过以下示例了解以上各个XML选项。</P>
<P><STRONG>RAW示例</STRONG></P>
<P>我们执行以下的SQL语句:</P>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code bgColor=#e6e6e6><PRE><P>SET ROWCOUNT 3<BR><BR>SELECT Orders.OrderID, Orders.OrderDate, ProductID<BR><BR>FROM Orders, [Order Details]<BR><BR>WHERE Orders.OrderID = [Order Details].OrderID<BR><BR>ORDER BY Orders.OrderID<BR><BR>FOR XML RAW</P></PRE></TD></TR></TBODY></TABLE>
<P>执行后产生的结果如下: 
<CENTER><CCID_NOBR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code style="FONT-SIZE: 9pt" bgColor=#e6e6e6><PRE><CCID_CODE><ROW ProductID="11" OrderDate="1996-07-04T00:00:00" OrderID="10248" /><ROW ProductID="42" OrderDate="1996-07-04T00:00:00" OrderID="10248" /><ROW ProductID="72" OrderDate="1996-07-04T00:00:00" OrderID="10248" /></CCID_CODE></PRE></TD></TR></TBODY></TABLE></CCID_NOBR></CENTER>
<P><STRONG>AUTO示例</STRONG></P>
<P>我们执行以下的SQL语句:<BR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code bgColor=#e6e6e6><PRE>‘结果限制为3条记录。<BR><BR>SET ROWCOUNT 3<BR><BR>SELECT Orders.OrderID, Orders.OrderDate, ProductID<BR><BR>FROM Orders, [Order Details]<BR><BR>WHERE Orders.OrderID = [Order Details].OrderID<BR><BR>ORDER BY Orders.OrderID<BR><BR>FOR XML AUTO</PRE></TD></TR></TBODY></TABLE>产生的结果如下所示: </P>
<CENTER><CCID_NOBR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code style="FONT-SIZE: 9pt" bgColor=#e6e6e6><PRE><CCID_CODE><ORDERS OrderDate="1996-07-04T00:00:00" OrderID="10248">
<ORDER_X0020_DETAILS ProductID="11" />
<ORDER_X0020_DETAILS ProductID="42" />
<ORDER_X0020_DETAILS ProductID="72" />
</ORDERS></CCID_CODE></PRE></TD></TR></TBODY></TABLE></CCID_NOBR></CENTER>
<P><STRONG>EXPLICIT示例</STRONG></P>
<P>Explicit模式给予查询编程人员对产生XML的完全控制能力。然而这种控制力度却要价不菲:你得编写每一查询以便SQL语句能包含XML信息。</P>
<P>有关的语法很复杂,而且超出了本文的讨论范围。[ , XMLDATA ] [ , ELEMENTS ] [ , BINARY BASE64 ] 是相应的可选参数。</P>
<P><STRONG>可选元素</STRONG></P>
<P>示例可以让我们对各种设置的内部工作机理有更多的了解,下面我们就进一步研究下FOR XML语句的可选元素XMLDATA。</P>
<P>如果你设置该选项,那么XML-Data schema就会包含在结果集合里。以下是SQL语句:<BR><BR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code bgColor=#e6e6e6><PRE>SET ROWCOUNT 3<BR><BR>SELECT Orders.OrderID, Orders.OrderDate, ProductID<BR><BR>FROM Orders, [Order Details]<BR><BR>WHERE Orders.OrderID = [Order Details].OrderID<BR><BR>ORDER BY Orders.OrderID<BR><BR>FOR XML AUTO, XMLDATA</PRE></TD></TR></TBODY></TABLE>
<P>以上的SQL语句产生以下结果:<BR><BR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code bgColor=#e6e6e6><PRE><SCHEMA xmlns="urn:schemas-microsoft-com:xml-data" name="Schema2" xmlns:dt="<BR"><BR>"urn:schemas-microsoft-com:datatypes"&gt;<BR><BR><ELEMENTTYPE name="Orders" <BR model="closed" content="eltOnly"><BR>order="many"&gt;<ELEMENT maxOccurs="*" type="Order_x0020_Details" />…</PRE></TD></TR></TBODY></TABLE>
<P><STRONG>ELEMENTS</STRONG></P>
<P>ELEMENTS选项指示各数据列作为子元素而非属性返回。假如你采用AUTO模式就可以只采用该选项。</P>
<P>BINARY BASE64</P>
<P>使用该选项表示你希望采用base64编码格式表示二进制数据。</P>
<P>注:本文只是对FOR XML子句的简单说明,这里要提醒你的是这一部分不过是XML同SQL Server集成需要注意的一点,其他方面的问题还包括IIS的OPENXML 函数和模版文件等。</P>(责任编辑:<A href="/wuyou/mailto:%20mingming_ky@126.com">铭铭</A>) </td>      </tr>      <tr>        <td class="d_font4">&nbsp;</td>      </tr>    </table>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -