<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[看点、学点、写点、吃点、喝点 - MSSQL]]></title>
<link>http://www.pckno.com/</link>
<description><![CDATA[站在局外看人事]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[tenysw@163.com(tenysw)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>看点、学点、写点、吃点、喝点</title>
	<url>http://www.pckno.com/images/logos.gif</url>
	<link>http://www.pckno.com/</link>
	<description>看点、学点、写点、吃点、喝点</description>
</image>

			<item>
			<link>http://www.pckno.com/article/SQLDeChuFaQi.html</link>
			<title><![CDATA[SQL的触发器]]></title>
			<author>tenysw@163.com(admin)</author>
			<category><![CDATA[MSSQL]]></category>
			<pubDate>Wed,17 Mar 2010 09:55:55 +0800</pubDate>
			<guid>http://www.pckno.com/default.asp?id=50</guid>
		<description><![CDATA[<div class="codeText">
<div class="codeHead">SQL代码</div>
<ol start="1" class="dp-sql">
    <li class="alt"><span><span>[1].触发器的概念&nbsp;&nbsp;</span></span></li>
    <li><span>触发器是一种特殊类型的存储过程，当指定表中的数据发生变化时触发器自动生效。它与表紧密相连，可以看做是表定义的一部分。触发器不能通过名称被直接调用，更不允许设置参数。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>在SQL&nbsp;Server中一张表可以有多个触发器。用户可以跟据<span class="keyword">Insert</span><span>、</span><span class="keyword">Update</span><span>或</span><span class="keyword">Delete</span><span>语句对触发器进行设置，也可以对一张表上的特定操作设置多个触发器。触发器可以包含复杂的Transact-SQL语句。不论触发器所进行的操作有多复杂，触发器都只作为一个独立的单元被执行，被看作是一个事务。如果在执行触发器的过程中发生了错误，则整个事务将会自动回滚。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>[2].触发器的优点&nbsp;&nbsp;</span></li>
    <li class="alt"><span>1．触发器自动执行&nbsp;&nbsp;</span></li>
    <li><span>对表中的数据进行修改后，触发器立即被激活。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>2．可以调用存储过程&nbsp;&nbsp;</span></li>
    <li class="alt"><span>为了实现复杂的数据库更新操作，触发器可以调用一个或多个存储过程，甚至可以通过调用外部过程（不是数据库管理系统本身）完成相应的操作。&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>3．可以强化数据条件约束&nbsp;&nbsp;</span></li>
    <li><span>触发器能够实现比<span class="keyword">CHECK</span><span>约束更为复杂的数据完整性约束。在数据库中，为了实现数据完整性约束，可以使用</span><span class="keyword">CHECK</span><span>约束或触发器。</span><span class="keyword">CHECK</span><span>约束不允许引用其他表中的列来完成检查工作，而触发器可以引用其他表中的列。它更适合在大型数据库管理系统中用来约束数据的完整性。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>4．触发器可以楚止或回滚违反引用完整性的更改&nbsp;&nbsp;</span></li>
    <li class="alt"><span>触发器可以检测数据库内的操作，从而取消了数据库未经许可的更新操作，使数据库修改、更新操作更安全，数据库的运行也更稳定。&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>5．级联、并行运行&nbsp;&nbsp;</span></li>
    <li><span>触发器能够对数据库中的相关表实现级联更改。触发器是基于一个表创建的，但是可以针对多个表进行操作，实现数据库中相关表的级联更改。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>6．同表多触发器&nbsp;&nbsp;</span></li>
    <li class="alt"><span>一个表中可以同时存在3个不同操作的触发器（<span class="keyword">Insert</span><span>、</span><span class="keyword">Update</span><span>和</span><span class="keyword">Delete</span><span>）。&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>[3].触发器的种类&nbsp;&nbsp;</span></li>
    <li><span>SQL&nbsp;Server支持两种类型的触发器：<span class="keyword">AFTER</span><span>触发器和</span><span class="keyword">INSTEAD</span><span>&nbsp;</span><span class="keyword">OF</span><span>触发器。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">AFTER</span><span>触发器又称为后触发器，该类触发器是在引起触发器执行的修改语句成功完成后执行。此类触发器只有在执行某一操作（</span><span class="keyword">Insert</span><span>、</span><span class="keyword">Update</span><span>和</span><span class="keyword">Delete</span><span>）之后，触发器才被触发，如果修改语句错误，触发器将不会执行。</span><span class="keyword">AFTER</span><span>触发器只能定义在表上，不能创建在视图上，但可以为针对表的同一操作定义多个触发器。可使用&nbsp;sp_settriggerorder指定表上第一个和最后一个执行的</span><span class="keyword">AFTER</span><span>触发器，在表上只能为每个INSETR、</span><span class="keyword">Update</span><span>和</span><span class="keyword">Delete</span><span>操作规程指定第一个执行和最后一个执行的</span><span class="keyword">AFTER</span><span>触发器。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">INSTEAD</span><span>&nbsp;</span><span class="keyword">OF</span><span>触发器又称为替代触发器，当引起触发器执行的修改语句停止时，该类触发器代替触发操作执行。它可以在表上定义，也可以在视图上定义。对于每个触发操作（</span><span class="keyword">Insert</span><span>、</span><span class="keyword">Update</span><span>和</span><span class="keyword">Delete</span><span>），只能定义一个</span><span class="keyword">INSTEAD</span><span>&nbsp;</span><span class="keyword">OF</span><span>触发器。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">INSTEAD</span><span>&nbsp;</span><span class="keyword">OF</span><span>触发器与</span><span class="keyword">AFTER</span><span>触发器的最大不同之处在于</span><span class="keyword">INSTEAD</span><span>&nbsp;</span><span class="keyword">OF</span><span>触发器并不是在执行预定义的操作（如</span><span class="keyword">Insert</span><span>、</span><span class="keyword">Update</span><span>和</span><span class="keyword">Delete</span><span>）时被触发，而仅仅是执行触发器本身。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>[4].触发器的创建&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>1．使用企业管理器创建触发器&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>在企业管理器中为数据库&ldquo;MR_SQL&rdquo;中的&ldquo;MR_Stu_XX&rdquo;表创建一个名为&nbsp;&ldquo;TRI_StuXX_Insert&rdquo;的触发器，实现在&ldquo;MR_Stu_XX&rdquo;表中添加数据时，在&ldquo;TRI_pp&rdquo;表中自动添加数据。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>操作步骤如下：&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（1）在操作系统的任务栏中单击&ldquo;开始&rdquo;菜单，选择&ldquo;程序&rdquo;&rarr;&ldquo;Microsoft&nbsp;SQL&nbsp;Server&rdquo;&rarr;&ldquo;企业管理器&rdquo;&nbsp;命令，打开控制台目录。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（2）在控制台目录中依次展开Microsoft&nbsp;SQL&nbsp;Server、SQL&nbsp;Server组、服务器、数据库的节点。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（3）选择指定数据库中的指定表，单击鼠标右键，在快捷菜单中选择&ldquo;所有任务&rdquo;&rarr;&ldquo;管理触发器&rdquo;命令。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（4）执行&ldquo;管理触发器&rdquo;命令后，打开&ldquo;触发器属性&rdquo;对话框，如图1所示。在&ldquo;名称&rdquo;文本框中输入触发器的名称，例如用触发器名&ldquo;TRI_StuXX_Insert&rdquo;替换[<span class="keyword">TRIGGER</span><span>&nbsp;</span><span class="keyword">NAME</span><span>]，如图2所示。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（5）删除<span class="keyword">FOR</span><span>关键字后面的</span><span class="keyword">Update</span><span>和</span><span class="keyword">Delete</span><span>，使触发器具有添加（</span><span class="keyword">Insert</span><span>）功能，如果让触发器具有更新或删除的功能，在</span><span class="keyword">FOR</span><span>关键字后面保留</span><span class="keyword">Update</span><span>或&nbsp;</span><span class="keyword">Delete</span><span>，</span><span class="keyword">Insert</span><span>&nbsp;、</span><span class="keyword">Update</span><span>和</span><span class="keyword">Delete</span><span>可以同时使用。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（6）在&ldquo;文本&rdquo;文本框中输入触发器文本，SQL语句如下。&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">Insert</span><span>&nbsp;</span><span class="keyword">INTO</span><span>&nbsp;TRI_pp&nbsp;(MR_id,MR_name,MR_char,MR_sum,MR_eng)&nbsp;</span><span class="keyword">VALUES</span><span>&nbsp;(</span><span class="string">'001'</span><span>,</span><span class="string">'张三'</span><span>,0.0,0.0,0.0)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（7）如果没有任何错误，单击&ldquo;应用&rdquo;按钮，将触发器保存到数据库中。&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>2．使用Transact-SQL创建触发器&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">Create</span><span>&nbsp;</span><span class="keyword">TRIGGER</span><span>语句用于创建触发器，触发器是一种特殊的存储过程，在用户试图对指定的表执行指定的数据修改语句时自动执行。&nbsp;SQL&nbsp;Server&nbsp;允许为任何给定的</span><span class="keyword">Insert</span><span>、</span><span class="keyword">Update</span><span>或</span><span class="keyword">Delete</span><span>语句创建多个触发器。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>语法：&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">Create</span><span>&nbsp;</span><span class="keyword">TRIGGER</span><span>&nbsp;trigger_name&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">ON</span><span>&nbsp;{&nbsp;</span><span class="keyword">table</span><span>&nbsp;|&nbsp;</span><span class="keyword">view</span><span>&nbsp;}&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>[&nbsp;<span class="keyword">WITH</span><span>&nbsp;ENCRYPTION&nbsp;]&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>{&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;{&nbsp;{&nbsp;<span class="keyword">FOR</span><span>&nbsp;|&nbsp;</span><span class="keyword">AFTER</span><span>&nbsp;|&nbsp;</span><span class="keyword">INSTEAD</span><span>&nbsp;</span><span class="keyword">OF</span><span>&nbsp;}&nbsp;{&nbsp;[&nbsp;</span><span class="keyword">Insert</span><span>&nbsp;]&nbsp;[&nbsp;,&nbsp;]&nbsp;[&nbsp;</span><span class="keyword">Update</span><span>&nbsp;]&nbsp;}&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;<span class="keyword">WITH</span><span>&nbsp;APPEND&nbsp;]&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;<span class="op">NOT</span><span>&nbsp;</span><span class="keyword">FOR</span><span>&nbsp;REPLICATION&nbsp;]&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">AS</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;{&nbsp;IF&nbsp;<span class="keyword">Update</span><span>&nbsp;(&nbsp;</span><span class="keyword">column</span><span>&nbsp;)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;{&nbsp;<span class="op">AND</span><span>&nbsp;|&nbsp;</span><span class="op">or</span><span>&nbsp;}&nbsp;</span><span class="keyword">Update</span><span>&nbsp;(&nbsp;</span><span class="keyword">column</span><span>&nbsp;)&nbsp;]&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;...n&nbsp;]&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;IF&nbsp;(&nbsp;COLUMNS_UpdateD&nbsp;(&nbsp;)&nbsp;{&nbsp;bitwise_operator&nbsp;}&nbsp;updated_bitmask&nbsp;)&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;comparison_operator&nbsp;}&nbsp;column_bitmask&nbsp;[&nbsp;...n&nbsp;]&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;]&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql_statement&nbsp;[&nbsp;...n&nbsp;]&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>参数说明：&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>l&nbsp;&nbsp;&nbsp;&nbsp;trigger_name：触发器的名称。触发器名称必须符合标识符规则，并且在数据库中必须惟一。可以选择是否指定触发器所有者名称。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>l&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">table</span><span>&nbsp;|&nbsp;</span><span class="keyword">view</span><span>：执行触发器的表或视图，有时称为触发器表或触发器视图。可以选择是否指定表或视图的所有者名称。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>l&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">AFTER</span><span>：指定触发器只有在触发SQL语句中指定的所有操作都已成功执行后才被激活。所有的引用级联操作和约束检查也必须成功完成后，才能执行此触发器。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>l&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">INSTEAD</span><span>&nbsp;</span><span class="keyword">OF</span><span>：指定执行触发器而不是执行触发&nbsp;SQL&nbsp;语句，从而替代触发语句的操作。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>l&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">WITH</span><span>&nbsp;APPEND：指定应该添加现有类型的其他触发器。只有当兼容级别是65或更低时，才需要使用该可选子句。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>l&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">NOT</span><span>&nbsp;</span><span class="keyword">FOR</span><span>&nbsp;REPLICATION：表示当复制进程更改触发器所涉及的表时，不应执行该触发器。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>l&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">AS</span><span>：触发器要执行的操作。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>l&nbsp;&nbsp;&nbsp;&nbsp;sql_statement：触发器的条件和操作。触发器条件指定其他准则，以确定<span class="keyword">Delete</span><span>、</span><span class="keyword">Insert</span><span>或</span><span class="keyword">Update</span><span>语句是否导致执行触发器操作。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>l&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">column</span><span>：要测试&nbsp;</span><span class="keyword">Insert</span><span>或</span><span class="keyword">Update</span><span>操作的列名。该列可以是SQL&nbsp;Server支持的任何数据类型。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>l&nbsp;&nbsp;&nbsp;&nbsp;bitwise_operator：用于比较运算的位运算符。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>l&nbsp;&nbsp;&nbsp;&nbsp;updated_bitmask：整型位掩码，表示实际更新或插入的列。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>l&nbsp;&nbsp;&nbsp;&nbsp;comparison_operator：比较运算符。使用等号（=）检查updated_bitmask中指定的所有列是否都实际进行了更新。使用大于号（&gt;）检查&nbsp;updated_bitmask中指定的任一列或某些列是否已更新。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>l&nbsp;&nbsp;&nbsp;&nbsp;column_bitmask：要检查的列的整型位掩码，用来检查是否已更新或插入了这些列。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>本示例是建立两个相关表&ldquo;MR_Stu_XX&rdquo;和&ldquo;MR_Stu_CJ&rdquo;，它们都有&ldquo;学生编号&rdquo;和&nbsp;&ldquo;学生姓名&rdquo;字段，并且类型相同。在&ldquo;MR_Stu_XX&rdquo;表中创建三个触发器，在对&ldquo;MR_Stu_XX&rdquo;表进行添加修改的同时，对&nbsp;&ldquo;MR_Stu_CJ&rdquo;表也进行相应的操作。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>操作步骤如下：&nbsp;&nbsp;</span></li>
    <li><span>（1）在&ldquo;MR_SQL&rdquo;数据库中创建&ldquo;MR_Stu_CJ&rdquo;表和&nbsp;&ldquo;MR_Stu_XX&rdquo;表。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（2）为&ldquo;MR_Stu_XX&rdquo;表创建触发器，SQL语句如下：&nbsp;&nbsp;</span></li>
    <li><span>用<span class="keyword">Insert</span><span>语句创建触发器，当在&nbsp;&ldquo;MR_Stu_XX&rdquo;表中添加数据时，&ldquo;MR_Stu_CJ&rdquo;表也添加相应的数据。SQL语句如下：&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>USE&nbsp;MR_SQL&nbsp;&nbsp;</span></li>
    <li class="alt"><span>GO&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">Create</span><span>&nbsp;</span><span class="keyword">TRIGGER</span><span>&nbsp;TRI_StuXX_Insert&nbsp;</span><span class="keyword">ON</span><span>&nbsp;dbo.MR_Stu_XX&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">FOR</span><span>&nbsp;</span><span class="keyword">Insert</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">AS</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">DECLARE</span><span>&nbsp;@id&nbsp;</span><span class="keyword">Char</span><span>(4),@</span><span class="keyword">name</span><span>&nbsp;</span><span class="keyword">Char</span><span>(10)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;@id=学生编号,@</span><span class="keyword">name</span><span>=学生姓名&nbsp;&nbsp;</span><span class="keyword">from</span><span>&nbsp;inserted&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Insert</span><span>&nbsp;</span><span class="keyword">INTO</span><span>&nbsp;MR_Stu_CJ&nbsp;(学生编号,学生姓名,语文,数学,英语)&nbsp;</span><span class="keyword">VALUES</span><span>&nbsp;(@id,@</span><span class="keyword">name</span><span>,0.0,0.0,0.0)&nbsp;&nbsp;</span></span></li>
    <li><span>GO&nbsp;&nbsp;</span></li>
    <li class="alt"><span>注意：在表中添加数据时，将添加的数据存放在系统临时表&ldquo;inserted&rdquo;中。&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>用<span class="keyword">Delete</span><span>语句创建触发器，当在&nbsp;&ldquo;MR_Stu_XX&rdquo;表中删除数据时，&ldquo;MR_Stu_CJ&rdquo;表也删除相应的数据。SQL语句如下：&nbsp;&nbsp;</span></span></li>
    <li><span>USE&nbsp;MR_SQL&nbsp;&nbsp;</span></li>
    <li class="alt"><span>GO&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">Create</span><span>&nbsp;</span><span class="keyword">TRIGGER</span><span>&nbsp;TRI_StuXX_Delete&nbsp;</span><span class="keyword">ON</span><span>&nbsp;[dbo].[MR_Stu_XX]&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">FOR</span><span>&nbsp;</span><span class="keyword">Delete</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">AS</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">DECLARE</span><span>&nbsp;@id&nbsp;</span><span class="keyword">char</span><span>(4),@</span><span class="keyword">name</span><span>&nbsp;</span><span class="keyword">char</span><span>(10)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">select</span><span>&nbsp;@id=学生编号,@</span><span class="keyword">name</span><span>=学生姓名&nbsp;</span><span class="keyword">from</span><span>&nbsp;deleted&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Delete</span><span>&nbsp;MR_Stu_CJ&nbsp;</span><span class="keyword">where</span><span>&nbsp;学生编号=@id&nbsp;</span><span class="op">and</span><span>&nbsp;学生姓名=@</span><span class="keyword">name</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>GO&nbsp;&nbsp;</span></li>
    <li class="alt"><span>注意：在表中删除数据时，将删除的数据存放在系统临时表deleted中。&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>用<span class="keyword">Update</span><span>语句创建触发器，当在&ldquo;MR_Stu_XX&rdquo;表中更新数据时，&ldquo;MR_Stu_CJ&rdquo;表也更新相应的数据。SQL语句如下：&nbsp;&nbsp;</span></span></li>
    <li><span>USE&nbsp;MR_SQL&nbsp;&nbsp;</span></li>
    <li class="alt"><span>GO&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">Create</span><span>&nbsp;</span><span class="keyword">TRIGGER</span><span>&nbsp;TRI_StuXX_Uudate&nbsp;</span><span class="keyword">ON</span><span>&nbsp;[dbo].[MR_Stu_XX]&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">FOR</span><span>&nbsp;</span><span class="keyword">Update</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">AS</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">DECLARE</span><span>&nbsp;@id&nbsp;</span><span class="keyword">char</span><span>(4),@</span><span class="keyword">name</span><span>&nbsp;</span><span class="keyword">char</span><span>(10)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">select</span><span>&nbsp;@id=学生编号&nbsp;</span><span class="keyword">from</span><span>&nbsp;deleted&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">select</span><span>&nbsp;@</span><span class="keyword">name</span><span>=学生姓名&nbsp;</span><span class="keyword">from</span><span>&nbsp;Inserted&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Update</span><span>&nbsp;MR_Stu_CJ&nbsp;</span><span class="keyword">SET</span><span>&nbsp;学生姓名=@</span><span class="keyword">name</span><span>&nbsp;</span><span class="keyword">Where</span><span>&nbsp;学生编号&nbsp;=&nbsp;@id&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>GO&nbsp;&nbsp;</span></li>
    <li><span>注意：在表中更新数据时，将更新前的数据存放在系统临时表&ldquo;deleted&rdquo;中，将更新后的数据存放在系统临时表&ldquo;inserted&rdquo;中。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>3．创建触发器的注意事项&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（1）触发器是一个数据库对象，它的命名必须符合SQL&nbsp;Server&nbsp;2000的标识符命名规则。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（2）<span class="keyword">Create</span><span>&nbsp;</span><span class="keyword">TRIGGER</span><span>语句必须是批处理中的第一个语句。也就是说，如果该语句前面还有其他语句，应该使用批处理结束符GO隔开。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（3）不能在临时表或系统表上创建触发器，但是在触发器中可以引用临时表，不能引用系统表。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（4）创建触发器的权限默认分配给表的所有者，且不能将该权限转给其他用户。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（5）触发器可以引用当前数据库以外的对象，但只能在当前数据库中创建触发器。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（6）在含有用&nbsp;<span class="keyword">Delete</span><span>或</span><span class="keyword">Update</span><span>操作定义的外键的表中，不能定义</span><span class="keyword">INSTEAD</span><span>&nbsp;</span><span class="keyword">OF</span><span>和</span><span class="keyword">INSTEAD</span><span>&nbsp;</span><span class="keyword">OF</span><span>&nbsp;</span><span class="keyword">Update</span><span>触发器。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（7）WRITETEXT&nbsp;语句不会引发<span class="keyword">Insert</span><span>或</span><span class="keyword">Update</span><span>触发器。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（8）<span class="keyword">TRUNCATE</span><span>&nbsp;</span><span class="keyword">TABLE</span><span>语句不能引发</span><span class="keyword">Delete</span><span>触发器，因为该语句没有记录。&nbsp;&nbsp;</span></span></li>
</ol>
</div>]]></description>
		</item>
		
			<item>
			<link>http://www.pckno.com/article/SQLSEREVERCeShiTiShang.html</link>
			<title><![CDATA[SQLSEREVER测试题]]></title>
			<author>tenysw@163.com(admin)</author>
			<category><![CDATA[MSSQL]]></category>
			<pubDate>Tue,16 Mar 2010 19:58:38 +0800</pubDate>
			<guid>http://www.pckno.com/default.asp?id=49</guid>
		<description><![CDATA[<p>SQLSEREVER测试题(上) <br />
<br />
<br />
一 SQLSERVER管理部分 <br />
<br />
<br />
1  请讲出身份验证模式与登录帐号的关系及如何用各种帐号进行登录，并画出示意图 <br />
2  请讲出登录帐号、数据库用户及数据库角色之间的关系，并画出示意图 <br />
3  请讲出数据库用户、数据库角色与数据库对象之间的关系，并画出直接对用户授权与间接对用户授权（系统权限与对象权限）的方法 <br />
4  请讲出服务器角色、数据库角色、标准角色与应用程序角色的区别与验证其权限的方法 <br />
5 请讲出数据库还原模型对数据库的影响 <br />
6  有一个执行关键任务的数据库，请设计一个数据库备份策略 <br />
7 请使用文件与文件组恢复的方式恢复数据库  <br />
8  请使用事务日志恢复数据库到一个时间点 <br />
9 请设计作业进行周期性的备份数据库 <br />
10  如何监控数据库的阻塞，并实现数据库的死锁测试 <br />
11 如何监控数据库的活动，并能使用索引优化向导生成索引 <br />
12  理解数据库框图的作用并可以设计表与表之间的关系 </p>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">SQL代码</div>
<ol start="1" class="dp-sql">
    <li class="alt"><span><span>SQLSEREVER测试题(中)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>二&nbsp;SQLSERVER的实现部分&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>1&nbsp;有订单表，需要实现它的编号，格式如下：200211030001&hellip;&hellip;200222039999等&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>2&nbsp;有表T1,T2，现有一事务，在向表T1添加数据时，同时也必须向T2也添加数据，如何实现该事务&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>3&nbsp;如何向T1中的编号字段（code&nbsp;<span class="keyword">varchar</span><span>(20)）添加一万条记录，不充许重复，规则如下：编号的数据必须从小写的a-z之间取值&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>4&nbsp;如何删除表中的重复数据,请使用游标与分组的办法&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>5&nbsp;如何求表中相邻的两条记录的某字段的值之差&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>6&nbsp;如何统计数据库中所有用户表的数据，显示格式如下：&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>表名&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;记录数&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;sales&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;23&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>7&nbsp;如何删除数据库中的所有用户表（表与表之间有外键关系）&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>8&nbsp;表A　editor_id　　　　　　　lb2_id&nbsp;&nbsp;</span></li>
    <li><span>　　　123　　　　　　　　　　&nbsp;000&nbsp;&nbsp;</span></li>
    <li class="alt"><span>　　　123　　　　　　　　　　&nbsp;003&nbsp;&nbsp;</span></li>
    <li><span>　　　123　　　　　　　　　　&nbsp;003&nbsp;&nbsp;</span></li>
    <li class="alt"><span>　　　456　　　　　　　　　　&nbsp;007&nbsp;&nbsp;</span></li>
    <li><span>　　　456　　　　　　　　　　&nbsp;006&nbsp;&nbsp;</span></li>
    <li class="alt"><span>表B　&nbsp;lb2_id　　　　　　　　&nbsp;lb2_name&nbsp;&nbsp;</span></li>
    <li><span>　　　&nbsp;000　　　　　　　　　　&nbsp;a&nbsp;&nbsp;</span></li>
    <li class="alt"><span>　　　&nbsp;003　　　　　　　　　　&nbsp;b&nbsp;&nbsp;</span></li>
    <li><span>　　　&nbsp;006　　　　　　　　　　&nbsp;c&nbsp;&nbsp;</span></li>
    <li class="alt"><span>　　　&nbsp;007　　　　　　　　　　&nbsp;d&nbsp;&nbsp;</span></li>
    <li><span>显示　a　　&nbsp;共1条&nbsp;（表A内lb2_id为000的条数）&nbsp;&nbsp;</span></li>
    <li class="alt"><span>　　　b　　&nbsp;共2条（表A内lb2_id为003的条数）&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>9&nbsp;人员情况表（employee）:里面有一字段文化程度（wh）：包括四种情况（本科以上，大专，高中，初中以下）,现在我要根据年龄字段查询统计出：表中文化程度为本科以上，大专，高中，初中以下，各有多少人，占总人数多少。&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">Select</span><span>&nbsp;wh&nbsp;</span><span class="keyword">AS</span><span>&nbsp;学历,age&nbsp;</span><span class="keyword">as</span><span>&nbsp;年龄,&nbsp;</span><span class="func">Count</span><span>(*)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;人数,&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">Count</span><span>(*)&nbsp;*&nbsp;100&nbsp;/(</span><span class="keyword">Select</span><span>&nbsp;</span><span class="func">Count</span><span>(*)&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;employee)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;百分比&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">FROM</span><span>&nbsp;employee&nbsp;</span><span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;wh,age&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>学历&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;年龄&nbsp;&nbsp;&nbsp;&nbsp;人数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;百分比&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>本科以上&nbsp;&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>大专&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>高中&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>初中以下&nbsp;&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;40&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>本科以上&nbsp;&nbsp;21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>10&nbsp;现在有三个表student:（FID&nbsp;&nbsp;学生号，FName&nbsp;&nbsp;姓名），&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>subject:（FSubID&nbsp;&nbsp;课程号，FSubName&nbsp;课程名）,&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Score(FScoreId&nbsp;&nbsp;成绩记录号,FSubID&nbsp;&nbsp;&nbsp;&nbsp;课程号,FStdID&nbsp;&nbsp;&nbsp;&nbsp;学生号,FScore&nbsp;&nbsp;&nbsp;&nbsp;成绩)&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>怎么能实现这个表：&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>姓名&nbsp;&nbsp;英语&nbsp;&nbsp;数学&nbsp;&nbsp;语文&nbsp;&nbsp;历史&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>张萨&nbsp;&nbsp;78&nbsp;&nbsp;&nbsp;&nbsp;67&nbsp;&nbsp;&nbsp;&nbsp;89&nbsp;&nbsp;&nbsp;&nbsp;76&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>王强&nbsp;&nbsp;89&nbsp;&nbsp;&nbsp;&nbsp;67&nbsp;&nbsp;&nbsp;&nbsp;84&nbsp;&nbsp;&nbsp;&nbsp;96&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">Select</span><span>&nbsp;a.FName&nbsp;</span><span class="keyword">AS</span><span>&nbsp;姓名,&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;英语&nbsp;=&nbsp;<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;b.FSubName&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;</span><span class="string">'英语'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;c.FScore&nbsp;</span><span class="keyword">END</span><span>),&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数学&nbsp;=&nbsp;<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;b.FSubName&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;</span><span class="string">'数学'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;c.FScore&nbsp;</span><span class="keyword">END</span><span>),&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;语文&nbsp;=&nbsp;<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;b.FSubName&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;</span><span class="string">'语文'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;c.FScore&nbsp;</span><span class="keyword">END</span><span>),&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;历史&nbsp;=&nbsp;<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;b.FSubName&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;</span><span class="string">'历史'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;c.FScore&nbsp;</span><span class="keyword">END</span><span>)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">FROM</span><span>&nbsp;Student&nbsp;a,&nbsp;Subject&nbsp;b,&nbsp;Score&nbsp;c&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">Where</span><span>&nbsp;a.FID&nbsp;=&nbsp;c.FStdId&nbsp;</span><span class="op">AND</span><span>&nbsp;b.FSubID&nbsp;=&nbsp;c.FsubID&nbsp;</span><span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;a.FName&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>11&nbsp;原始表的数据如下：&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>PID&nbsp;PTime&nbsp;&nbsp;&nbsp;&nbsp;PNo&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>111111&nbsp;&nbsp;&nbsp;&nbsp;2003-01-28&nbsp;04:30:09&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>111111&nbsp;&nbsp;&nbsp;&nbsp;2003-01-28&nbsp;18:30:00&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>222222&nbsp;&nbsp;&nbsp;&nbsp;2003-01-28&nbsp;04:31:09&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>333333&nbsp;&nbsp;&nbsp;&nbsp;2003-01-28&nbsp;04:32:09&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>111111&nbsp;&nbsp;&nbsp;&nbsp;2003-02-09&nbsp;03:35:25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>222222&nbsp;&nbsp;&nbsp;&nbsp;2003-02-09&nbsp;03:36:25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>333333&nbsp;&nbsp;&nbsp;&nbsp;2003-02-09&nbsp;03:37:25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>查询生成表&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>PDate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;111111&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;222222&nbsp;&nbsp;&nbsp;&nbsp;333333&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;......&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>2003-01-28&nbsp;&nbsp;&nbsp;&nbsp;04:30:09&nbsp;&nbsp;&nbsp;&nbsp;04:31:09&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;04:32:09&nbsp;&nbsp;&nbsp;&nbsp;......&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>2003-01-28&nbsp;&nbsp;&nbsp;&nbsp;18:30:00&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>2003-02-09&nbsp;&nbsp;&nbsp;&nbsp;03:35:25&nbsp;&nbsp;&nbsp;&nbsp;03:36:25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;03:37:25&nbsp;&nbsp;&nbsp;&nbsp;......&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>12&nbsp;&nbsp;表一(AAA)&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>商品名称mc&nbsp;&nbsp;商品总量sl&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;120&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>表二(BBB)&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>商品名称mc&nbsp;&nbsp;出库数量sl&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>用一条SQL语句算出商品A,B目前还剩多少？&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>一&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">declare</span><span>&nbsp;@AAA&nbsp;</span><span class="keyword">table</span><span>&nbsp;(商品名称&nbsp;&nbsp;</span><span class="keyword">varchar</span><span>(10),&nbsp;商品总量&nbsp;&nbsp;</span><span class="keyword">int</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">insert</span><span>&nbsp;</span><span class="keyword">into</span><span>&nbsp;@AAA&nbsp;</span><span class="keyword">values</span><span>(</span><span class="string">'A'</span><span>,100)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">insert</span><span>&nbsp;</span><span class="keyword">into</span><span>&nbsp;@AAA&nbsp;</span><span class="keyword">values</span><span>(</span><span class="string">'B'</span><span>,120)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">declare</span><span>&nbsp;@BBB&nbsp;</span><span class="keyword">table</span><span>&nbsp;(商品名称&nbsp;</span><span class="keyword">varchar</span><span>(10),&nbsp;出库数量&nbsp;</span><span class="keyword">int</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">insert</span><span>&nbsp;</span><span class="keyword">into</span><span>&nbsp;@BBB&nbsp;</span><span class="keyword">values</span><span>(</span><span class="string">'A'</span><span>,&nbsp;10)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">insert</span><span>&nbsp;</span><span class="keyword">into</span><span>&nbsp;@BBB&nbsp;</span><span class="keyword">values</span><span>(</span><span class="string">'A'</span><span>,&nbsp;20)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">insert</span><span>&nbsp;</span><span class="keyword">into</span><span>&nbsp;@BBB&nbsp;</span><span class="keyword">values</span><span>(</span><span class="string">'B'</span><span>,&nbsp;10)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">insert</span><span>&nbsp;</span><span class="keyword">into</span><span>&nbsp;@BBB&nbsp;</span><span class="keyword">values</span><span>(</span><span class="string">'B'</span><span>,&nbsp;20)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">insert</span><span>&nbsp;</span><span class="keyword">into</span><span>&nbsp;@BBB&nbsp;</span><span class="keyword">values</span><span>(</span><span class="string">'B'</span><span>,&nbsp;30)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">select</span><span>&nbsp;TA.商品名称,A-B&nbsp;</span><span class="keyword">AS</span><span>&nbsp;剩余数量&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>(<span class="keyword">select</span><span>&nbsp;商品名称,</span><span class="func">sum</span><span>(商品总量)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;A&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">from</span><span>&nbsp;@AAA&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;商品名称)TA,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>(<span class="keyword">select</span><span>&nbsp;商品名称,</span><span class="func">sum</span><span>(出库数量)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;B&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">from</span><span>&nbsp;@BBB&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;商品名称)TB&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">where</span><span>&nbsp;TA.商品名称=TB.商品名称&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>二&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">select</span><span>&nbsp;商品名称,</span><span class="func">sum</span><span>(商品总量)&nbsp;剩余数量&nbsp;</span><span class="keyword">from</span><span>&nbsp;(</span><span class="keyword">select</span><span>&nbsp;*&nbsp;</span><span class="keyword">from</span><span>&nbsp;@aaa&nbsp;</span><span class="keyword">union</span><span>&nbsp;</span><span class="op">all</span><span>&nbsp;</span><span class="keyword">select</span><span>&nbsp;商品名称,-出库数量&nbsp;</span><span class="keyword">from</span><span>&nbsp;@bbb)&nbsp;a&nbsp;</span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;商品名称&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>13&nbsp;优化这句SQL语句&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">Update</span><span>&nbsp;tblExlTempYear&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">SET</span><span>&nbsp;tblExlTempYear.GDQC&nbsp;=&nbsp;tblExlTempMonth.GDQC&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">FROM</span><span>&nbsp;tblExlTempYear,tblExlTempMonth&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">where</span><span>&nbsp;tblExlTempMonth.GDXM=tblExlTempYear.GDXM&nbsp;</span><span class="op">and</span><span>&nbsp;tblExlTempMonth.TXDZ=tblExlTempYear.TXDZ&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（1）、加索引：&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>tblExlTempYear（GDXM，TXDZ）&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>tblExlTempMonth&nbsp;（GDXM，TXDZ）&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（2）、删除无用数据&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（3）、转移过时数据&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（4）、加服务器内存，升级服务器&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（5）、升级网络系统&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">Update</span><span>&nbsp;tblExlTempYear&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">SET</span><span>&nbsp;tblExlTempYear.GDQC&nbsp;=&nbsp;tblExlTempMonth.GDQC&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">FROM</span><span>&nbsp;tblExlTempYear&nbsp;(</span><span class="keyword">index</span><span>&nbsp;indexY),tblExlTempMonth&nbsp;(</span><span class="keyword">index</span><span>&nbsp;indexM)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">where</span><span>&nbsp;tblExlTempMonth.GDXM=tblExlTempYear.GDXM&nbsp;</span><span class="op">and</span><span>&nbsp;tblExlTempMonth.TXDZ=tblExlTempYear.TXDZ&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>14&nbsp;品种&nbsp;&nbsp;&nbsp;&nbsp;日期&nbsp;&nbsp;&nbsp;&nbsp;数量&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0001&nbsp;&nbsp;2002-1-10&nbsp;&nbsp;10&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0001&nbsp;&nbsp;2002-1-10&nbsp;&nbsp;11&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0001&nbsp;&nbsp;2002-1-10&nbsp;&nbsp;50&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0001&nbsp;&nbsp;2002-1-12&nbsp;&nbsp;9&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0001&nbsp;&nbsp;2002-1-12&nbsp;&nbsp;8&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0001&nbsp;&nbsp;2002-1-12&nbsp;&nbsp;7&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0002&nbsp;&nbsp;2002-10-10&nbsp;&nbsp;5&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0002&nbsp;&nbsp;2002-10-10&nbsp;&nbsp;7&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0002&nbsp;&nbsp;2002-10-12&nbsp;&nbsp;0.5&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0003&nbsp;&nbsp;2002-10-10&nbsp;&nbsp;5&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0003&nbsp;&nbsp;2002-10-12&nbsp;&nbsp;7&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0003&nbsp;&nbsp;2002-10-12&nbsp;&nbsp;9&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>结果要先按照品种汇总,再按照日期汇总,结果如下:&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0001&nbsp;&nbsp;2002-1-10&nbsp;&nbsp;&nbsp;&nbsp;71&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0001&nbsp;&nbsp;&nbsp;&nbsp;2002-1-12&nbsp;&nbsp;24&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0002&nbsp;&nbsp;&nbsp;&nbsp;2002-10-10&nbsp;&nbsp;12&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0002&nbsp;&nbsp;&nbsp;&nbsp;2002-10-12&nbsp;&nbsp;0.5&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0003&nbsp;&nbsp;&nbsp;&nbsp;2002-10-10&nbsp;&nbsp;5&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>P0003&nbsp;&nbsp;&nbsp;&nbsp;2002-10-12&nbsp;&nbsp;16&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>SQL&nbsp;SERVER能做出这样的汇总吗&hellip;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>15&nbsp;在分組查循中<span class="keyword">with</span><span>{</span><span class="keyword">cube</span><span>|</span><span class="keyword">rollup</span><span>}的區別是什么?&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>如:&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;use&nbsp;pangu&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;firm_id,p_id,</span><span class="func">sum</span><span>(o_price_quantity)</span><span class="keyword">as</span><span>&nbsp;sum_values&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;orders&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;firm_id,p_id&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">with</span><span>&nbsp;</span><span class="keyword">cube</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;與&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;use&nbsp;pangu&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;firm_id,p_id,</span><span class="func">sum</span><span>(o_price_quantity)</span><span class="keyword">as</span><span>&nbsp;sum_values&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;orders&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;firm_id,p_id&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">with</span><span>&nbsp;</span><span class="keyword">rollup</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;的區別是什么?&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">CUBE</span><span>&nbsp;和&nbsp;</span><span class="keyword">ROLLUP</span><span>&nbsp;之间的区别在于：&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">CUBE</span><span>&nbsp;生成的结果集显示了所选列中值的所有组合的聚合。&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">ROLLUP</span><span>&nbsp;生成的结果集显示了所选列中值的某一层次结构的聚合。&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>例如，简单表&nbsp;Inventory&nbsp;中包含：&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Item&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Color&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quantity&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="comment">--------------------&nbsp;--------------------&nbsp;--------------------------</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">Table</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Blue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;124&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;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">Table</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Red&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;223&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;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Chair&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Blue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;101&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;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Chair&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Red&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;210&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;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>下列查询将生成小计报表：&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;(</span><span class="keyword">GROUPING</span><span>(Item)&nbsp;=&nbsp;1)&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;</span><span class="string">'ALL'</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ELSE</span><span>&nbsp;</span><span class="func">ISNULL</span><span>(Item,&nbsp;</span><span class="string">'UNKNOWN'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">END</span><span>&nbsp;</span><span class="keyword">AS</span><span>&nbsp;Item,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;(</span><span class="keyword">GROUPING</span><span>(Color)&nbsp;=&nbsp;1)&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;</span><span class="string">'ALL'</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ELSE</span><span>&nbsp;</span><span class="func">ISNULL</span><span>(Color,&nbsp;</span><span class="string">'UNKNOWN'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">END</span><span>&nbsp;</span><span class="keyword">AS</span><span>&nbsp;Color,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">SUM</span><span>(Quantity)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;QtySum&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">FROM</span><span>&nbsp;Inventory&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;Item,&nbsp;Color&nbsp;</span><span class="keyword">WITH</span><span>&nbsp;</span><span class="keyword">ROLLUP</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>Item&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Color&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QtySum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="comment">--------------------&nbsp;--------------------&nbsp;--------------------------</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>Chair&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Blue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;101.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>Chair&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Red&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;210.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>Chair&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">ALL</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;311.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">Table</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Blue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;124.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">Table</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Red&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;223.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">Table</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="op">ALL</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;347.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="op">ALL</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="op">ALL</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;658.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>(7&nbsp;row(s)&nbsp;affected)&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>如果查询中的&nbsp;<span class="keyword">ROLLUP</span><span>&nbsp;关键字更改为&nbsp;</span><span class="keyword">CUBE</span><span>，那么&nbsp;</span><span class="keyword">CUBE</span><span>&nbsp;结果集与上述结果相同，只是在结果集的末尾还会返回下列两行：&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="op">ALL</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Blue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;225.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="op">ALL</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Red&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;433.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">CUBE</span><span>&nbsp;操作为&nbsp;Item&nbsp;和&nbsp;Color&nbsp;中值的可能组合生成行。例如，</span><span class="keyword">CUBE</span><span>&nbsp;不仅报告与&nbsp;Item&nbsp;值&nbsp;Chair&nbsp;相组合的&nbsp;Color&nbsp;值的所有可能组合（Red、Blue&nbsp;和&nbsp;Red&nbsp;+&nbsp;Blue），而且报告与&nbsp;Color&nbsp;值&nbsp;Red&nbsp;相组合的&nbsp;Item&nbsp;值的所有可能组合（Chair、</span><span class="keyword">Table</span><span>&nbsp;和&nbsp;Chair&nbsp;+&nbsp;</span><span class="keyword">Table</span><span>）。对于&nbsp;</span><span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;子句中右边的列中的每个值，</span><span class="keyword">ROLLUP</span><span>&nbsp;操作并不报告左边一列（或左边各列）中值的所有可能组合。例如，</span><span class="keyword">ROLLUP</span><span>&nbsp;并不对每个&nbsp;Color&nbsp;值报告&nbsp;Item&nbsp;值的所有可能组合。</span><span class="keyword">ROLLUP</span><span>&nbsp;操作的结果集具有类似于&nbsp;COMPUTE&nbsp;</span><span class="keyword">BY</span><span>&nbsp;所返回结果集的功能；然而，&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">ROLLUP</span><span>&nbsp;具有下列优点：&nbsp;</span><span class="keyword">ROLLUP</span><span>&nbsp;返回单个结果集；COMPUTE&nbsp;</span><span class="keyword">BY</span><span>&nbsp;返回多个结果集，而多个结果集会增加应用程序代码的复杂性。</span><span class="keyword">ROLLUP</span><span>&nbsp;可以在服务器游标中使用；COMPUTE&nbsp;</span><span class="keyword">BY</span><span>&nbsp;不可以。有时，查询优化器为&nbsp;</span><span class="keyword">ROLLUP</span><span>&nbsp;生成的执行计划比为&nbsp;COMPUTE&nbsp;</span><span class="keyword">BY</span><span>&nbsp;生成的更为高效。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>16&nbsp;假如我有两个表&nbsp;&nbsp;</span></li>
    <li class="alt"><span>表1（电话号码，是否存在）&nbsp;&nbsp;</span></li>
    <li><span>表2（电话号码，是否拨打）&nbsp;&nbsp;</span></li>
    <li class="alt"><span>想查找表1中的电话号码是否在表2中存在，如果存在就更新表1中的是否存在字段为1。&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Update</span><span>&nbsp;表1&nbsp;</span><span class="keyword">SET</span><span>&nbsp;是否存在=1&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Where</span><span>&nbsp;EXISTS(</span><span class="keyword">Select</span><span>&nbsp;*&nbsp;</span><span class="keyword">FROM</span><span>　表2&nbsp;</span><span class="keyword">Where</span><span>&nbsp;表2.电话号码&nbsp;=&nbsp;表1.电话号码)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>17&nbsp;用存储过程调用外部程序.&nbsp;&nbsp;</span></li>
    <li><span>不过要做成com控件&nbsp;&nbsp;</span></li>
    <li class="alt"><span>用sp_OACreate存储过程)&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">DECLARE</span><span>&nbsp;@object&nbsp;</span><span class="keyword">int</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">DECLARE</span><span>&nbsp;@hr&nbsp;</span><span class="keyword">int</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">DECLARE</span><span>&nbsp;@src&nbsp;</span><span class="keyword">varchar</span><span>(255),&nbsp;@</span><span class="keyword">desc</span><span>&nbsp;</span><span class="keyword">varchar</span><span>(255)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">EXEC</span><span>&nbsp;@hr&nbsp;=&nbsp;sp_OACreate&nbsp;</span><span class="string">'SQLDMO.SQLServer'</span><span>,&nbsp;@object&nbsp;</span><span class="keyword">OUT</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>IF&nbsp;@hr&nbsp;&lt;&gt;&nbsp;0&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">BEGIN</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">EXEC</span><span>&nbsp;sp_OAGetErrorInfo&nbsp;@object,&nbsp;@src&nbsp;</span><span class="keyword">OUT</span><span>,&nbsp;@</span><span class="keyword">desc</span><span>&nbsp;</span><span class="keyword">OUT</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Select</span><span>&nbsp;hr=</span><span class="func">convert</span><span>(varbinary(4),@hr),&nbsp;Source=@src,&nbsp;Description=@</span><span class="keyword">desc</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">RETURN</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">END</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.pckno.com/article/admin20100316195554.html</link>
			<title><![CDATA[找些不错的sql面试题-2]]></title>
			<author>tenysw@163.com(admin)</author>
			<category><![CDATA[MSSQL]]></category>
			<pubDate>Tue,16 Mar 2010 19:55:53 +0800</pubDate>
			<guid>http://www.pckno.com/default.asp?id=48</guid>
		<description><![CDATA[<div class="codeText">
<div class="codeHead">SQL代码</div>
<ol start="1" class="dp-sql">
    <li class="alt"><span><span>问题描述：&nbsp;&nbsp;</span></span></li>
    <li><span>本题用到下面三个关系表：&nbsp;&nbsp;</span></li>
    <li class="alt"><span>CARD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;借书卡。&nbsp;&nbsp;&nbsp;CNO&nbsp;卡号，<span class="keyword">NAME</span><span>&nbsp;&nbsp;姓名，CLASS&nbsp;班级&nbsp;&nbsp;</span></span></li>
    <li><span>BOOKS&nbsp;&nbsp;&nbsp;&nbsp;图书。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BNO&nbsp;书号，BNAME&nbsp;书名,AUTHOR&nbsp;作者，PRICE&nbsp;单价，QUANTITY&nbsp;库存册数&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>BORROW&nbsp;&nbsp;&nbsp;借书记录。&nbsp;CNO&nbsp;借书卡号，BNO&nbsp;书号，RDATE&nbsp;还书日期&nbsp;&nbsp;</span></li>
    <li><span>备注：限定每人每种书只能借一本；库存册数随借书、还书而改变。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>要求实现如下15个处理：&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;1．&nbsp;写出建立BORROW表的SQL语句，要求定义主码完整性约束和引用完整性约束。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;2．&nbsp;找出借书超过5本的读者,输出借书卡号及所借图书册数。&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;3．&nbsp;查询借阅了<span class="string">&quot;水浒&quot;</span><span>一书的读者，输出姓名及班级。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;4．&nbsp;查询过期未还图书，输出借阅者（卡号）、书号及还书日期。&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;5．&nbsp;查询书名包括<span class="string">&quot;网络&quot;</span><span>关键词的图书，输出书号、书名、作者。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;6．&nbsp;查询现有图书中价格最高的图书，输出书名及作者。&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;7．&nbsp;查询当前借了<span class="string">&quot;计算方法&quot;</span><span>但没有借</span><span class="string">&quot;计算方法习题集&quot;</span><span>的读者，输出其借书卡号，并按卡号降序排序输出。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;8．&nbsp;将<span class="string">&quot;C01&quot;</span><span>班同学所借图书的还期都延长一周。&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;9．&nbsp;从BOOKS表中删除当前无人借阅的图书记录。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;10．如果经常按书名查询图书信息，请建立合适的索引。&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;11．在BORROW表上建立一个触发器，完成如下功能：如果读者借阅的书名是<span class="string">&quot;数据库技术及应用&quot;</span><span>，就将该读者的借阅记录保存在BORROW_SAVE表中（注ORROW_SAVE表结构同BORROW表）。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;12．建立一个视图，显示<span class="string">&quot;力01&quot;</span><span>班学生的借书信息（只要求显示姓名和书名）。&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;13．查询当前同时借有<span class="string">&quot;计算方法&quot;</span><span>和</span><span class="string">&quot;组合数学&quot;</span><span>两本书的读者，输出其借书卡号，并按卡号升序排序输出。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;14．假定在建BOOKS表时没有定义主码，写出为BOOKS表追加定义主码的语句。&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;15．对CARD表做如下修改：&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;a.&nbsp;将<span class="keyword">NAME</span><span>最大列宽增加到10个字符（假定原为6个字符）。&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;b.&nbsp;为该表增加1列<span class="keyword">NAME</span><span>（系名），可变长，最大20个字符。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>1.&nbsp;写出建立BORROW表的SQL语句，要求定义主码完整性约束和引用完整性约束&nbsp;&nbsp;</span></li>
    <li><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Create</span><span>&nbsp;</span><span class="keyword">TABLE</span><span>&nbsp;BORROW(&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;CNO&nbsp;<span class="keyword">int</span><span>&nbsp;</span><span class="keyword">FOREIGN</span><span>&nbsp;</span><span class="keyword">KEY</span><span>&nbsp;</span><span class="keyword">REFERENCES</span><span>&nbsp;CARD(CNO),&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;BNO&nbsp;<span class="keyword">int</span><span>&nbsp;</span><span class="keyword">FOREIGN</span><span>&nbsp;</span><span class="keyword">KEY</span><span>&nbsp;</span><span class="keyword">REFERENCES</span><span>&nbsp;BOOKS(BNO),&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;RDATE&nbsp;datetime,&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">PRIMARY</span><span>&nbsp;</span><span class="keyword">KEY</span><span>(CNO,BNO))&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>2.&nbsp;找出借书超过5本的读者,输出借书卡号及所借图书册数&nbsp;&nbsp;</span></li>
    <li><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Select</span><span>&nbsp;CNO,借图书册数=</span><span class="func">COUNT</span><span>(*)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">FROM</span><span>&nbsp;BORROW&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;CNO&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">HAVING</span><span>&nbsp;</span><span class="func">COUNT</span><span>(*)&gt;5&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>3.&nbsp;查询借阅了<span class="string">&quot;水浒&quot;</span><span>一书的读者，输出姓名及班级&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;*&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;CARD&nbsp;c&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Where</span><span>&nbsp;EXISTS(&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;*&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;BORROW&nbsp;a,BOOKS&nbsp;b&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;a.BNO=b.BNO&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">AND</span><span>&nbsp;b.BNAME=N</span><span class="string">'水浒'</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">AND</span><span>&nbsp;a.CNO=c.CNO)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>4.&nbsp;查询过期未还图书，输出借阅者（卡号）、书号及还书日期&nbsp;&nbsp;</span></li>
    <li><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Select</span><span>&nbsp;*&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;BORROW&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Where</span><span>&nbsp;RDATE&lt;GETDATE()&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>5.&nbsp;查询书名包括<span class="string">&quot;网络&quot;</span><span>关键词的图书，输出书号、书名、作者&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;BNO,BNAME,AUTHOR&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;BOOKS&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Where</span><span>&nbsp;BNAME&nbsp;</span><span class="op">LIKE</span><span>&nbsp;N</span><span class="string">'%网络%'</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>6.&nbsp;查询现有图书中价格最高的图书，输出书名及作者&nbsp;&nbsp;</span></li>
    <li><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Select</span><span>&nbsp;BNO,BNAME,AUTHOR&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;BOOKS&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Where</span><span>&nbsp;PRICE=(&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;</span><span class="keyword">MAX</span><span>(PRICE)&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;BOOKS)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>7.&nbsp;查询当前借了<span class="string">&quot;计算方法&quot;</span><span>但没有借</span><span class="string">&quot;计算方法习题集&quot;</span><span>的读者，输出其借书卡号，并按卡号降序排序输出&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Select</span><span>&nbsp;a.CNO&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">FROM</span><span>&nbsp;BORROW&nbsp;a,BOOKS&nbsp;b&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Where</span><span>&nbsp;a.BNO=b.BNO&nbsp;</span><span class="op">AND</span><span>&nbsp;b.BNAME=N</span><span class="string">'计算方法'</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">AND</span><span>&nbsp;</span><span class="op">NOT</span><span>&nbsp;EXISTS(&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;*&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;BORROW&nbsp;aa,BOOKS&nbsp;bb&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;aa.BNO=bb.BNO&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">AND</span><span>&nbsp;bb.BNAME=N</span><span class="string">'计算方法习题集'</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">AND</span><span>&nbsp;aa.CNO=a.CNO)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">ORDER</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;a.CNO&nbsp;</span><span class="keyword">DESC</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>8.&nbsp;将<span class="string">&quot;C01&quot;</span><span>班同学所借图书的还期都延长一周&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Update</span><span>&nbsp;b&nbsp;</span><span class="keyword">SET</span><span>&nbsp;RDATE=DATEADD(</span><span class="func">Day</span><span>,7,b.RDATE)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">FROM</span><span>&nbsp;CARD&nbsp;a,BORROW&nbsp;b&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Where</span><span>&nbsp;a.CNO=b.CNO&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">AND</span><span>&nbsp;a.CLASS=N</span><span class="string">'C01'</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>9.&nbsp;从BOOKS表中删除当前无人借阅的图书记录&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Delete</span><span>&nbsp;A&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;BOOKS&nbsp;a&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Where</span><span>&nbsp;</span><span class="op">NOT</span><span>&nbsp;EXISTS(&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;*&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;BORROW&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;BNO=a.BNO)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>10.&nbsp;如果经常按书名查询图书信息，请建立合适的索引&nbsp;&nbsp;</span></li>
    <li><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Create</span><span>&nbsp;CLUSTERED&nbsp;</span><span class="keyword">INDEX</span><span>&nbsp;IDX_BOOKS_BNAME&nbsp;</span><span class="keyword">ON</span><span>&nbsp;BOOKS(BNAME)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>11.&nbsp;在BORROW表上建立一个触发器，完成如下功能：如果读者借阅的书名是<span class="string">&quot;数据库技术及应用&quot;</span><span>，就将该读者的借阅记录保存在BORROW_SAVE表中（注ORROW_SAVE表结构同BORROW表）&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Create</span><span>&nbsp;</span><span class="keyword">TRIGGER</span><span>&nbsp;TR_SAVE&nbsp;</span><span class="keyword">ON</span><span>&nbsp;BORROW&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">FOR</span><span>&nbsp;</span><span class="keyword">Insert</span><span>,</span><span class="keyword">Update</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">AS</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>IF&nbsp;@@ROWCOUNT&gt;0&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">Insert</span><span>&nbsp;BORROW_SAVE&nbsp;</span><span class="keyword">Select</span><span>&nbsp;i.*&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">FROM</span><span>&nbsp;InsertED&nbsp;i,BOOKS&nbsp;b&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Where</span><span>&nbsp;i.BNO=b.BNO&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">AND</span><span>&nbsp;b.BNAME=N</span><span class="string">'数据库技术及应用'</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>12.&nbsp;建立一个视图，显示<span class="string">&quot;力01&quot;</span><span>班学生的借书信息（只要求显示姓名和书名）&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Create</span><span>&nbsp;</span><span class="keyword">VIEW</span><span>&nbsp;V_VIEW&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">AS</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;a.</span><span class="keyword">NAME</span><span>,b.BNAME&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">FROM</span><span>&nbsp;BORROW&nbsp;ab,CARD&nbsp;a,BOOKS&nbsp;b&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Where</span><span>&nbsp;ab.CNO=a.CNO&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">AND</span><span>&nbsp;ab.BNO=b.BNO&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">AND</span><span>&nbsp;a.CLASS=N</span><span class="string">'力01'</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>13.&nbsp;查询当前同时借有<span class="string">&quot;计算方法&quot;</span><span>和</span><span class="string">&quot;组合数学&quot;</span><span>两本书的读者，输出其借书卡号，并按卡号升序排序输出&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;a.CNO&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">FROM</span><span>&nbsp;BORROW&nbsp;a,BOOKS&nbsp;b&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Where</span><span>&nbsp;a.BNO=b.BNO&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">AND</span><span>&nbsp;b.BNAME&nbsp;</span><span class="op">IN</span><span>(N</span><span class="string">'计算方法'</span><span>,N</span><span class="string">'组合数学'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;a.CNO&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">HAVING</span><span>&nbsp;</span><span class="func">COUNT</span><span>(*)=2&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">ORDER</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;a.CNO&nbsp;</span><span class="keyword">DESC</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>14.&nbsp;假定在建BOOKS表时没有定义主码，写出为BOOKS表追加定义主码的语句&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Alter</span><span>&nbsp;</span><span class="keyword">TABLE</span><span>&nbsp;BOOKS&nbsp;</span><span class="keyword">ADD</span><span>&nbsp;</span><span class="keyword">PRIMARY</span><span>&nbsp;</span><span class="keyword">KEY</span><span>(BNO)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>15.1&nbsp;将<span class="keyword">NAME</span><span>最大列宽增加到10个字符（假定原为6个字符）&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Alter</span><span>&nbsp;</span><span class="keyword">TABLE</span><span>&nbsp;CARD&nbsp;</span><span class="keyword">Alter</span><span>&nbsp;</span><span class="keyword">COLUMN</span><span>&nbsp;</span><span class="keyword">NAME</span><span>&nbsp;</span><span class="keyword">varchar</span><span>(10)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>15.2&nbsp;为该表增加1列<span class="keyword">NAME</span><span>（系名），可变长，最大20个字符&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Alter</span><span>&nbsp;</span><span class="keyword">TABLE</span><span>&nbsp;CARD&nbsp;</span><span class="keyword">ADD</span><span>&nbsp;系名&nbsp;</span><span class="keyword">varchar</span><span>(20)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>问题描述：&nbsp;&nbsp;</span></li>
    <li><span>为管理岗位业务培训信息，建立3个表:&nbsp;&nbsp;</span></li>
    <li class="alt"><span>S&nbsp;(S#,SN,SD,SA)&nbsp;&nbsp;&nbsp;S#,SN,SD,SA&nbsp;分别代表学号、学员姓名、所属单位、学员年龄&nbsp;&nbsp;</span></li>
    <li><span>C&nbsp;(C#,CN&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C#,CN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;分别代表课程编号、课程名称&nbsp;&nbsp;</span></li>
    <li class="alt"><span>SC&nbsp;(&nbsp;S#,C#,G&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;S#,C#,G&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;分别代表学号、所选修的课程编号、学习成绩&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>要求实现如下5个处理：&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;1.&nbsp;使用标准SQL嵌套语句查询选修课程名称为&rsquo;税收基础&rsquo;的学员学号和姓名&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;2.&nbsp;使用标准SQL嵌套语句查询选修课程编号为&rsquo;C2&rsquo;的学员姓名和所属单位&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;3.&nbsp;使用标准SQL嵌套语句查询不选修课程编号为&rsquo;C5&rsquo;的学员姓名和所属单位&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;4.&nbsp;使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;5.&nbsp;查询选修了课程的学员人数&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;6.&nbsp;查询选修课程超过5门的学员学号和所属单位&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>1.&nbsp;使用标准SQL嵌套语句查询选修课程名称为&rsquo;税收基础&rsquo;的学员学号和姓名&nbsp;&nbsp;&nbsp;</span></li>
    <li><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Select</span><span>&nbsp;SN,SD&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;S&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Where</span><span>&nbsp;[S#]&nbsp;</span><span class="op">IN</span><span>(&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;[S#]&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;C,SC&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;C.[C#]=SC.[C#]&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">AND</span><span>&nbsp;CN=N</span><span class="string">'税收基础'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>2.&nbsp;使用标准SQL嵌套语句查询选修课程编号为&rsquo;C2&rsquo;的学员姓名和所属单位&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;S.SN,S.SD&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;S,SC&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Where</span><span>&nbsp;S.[S#]=SC.[S#]&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">AND</span><span>&nbsp;SC.[C#]=</span><span class="string">'C2'</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>3.&nbsp;使用标准SQL嵌套语句查询不选修课程编号为&rsquo;C5&rsquo;的学员姓名和所属单位&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;SN,SD&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;S&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Where</span><span>&nbsp;[S#]&nbsp;</span><span class="op">NOT</span><span>&nbsp;</span><span class="op">IN</span><span>(&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;[S#]&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;SC&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;[C#]=</span><span class="string">'C5'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>4.&nbsp;使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位&nbsp;&nbsp;</span></li>
    <li><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Select</span><span>&nbsp;SN,SD&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;S&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Where</span><span>&nbsp;[S#]&nbsp;</span><span class="op">IN</span><span>(&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;[S#]&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;SC&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">RIGHT</span><span>&nbsp;</span><span class="op">JOIN</span><span>&nbsp;C&nbsp;</span><span class="keyword">ON</span><span>&nbsp;SC.[C#]=C.[C#]&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;[S#]&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">HAVING</span><span>&nbsp;</span><span class="func">COUNT</span><span>(*)=</span><span class="func">COUNT</span><span>(</span><span class="keyword">DISTINCT</span><span>&nbsp;[S#]))&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>5.&nbsp;查询选修了课程的学员人数&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;学员人数=</span><span class="func">COUNT</span><span>(</span><span class="keyword">DISTINCT</span><span>&nbsp;[S#])&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;SC&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>6.&nbsp;查询选修课程超过5门的学员学号和所属单位&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="comment">--实现代码：</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;SN,SD&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;S&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Where</span><span>&nbsp;[S#]&nbsp;</span><span class="op">IN</span><span>(&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;[S#]&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;SC&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;[S#]&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">HAVING</span><span>&nbsp;</span><span class="func">COUNT</span><span>(</span><span class="keyword">DISTINCT</span><span>&nbsp;[C#])&gt;5)&nbsp;&nbsp;</span></span></li>
</ol>
</div>]]></description>
		</item>
		
			<item>
			<link>http://www.pckno.com/article/ZhaoXieBuCuoDesqlMianShiTi1.html</link>
			<title><![CDATA[找些不错的sql面试题-1]]></title>
			<author>tenysw@163.com(admin)</author>
			<category><![CDATA[MSSQL]]></category>
			<pubDate>Tue,16 Mar 2010 19:54:39 +0800</pubDate>
			<guid>http://www.pckno.com/default.asp?id=47</guid>
		<description><![CDATA[<div class="codeText">
<div class="codeHead">SQL代码</div>
<ol start="1" class="dp-sql">
    <li class="alt"><span><span>Student(S#,Sname,Sage,Ssex)&nbsp;学生表&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>Course(C#,Cname,T#)&nbsp;课程表&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>SC(S#,C#,score)&nbsp;成绩表&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>Teacher(T#,Tname)&nbsp;教师表&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>问题：&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>1、查询&ldquo;001&rdquo;课程比&ldquo;002&rdquo;课程成绩高的所有学生的学号；&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;a.S#&nbsp;</span><span class="keyword">from</span><span>&nbsp;(</span><span class="keyword">select</span><span>&nbsp;s#,score&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;C#=</span><span class="string">'001'</span><span>)&nbsp;a,(</span><span class="keyword">select</span><span>&nbsp;s#,score&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;C#=</span><span class="string">'002'</span><span>)&nbsp;b&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;a.score&gt;b.score&nbsp;</span><span class="op">and</span><span>&nbsp;a.s#=b.s#;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>2、查询平均成绩大于60分的同学的学号和平均成绩；&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;S#,</span><span class="func">avg</span><span>(score)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;sc&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;S#&nbsp;</span><span class="keyword">having</span><span>&nbsp;</span><span class="func">avg</span><span>(score)&nbsp;&gt;60;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>3、查询所有同学的学号、姓名、选课数、总成绩；&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;Student.S#,Student.Sname,</span><span class="func">count</span><span>(SC.C#),</span><span class="func">sum</span><span>(score)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;Student&nbsp;</span><span class="func">left</span><span>&nbsp;</span><span class="op">Outer</span><span>&nbsp;</span><span class="op">join</span><span>&nbsp;SC&nbsp;</span><span class="keyword">on</span><span>&nbsp;Student.S#=SC.S#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;Student.S#,Sname&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>4、查询姓&ldquo;李&rdquo;的老师的个数；&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;</span><span class="func">count</span><span>(</span><span class="keyword">distinct</span><span>(Tname))&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;Teacher&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;Tname&nbsp;</span><span class="op">like</span><span>&nbsp;</span><span class="string">'李%'</span><span>;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>5、查询没学过&ldquo;叶平&rdquo;老师课的同学的学号、姓名；&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;Student.S#,Student.Sname&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;Student&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;S#&nbsp;</span><span class="op">not</span><span>&nbsp;</span><span class="op">in</span><span>&nbsp;(</span><span class="keyword">select</span><span>&nbsp;</span><span class="keyword">distinct</span><span>(&nbsp;SC.S#)&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC,Course,Teacher&nbsp;</span><span class="keyword">where</span><span>&nbsp;&nbsp;SC.C#=Course.C#&nbsp;</span><span class="op">and</span><span>&nbsp;Teacher.T#=Course.T#&nbsp;</span><span class="op">and</span><span>&nbsp;Teacher.Tname=</span><span class="string">'叶平'</span><span>);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>6、查询学过&ldquo;001&rdquo;并且也学过编号&ldquo;002&rdquo;课程的同学的学号、姓名；&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;Student.S#,Student.Sname&nbsp;</span><span class="keyword">from</span><span>&nbsp;Student,SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;Student.S#=SC.S#&nbsp;</span><span class="op">and</span><span>&nbsp;SC.C#=</span><span class="string">'001'</span><span class="op">and</span><span>&nbsp;exists(&nbsp;</span><span class="keyword">Select</span><span>&nbsp;*&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">as</span><span>&nbsp;SC_2&nbsp;</span><span class="keyword">where</span><span>&nbsp;SC_2.S#=SC.S#&nbsp;</span><span class="op">and</span><span>&nbsp;SC_2.C#=</span><span class="string">'002'</span><span>);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>7、查询学过&ldquo;叶平&rdquo;老师所教的所有课的同学的学号、姓名；&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;S#,Sname&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;Student&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;S#&nbsp;</span><span class="op">in</span><span>&nbsp;(</span><span class="keyword">select</span><span>&nbsp;S#&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;,Course&nbsp;,Teacher&nbsp;</span><span class="keyword">where</span><span>&nbsp;SC.C#=Course.C#&nbsp;</span><span class="op">and</span><span>&nbsp;Teacher.T#=Course.T#&nbsp;</span><span class="op">and</span><span>&nbsp;Teacher.Tname=</span><span class="string">'叶平'</span><span>&nbsp;</span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;S#&nbsp;</span><span class="keyword">having</span><span>&nbsp;</span><span class="func">count</span><span>(SC.C#)=(</span><span class="keyword">select</span><span>&nbsp;</span><span class="func">count</span><span>(C#)&nbsp;</span><span class="keyword">from</span><span>&nbsp;Course,Teacher&nbsp;&nbsp;</span><span class="keyword">where</span><span>&nbsp;Teacher.T#=Course.T#&nbsp;</span><span class="op">and</span><span>&nbsp;Tname=</span><span class="string">'叶平'</span><span>));&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>8、查询课程编号&ldquo;002&rdquo;的成绩比课程编号&ldquo;001&rdquo;课程低的所有同学的学号、姓名；&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;S#,Sname&nbsp;</span><span class="keyword">from</span><span>&nbsp;(</span><span class="keyword">select</span><span>&nbsp;Student.S#,Student.Sname,score&nbsp;,(</span><span class="keyword">select</span><span>&nbsp;score&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;SC_2&nbsp;</span><span class="keyword">where</span><span>&nbsp;SC_2.S#=Student.S#&nbsp;</span><span class="op">and</span><span>&nbsp;SC_2.C#=</span><span class="string">'002'</span><span>)&nbsp;score2&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;Student,SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;Student.S#=SC.S#&nbsp;</span><span class="op">and</span><span>&nbsp;C#=</span><span class="string">'001'</span><span>)&nbsp;S_2&nbsp;</span><span class="keyword">where</span><span>&nbsp;score2&nbsp;&lt;score;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>9、查询所有课程成绩小于60分的同学的学号、姓名；&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;S#,Sname&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;Student&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;S#&nbsp;</span><span class="op">not</span><span>&nbsp;</span><span class="op">in</span><span>&nbsp;(</span><span class="keyword">select</span><span>&nbsp;Student.S#&nbsp;</span><span class="keyword">from</span><span>&nbsp;Student,SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;S.S#=SC.S#&nbsp;</span><span class="op">and</span><span>&nbsp;score&gt;60);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>10、查询没有学全所有课的同学的学号、姓名；&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;Student.S#,Student.Sname&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;Student,SC&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;Student.S#=SC.S#&nbsp;</span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;&nbsp;Student.S#,Student.Sname&nbsp;</span><span class="keyword">having</span><span>&nbsp;</span><span class="func">count</span><span>(C#)&nbsp;&lt;(</span><span class="keyword">select</span><span>&nbsp;</span><span class="func">count</span><span>(C#)&nbsp;</span><span class="keyword">from</span><span>&nbsp;Course);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>11、查询至少有一门课与学号为&ldquo;1001&rdquo;的同学所学相同的同学的学号和姓名；&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;S#,Sname&nbsp;</span><span class="keyword">from</span><span>&nbsp;Student,SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;Student.S#=SC.S#&nbsp;</span><span class="op">and</span><span>&nbsp;C#&nbsp;</span><span class="op">in</span><span>&nbsp;</span><span class="keyword">select</span><span>&nbsp;C#&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;S#=</span><span class="string">'1001'</span><span>;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>12、查询至少学过学号为&ldquo;001&rdquo;同学所有一门课的其他同学学号和姓名；&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;</span><span class="keyword">distinct</span><span>&nbsp;SC.S#,Sname&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;Student,SC&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;Student.S#=SC.S#&nbsp;</span><span class="op">and</span><span>&nbsp;C#&nbsp;</span><span class="op">in</span><span>&nbsp;(</span><span class="keyword">select</span><span>&nbsp;C#&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;S#=</span><span class="string">'001'</span><span>);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>13、把&ldquo;SC&rdquo;表中&ldquo;叶平&rdquo;老师教的课的成绩都更改为此课程的平均成绩；&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">update</span><span>&nbsp;SC&nbsp;</span><span class="keyword">set</span><span>&nbsp;score=(</span><span class="keyword">select</span><span>&nbsp;</span><span class="func">avg</span><span>(SC_2.score)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;SC&nbsp;SC_2&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;SC_2.C#=SC.C#&nbsp;)&nbsp;</span><span class="keyword">from</span><span>&nbsp;Course,Teacher&nbsp;</span><span class="keyword">where</span><span>&nbsp;Course.C#=SC.C#&nbsp;</span><span class="op">and</span><span>&nbsp;Course.T#=Teacher.T#&nbsp;</span><span class="op">and</span><span>&nbsp;Teacher.Tname=</span><span class="string">'叶平'</span><span>);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>14、查询和&ldquo;1002&rdquo;号的同学学习的课程完全相同的其他同学学号和姓名；&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;S#&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;C#&nbsp;</span><span class="op">in</span><span>&nbsp;(</span><span class="keyword">select</span><span>&nbsp;C#&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;S#=</span><span class="string">'1002'</span><span>)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;S#&nbsp;</span><span class="keyword">having</span><span>&nbsp;</span><span class="func">count</span><span>(*)=(</span><span class="keyword">select</span><span>&nbsp;</span><span class="func">count</span><span>(*)&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;S#=</span><span class="string">'1002'</span><span>);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>15、删除学习&ldquo;叶平&rdquo;老师课的SC表记录；&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;Delect&nbsp;SC&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;course&nbsp;,Teacher&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;Course.C#=SC.C#&nbsp;</span><span class="op">and</span><span>&nbsp;Course.T#=&nbsp;Teacher.T#&nbsp;</span><span class="op">and</span><span>&nbsp;Tname=</span><span class="string">'叶平'</span><span>;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>16、向SC表中插入一些记录，这些记录要求符合以下条件：没有上过编号&ldquo;003&rdquo;课程的同学学号、2、&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;号课的平均成绩；&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Insert</span><span>&nbsp;SC&nbsp;</span><span class="keyword">select</span><span>&nbsp;S#,</span><span class="string">'002'</span><span>,(</span><span class="keyword">Select</span><span>&nbsp;</span><span class="func">avg</span><span>(score)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;C#=</span><span class="string">'002'</span><span>)&nbsp;</span><span class="keyword">from</span><span>&nbsp;Student&nbsp;</span><span class="keyword">where</span><span>&nbsp;S#&nbsp;</span><span class="op">not</span><span>&nbsp;</span><span class="op">in</span><span>&nbsp;(</span><span class="keyword">Select</span><span>&nbsp;S#&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;C#=</span><span class="string">'002'</span><span>);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>17、按平均成绩从高到低显示所有学生的&ldquo;数据库&rdquo;、&ldquo;企业管理&rdquo;、&ldquo;英语&rdquo;三门的课程成绩，按如下形式显示：&nbsp;学生ID,,数据库,企业管理,英语,有效课程数,有效平均分&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;S#&nbsp;</span><span class="keyword">as</span><span>&nbsp;学生ID&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,(<span class="keyword">Select</span><span>&nbsp;score&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;SC&nbsp;</span><span class="keyword">Where</span><span>&nbsp;SC.S#=t.S#&nbsp;</span><span class="op">AND</span><span>&nbsp;C#=</span><span class="string">'004'</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;数据库&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,(<span class="keyword">Select</span><span>&nbsp;score&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;SC&nbsp;</span><span class="keyword">Where</span><span>&nbsp;SC.S#=t.S#&nbsp;</span><span class="op">AND</span><span>&nbsp;C#=</span><span class="string">'001'</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;企业管理&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,(<span class="keyword">Select</span><span>&nbsp;score&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;SC&nbsp;</span><span class="keyword">Where</span><span>&nbsp;SC.S#=t.S#&nbsp;</span><span class="op">AND</span><span>&nbsp;C#=</span><span class="string">'006'</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;英语&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,<span class="func">COUNT</span><span>(*)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;有效课程数,&nbsp;</span><span class="func">AVG</span><span>(t.score)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;平均成绩&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC&nbsp;</span><span class="keyword">AS</span><span>&nbsp;t&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;S#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ORDER</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;</span><span class="func">avg</span><span>(t.score)&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>18、查询各科成绩最高和最低的分：以如下形式显示：课程ID，最高分，最低分&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;L.C#&nbsp;</span><span class="keyword">As</span><span>&nbsp;课程ID,L.score&nbsp;</span><span class="keyword">AS</span><span>&nbsp;最高分,R.score&nbsp;</span><span class="keyword">AS</span><span>&nbsp;最低分&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC&nbsp;L&nbsp;,SC&nbsp;</span><span class="keyword">AS</span><span>&nbsp;R&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;L.C#&nbsp;=&nbsp;R.C#&nbsp;</span><span class="op">and</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L.score&nbsp;=&nbsp;(<span class="keyword">Select</span><span>&nbsp;</span><span class="keyword">MAX</span><span>(IL.score)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC&nbsp;</span><span class="keyword">AS</span><span>&nbsp;IL,Student&nbsp;</span><span class="keyword">AS</span><span>&nbsp;IM&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;L.C#&nbsp;=&nbsp;IL.C#&nbsp;</span><span class="op">and</span><span>&nbsp;IM.S#=IL.S#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;IL.C#)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">AND</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R.Score&nbsp;=&nbsp;(<span class="keyword">Select</span><span>&nbsp;</span><span class="keyword">MIN</span><span>(IR.score)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC&nbsp;</span><span class="keyword">AS</span><span>&nbsp;IR&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;R.C#&nbsp;=&nbsp;IR.C#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;IR.C#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>19、按各科平均成绩从低到高和及格率的百分数从高到低顺序&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;t.C#&nbsp;</span><span class="keyword">AS</span><span>&nbsp;课程号,</span><span class="keyword">max</span><span>(course.Cname)</span><span class="keyword">AS</span><span>&nbsp;课程名,</span><span class="func">isnull</span><span>(</span><span class="func">AVG</span><span>(score),0)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;平均成绩&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,100&nbsp;*&nbsp;<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;&nbsp;</span><span class="func">isnull</span><span>(score,0)&gt;=60&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)/</span><span class="func">COUNT</span><span>(*)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;及格百分数&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC&nbsp;T,Course&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;t.C#=course.C#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;t.C#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ORDER</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;100&nbsp;*&nbsp;</span><span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;&nbsp;</span><span class="func">isnull</span><span>(score,0)&gt;=60&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)/</span><span class="func">COUNT</span><span>(*)&nbsp;</span><span class="keyword">DESC</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>20、查询如下课程平均成绩和及格率的百分数(用<span class="string">&quot;1行&quot;</span><span>显示):&nbsp;企业管理（001），马克思（002），OO&amp;UML&nbsp;（003），数据库（004）&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;</span><span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;C#&nbsp;=</span><span class="string">'001'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;score&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)/</span><span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;C#&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;</span><span class="string">'001'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;企业管理平均分&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,100&nbsp;*&nbsp;<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;C#&nbsp;=&nbsp;</span><span class="string">'001'</span><span>&nbsp;</span><span class="op">AND</span><span>&nbsp;score&nbsp;&gt;=&nbsp;60&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)/</span><span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;C#&nbsp;=&nbsp;</span><span class="string">'001'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;企业管理及格百分数&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;C#&nbsp;=&nbsp;</span><span class="string">'002'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;score&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)/</span><span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;C#&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;</span><span class="string">'002'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;马克思平均分&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,100&nbsp;*&nbsp;<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;C#&nbsp;=&nbsp;</span><span class="string">'002'</span><span>&nbsp;</span><span class="op">AND</span><span>&nbsp;score&nbsp;&gt;=&nbsp;60&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)/</span><span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;C#&nbsp;=&nbsp;</span><span class="string">'002'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;马克思及格百分数&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;C#&nbsp;=&nbsp;</span><span class="string">'003'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;score&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)/</span><span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;C#&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;</span><span class="string">'003'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;UML平均分&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,100&nbsp;*&nbsp;<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;C#&nbsp;=&nbsp;</span><span class="string">'003'</span><span>&nbsp;</span><span class="op">AND</span><span>&nbsp;score&nbsp;&gt;=&nbsp;60&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)/</span><span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;C#&nbsp;=&nbsp;</span><span class="string">'003'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;UML及格百分数&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;C#&nbsp;=&nbsp;</span><span class="string">'004'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;score&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)/</span><span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;C#&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;</span><span class="string">'004'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;数据库平均分&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,100&nbsp;*&nbsp;<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;C#&nbsp;=&nbsp;</span><span class="string">'004'</span><span>&nbsp;</span><span class="op">AND</span><span>&nbsp;score&nbsp;&gt;=&nbsp;60&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)/</span><span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;C#&nbsp;=&nbsp;</span><span class="string">'004'</span><span>&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;数据库及格百分数&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>21、查询不同老师所教不同课程平均分从高到低显示&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;</span><span class="keyword">max</span><span>(Z.T#)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;教师ID,</span><span class="keyword">MAX</span><span>(Z.Tname)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;教师姓名,C.C#&nbsp;</span><span class="keyword">AS</span><span>&nbsp;课程ＩＤ,</span><span class="keyword">MAX</span><span>(C.Cname)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;课程名称,</span><span class="func">AVG</span><span>(Score)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;平均成绩&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC&nbsp;</span><span class="keyword">AS</span><span>&nbsp;T,Course&nbsp;</span><span class="keyword">AS</span><span>&nbsp;C&nbsp;,Teacher&nbsp;</span><span class="keyword">AS</span><span>&nbsp;Z&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;T.C#=C.C#&nbsp;</span><span class="op">and</span><span>&nbsp;C.T#=Z.T#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;C.C#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">ORDER</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;</span><span class="func">AVG</span><span>(Score)&nbsp;</span><span class="keyword">DESC</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>22、查询如下课程成绩第&nbsp;3&nbsp;名到第&nbsp;6&nbsp;名的学生成绩单：企业管理（001），马克思（002），UML&nbsp;（003），数据库（004）&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;&nbsp;</span><span class="keyword">DISTINCT</span><span>&nbsp;</span><span class="keyword">top</span><span>&nbsp;3&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SC.S#&nbsp;<span class="keyword">As</span><span>&nbsp;学生学号,&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student.Sname&nbsp;<span class="keyword">AS</span><span>&nbsp;学生姓名&nbsp;,&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T1.score&nbsp;<span class="keyword">AS</span><span>&nbsp;企业管理,&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T2.score&nbsp;<span class="keyword">AS</span><span>&nbsp;马克思,&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T3.score&nbsp;<span class="keyword">AS</span><span>&nbsp;UML,&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T4.score&nbsp;<span class="keyword">AS</span><span>&nbsp;数据库,&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">ISNULL</span><span>(T1.score,0)&nbsp;+&nbsp;</span><span class="func">ISNULL</span><span>(T2.score,0)&nbsp;+&nbsp;</span><span class="func">ISNULL</span><span>(T3.score,0)&nbsp;+&nbsp;</span><span class="func">ISNULL</span><span>(T4.score,0)&nbsp;</span><span class="keyword">as</span><span>&nbsp;总分&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;Student,SC&nbsp;&nbsp;</span><span class="func">LEFT</span><span>&nbsp;</span><span class="op">JOIN</span><span>&nbsp;SC&nbsp;</span><span class="keyword">AS</span><span>&nbsp;T1&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ON</span><span>&nbsp;SC.S#&nbsp;=&nbsp;T1.S#&nbsp;</span><span class="op">AND</span><span>&nbsp;T1.C#&nbsp;=&nbsp;</span><span class="string">'001'</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">LEFT</span><span>&nbsp;</span><span class="op">JOIN</span><span>&nbsp;SC&nbsp;</span><span class="keyword">AS</span><span>&nbsp;T2&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ON</span><span>&nbsp;SC.S#&nbsp;=&nbsp;T2.S#&nbsp;</span><span class="op">AND</span><span>&nbsp;T2.C#&nbsp;=&nbsp;</span><span class="string">'002'</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">LEFT</span><span>&nbsp;</span><span class="op">JOIN</span><span>&nbsp;SC&nbsp;</span><span class="keyword">AS</span><span>&nbsp;T3&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ON</span><span>&nbsp;SC.S#&nbsp;=&nbsp;T3.S#&nbsp;</span><span class="op">AND</span><span>&nbsp;T3.C#&nbsp;=&nbsp;</span><span class="string">'003'</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">LEFT</span><span>&nbsp;</span><span class="op">JOIN</span><span>&nbsp;SC&nbsp;</span><span class="keyword">AS</span><span>&nbsp;T4&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ON</span><span>&nbsp;SC.S#&nbsp;=&nbsp;T4.S#&nbsp;</span><span class="op">AND</span><span>&nbsp;T4.C#&nbsp;=&nbsp;</span><span class="string">'004'</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;student.S#=SC.S#&nbsp;</span><span class="op">and</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">ISNULL</span><span>(T1.score,0)&nbsp;+&nbsp;</span><span class="func">ISNULL</span><span>(T2.score,0)&nbsp;+&nbsp;</span><span class="func">ISNULL</span><span>(T3.score,0)&nbsp;+&nbsp;</span><span class="func">ISNULL</span><span>(T4.score,0)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="op">NOT</span><span>&nbsp;</span><span class="op">IN</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="keyword">Select</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">DISTINCT</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">TOP</span><span>&nbsp;15&nbsp;</span><span class="keyword">WITH</span><span>&nbsp;TIES&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">ISNULL</span><span>(T1.score,0)&nbsp;+&nbsp;</span><span class="func">ISNULL</span><span>(T2.score,0)&nbsp;+&nbsp;</span><span class="func">ISNULL</span><span>(T3.score,0)&nbsp;+&nbsp;</span><span class="func">ISNULL</span><span>(T4.score,0)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;sc&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">LEFT</span><span>&nbsp;</span><span class="op">JOIN</span><span>&nbsp;sc&nbsp;</span><span class="keyword">AS</span><span>&nbsp;T1&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ON</span><span>&nbsp;sc.S#&nbsp;=&nbsp;T1.S#&nbsp;</span><span class="op">AND</span><span>&nbsp;T1.C#&nbsp;=&nbsp;</span><span class="string">'k1'</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">LEFT</span><span>&nbsp;</span><span class="op">JOIN</span><span>&nbsp;sc&nbsp;</span><span class="keyword">AS</span><span>&nbsp;T2&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ON</span><span>&nbsp;sc.S#&nbsp;=&nbsp;T2.S#&nbsp;</span><span class="op">AND</span><span>&nbsp;T2.C#&nbsp;=&nbsp;</span><span class="string">'k2'</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">LEFT</span><span>&nbsp;</span><span class="op">JOIN</span><span>&nbsp;sc&nbsp;</span><span class="keyword">AS</span><span>&nbsp;T3&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ON</span><span>&nbsp;sc.S#&nbsp;=&nbsp;T3.S#&nbsp;</span><span class="op">AND</span><span>&nbsp;T3.C#&nbsp;=&nbsp;</span><span class="string">'k3'</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="func">LEFT</span><span>&nbsp;</span><span class="op">JOIN</span><span>&nbsp;sc&nbsp;</span><span class="keyword">AS</span><span>&nbsp;T4&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ON</span><span>&nbsp;sc.S#&nbsp;=&nbsp;T4.S#&nbsp;</span><span class="op">AND</span><span>&nbsp;T4.C#&nbsp;=&nbsp;</span><span class="string">'k4'</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ORDER</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;</span><span class="func">ISNULL</span><span>(T1.score,0)&nbsp;+&nbsp;</span><span class="func">ISNULL</span><span>(T2.score,0)&nbsp;+&nbsp;</span><span class="func">ISNULL</span><span>(T3.score,0)&nbsp;+&nbsp;</span><span class="func">ISNULL</span><span>(T4.score,0)&nbsp;</span><span class="keyword">DESC</span><span>);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[&nbsp;&lt;60]&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;SC.C#&nbsp;</span><span class="keyword">as</span><span>&nbsp;课程ID,&nbsp;Cname&nbsp;</span><span class="keyword">as</span><span>&nbsp;课程名称&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;score&nbsp;</span><span class="op">BETWEEN</span><span>&nbsp;85&nbsp;</span><span class="op">AND</span><span>&nbsp;100&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;[100&nbsp;-&nbsp;85]&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;score&nbsp;</span><span class="op">BETWEEN</span><span>&nbsp;70&nbsp;</span><span class="op">AND</span><span>&nbsp;85&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;[85&nbsp;-&nbsp;70]&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;score&nbsp;</span><span class="op">BETWEEN</span><span>&nbsp;60&nbsp;</span><span class="op">AND</span><span>&nbsp;70&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;[70&nbsp;-&nbsp;60]&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,<span class="func">SUM</span><span>(</span><span class="func">CASE</span><span>&nbsp;</span><span class="keyword">WHEN</span><span>&nbsp;score&nbsp;&lt;&nbsp;60&nbsp;</span><span class="keyword">THEN</span><span>&nbsp;1&nbsp;</span><span class="keyword">ELSE</span><span>&nbsp;0&nbsp;</span><span class="keyword">END</span><span>)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;[60&nbsp;-]&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC,Course&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;SC.C#=Course.C#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;SC.C#,Cname;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>24、查询学生平均成绩及其名次&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;1+(</span><span class="keyword">Select</span><span>&nbsp;</span><span class="func">COUNT</span><span>(&nbsp;</span><span class="keyword">distinct</span><span>&nbsp;平均成绩)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;(</span><span class="keyword">Select</span><span>&nbsp;S#,</span><span class="func">AVG</span><span>(score)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;平均成绩&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;S#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;<span class="keyword">AS</span><span>&nbsp;T1&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;平均成绩&nbsp;&gt;&nbsp;T2.平均成绩)&nbsp;</span><span class="keyword">as</span><span>&nbsp;名次,&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S#&nbsp;<span class="keyword">as</span><span>&nbsp;学生学号,平均成绩&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;(</span><span class="keyword">Select</span><span>&nbsp;S#,</span><span class="func">AVG</span><span>(score)&nbsp;平均成绩&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">GROUP</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;S#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;<span class="keyword">AS</span><span>&nbsp;T2&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ORDER</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;平均成绩&nbsp;</span><span class="keyword">desc</span><span>;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>25、查询各科成绩前三名的记录:(不考虑成绩并列情况)&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;t1.S#&nbsp;</span><span class="keyword">as</span><span>&nbsp;学生ID,t1.C#&nbsp;</span><span class="keyword">as</span><span>&nbsp;课程ID,Score&nbsp;</span><span class="keyword">as</span><span>&nbsp;分数&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC&nbsp;t1&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;score&nbsp;</span><span class="op">IN</span><span>&nbsp;(</span><span class="keyword">Select</span><span>&nbsp;</span><span class="keyword">TOP</span><span>&nbsp;3&nbsp;score&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;t1.C#=&nbsp;C#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ORDER</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;score&nbsp;</span><span class="keyword">DESC</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ORDER</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;t1.C#;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>26、查询每门课程被选修的学生数&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;c#,</span><span class="func">count</span><span>(S#)&nbsp;</span><span class="keyword">from</span><span>&nbsp;sc&nbsp;</span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;C#;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>27、查询出只选修了一门课程的全部学生的学号和姓名&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;SC.S#,Student.Sname,</span><span class="func">count</span><span>(C#)&nbsp;</span><span class="keyword">AS</span><span>&nbsp;选课数&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;SC&nbsp;,Student&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;SC.S#=Student.S#&nbsp;</span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;SC.S#&nbsp;,Student.Sname&nbsp;</span><span class="keyword">having</span><span>&nbsp;</span><span class="func">count</span><span>(C#)=1;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>28、查询男生、女生人数&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;</span><span class="func">count</span><span>(Ssex)&nbsp;</span><span class="keyword">as</span><span>&nbsp;男生人数&nbsp;</span><span class="keyword">from</span><span>&nbsp;Student&nbsp;</span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;Ssex&nbsp;</span><span class="keyword">having</span><span>&nbsp;Ssex=</span><span class="string">'男'</span><span>;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;</span><span class="func">count</span><span>(Ssex)&nbsp;</span><span class="keyword">as</span><span>&nbsp;女生人数&nbsp;</span><span class="keyword">from</span><span>&nbsp;Student&nbsp;</span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;Ssex&nbsp;</span><span class="keyword">having</span><span>&nbsp;Ssex=</span><span class="string">'女'</span><span>；&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>29、查询姓&ldquo;张&rdquo;的学生名单&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;Sname&nbsp;</span><span class="keyword">FROM</span><span>&nbsp;Student&nbsp;</span><span class="keyword">Where</span><span>&nbsp;Sname&nbsp;</span><span class="op">like</span><span>&nbsp;</span><span class="string">'张%'</span><span>;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>30、查询同名同性学生名单，并统计同名人数&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;Sname,</span><span class="func">count</span><span>(*)&nbsp;</span><span class="keyword">from</span><span>&nbsp;Student&nbsp;</span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;Sname&nbsp;</span><span class="keyword">having</span><span>&nbsp;&nbsp;</span><span class="func">count</span><span>(*)&gt;1;;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>31、1981年出生的学生名单(注：Student表中Sage列的类型是datetime)&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;Sname,&nbsp;&nbsp;</span><span class="func">CONVERT</span><span>(</span><span class="keyword">char</span><span>&nbsp;(11),DATEPART(</span><span class="func">year</span><span>,Sage))&nbsp;</span><span class="keyword">as</span><span>&nbsp;age&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;student&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;&nbsp;</span><span class="func">CONVERT</span><span>(</span><span class="keyword">char</span><span>(11),DATEPART(</span><span class="func">year</span><span>,Sage))=</span><span class="string">'1981'</span><span>;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>32、查询每门课程的平均成绩，结果按平均成绩升序排列，平均成绩相同时，按课程号降序排列&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;C#,</span><span class="func">Avg</span><span>(score)&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;C#&nbsp;</span><span class="keyword">order</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;</span><span class="func">Avg</span><span>(score),C#&nbsp;</span><span class="keyword">DESC</span><span>&nbsp;;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>33、查询平均成绩大于85的所有学生的学号、姓名和平均成绩&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;Sname,SC.S#&nbsp;,</span><span class="func">avg</span><span>(score)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;Student,SC&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;Student.S#=SC.S#&nbsp;</span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;SC.S#,Sname&nbsp;</span><span class="keyword">having</span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="func">avg</span><span>(score)&gt;85;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>34、查询课程名称为&ldquo;数据库&rdquo;，且分数低于60的学生姓名和分数&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;Sname,</span><span class="func">isnull</span><span>(score,0)&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;Student,SC,Course&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;SC.S#=Student.S#&nbsp;</span><span class="op">and</span><span>&nbsp;SC.C#=Course.C#&nbsp;</span><span class="op">and</span><span>&nbsp;&nbsp;Course.Cname=</span><span class="string">'数据库'</span><span class="op">and</span><span>&nbsp;score&nbsp;&lt;60;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>35、查询所有学生的选课情况；&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;SC.S#,SC.C#,Sname,Cname&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC,Student,Course&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;SC.S#=Student.S#&nbsp;</span><span class="op">and</span><span>&nbsp;SC.C#=Course.C#&nbsp;;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数；&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;&nbsp;</span><span class="keyword">distinct</span><span>&nbsp;student.S#,student.Sname,SC.C#,SC.score&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;student,Sc&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;SC.score&gt;=70&nbsp;</span><span class="op">AND</span><span>&nbsp;SC.S#=student.S#;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>37、查询不及格的课程，并按课程号从大到小排列&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;c#&nbsp;</span><span class="keyword">from</span><span>&nbsp;sc&nbsp;</span><span class="keyword">where</span><span>&nbsp;scor&nbsp;e&nbsp;&lt;60&nbsp;</span><span class="keyword">order</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;C#&nbsp;;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>38、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名；&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;SC.S#,Student.Sname&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC,Student&nbsp;</span><span class="keyword">where</span><span>&nbsp;SC.S#=Student.S#&nbsp;</span><span class="op">and</span><span>&nbsp;Score&gt;80&nbsp;</span><span class="op">and</span><span>&nbsp;C#=</span><span class="string">'003'</span><span>;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>39、求选了课程的学生人数&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;</span><span class="func">count</span><span>(*)&nbsp;</span><span class="keyword">from</span><span>&nbsp;sc;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>40、查询选修&ldquo;叶平&rdquo;老师所授课程的学生中，成绩最高的学生姓名及其成绩&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;Student.Sname,score&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;Student,SC,Course&nbsp;C,Teacher&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;Student.S#=SC.S#&nbsp;</span><span class="op">and</span><span>&nbsp;SC.C#=C.C#&nbsp;</span><span class="op">and</span><span>&nbsp;C.T#=Teacher.T#&nbsp;</span><span class="op">and</span><span>&nbsp;Teacher.Tname=</span><span class="string">'叶平'</span><span>&nbsp;</span><span class="op">and</span><span>&nbsp;SC.score=(</span><span class="keyword">select</span><span>&nbsp;</span><span class="keyword">max</span><span>(score)</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;C#=C.C#&nbsp;);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>41、查询各个课程及相应的选修人数&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;</span><span class="func">count</span><span>(*)&nbsp;</span><span class="keyword">from</span><span>&nbsp;sc&nbsp;</span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;C#;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>42、查询不同课程成绩相同的学生的学号、课程号、学生成绩&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;</span><span class="keyword">distinct</span><span>&nbsp;&nbsp;A.S#,B.score&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;A&nbsp;&nbsp;,SC&nbsp;B&nbsp;</span><span class="keyword">where</span><span>&nbsp;A.Score=B.Score&nbsp;</span><span class="op">and</span><span>&nbsp;A.C#&nbsp;&lt;&gt;B.C#&nbsp;;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>43、查询每门功成绩最好的前两名&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Select</span><span>&nbsp;t1.S#&nbsp;</span><span class="keyword">as</span><span>&nbsp;学生ID,t1.C#&nbsp;</span><span class="keyword">as</span><span>&nbsp;课程ID,Score&nbsp;</span><span class="keyword">as</span><span>&nbsp;分数&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC&nbsp;t1&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;score&nbsp;</span><span class="op">IN</span><span>&nbsp;(</span><span class="keyword">Select</span><span>&nbsp;</span><span class="keyword">TOP</span><span>&nbsp;2&nbsp;score&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">FROM</span><span>&nbsp;SC&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Where</span><span>&nbsp;t1.C#=&nbsp;C#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ORDER</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;score&nbsp;</span><span class="keyword">DESC</span><span>&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ORDER</span><span>&nbsp;</span><span class="keyword">BY</span><span>&nbsp;t1.C#;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>44、统计每门课程的学生选修人数（超过10人的课程才统计）。要求输出课程号和选修人数，查询结果按人数降序排列，查询结果按人数降序排列，若人数相同，按课程号升序排列&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;&nbsp;C#&nbsp;</span><span class="keyword">as</span><span>&nbsp;课程号,</span><span class="func">count</span><span>(*)&nbsp;</span><span class="keyword">as</span><span>&nbsp;人数&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;&nbsp;sc&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">group</span><span>&nbsp;&nbsp;</span><span class="keyword">by</span><span>&nbsp;&nbsp;C#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">order</span><span>&nbsp;&nbsp;</span><span class="keyword">by</span><span>&nbsp;&nbsp;</span><span class="func">count</span><span>(*)&nbsp;</span><span class="keyword">desc</span><span>,c#&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>45、检索至少选修两门课程的学生学号&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;&nbsp;S#&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;&nbsp;sc&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">group</span><span>&nbsp;&nbsp;</span><span class="keyword">by</span><span>&nbsp;&nbsp;s#&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">having</span><span>&nbsp;&nbsp;</span><span class="func">count</span><span>(*)&nbsp;&nbsp;&gt;&nbsp;&nbsp;=&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>46、查询全部学生都选修的课程的课程号和课程名&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;&nbsp;C#,Cname&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">from</span><span>&nbsp;&nbsp;Course&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">where</span><span>&nbsp;&nbsp;C#&nbsp;&nbsp;</span><span class="op">in</span><span>&nbsp;&nbsp;(</span><span class="keyword">select</span><span>&nbsp;&nbsp;c#&nbsp;&nbsp;</span><span class="keyword">from</span><span>&nbsp;&nbsp;sc&nbsp;</span><span class="keyword">group</span><span>&nbsp;&nbsp;</span><span class="keyword">by</span><span>&nbsp;&nbsp;c#)&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>47、查询没学过&ldquo;叶平&rdquo;老师讲授的任一门课程的学生姓名&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;Sname&nbsp;</span><span class="keyword">from</span><span>&nbsp;Student&nbsp;</span><span class="keyword">where</span><span>&nbsp;S#&nbsp;</span><span class="op">not</span><span>&nbsp;</span><span class="op">in</span><span>&nbsp;(</span><span class="keyword">select</span><span>&nbsp;S#&nbsp;</span><span class="keyword">from</span><span>&nbsp;Course,Teacher,SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;Course.T#=Teacher.T#&nbsp;</span><span class="op">and</span><span>&nbsp;SC.C#=course.C#&nbsp;</span><span class="op">and</span><span>&nbsp;Tname=</span><span class="string">'叶平'</span><span>);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>48、查询两门以上不及格课程的同学的学号及其平均成绩&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;S#,</span><span class="func">avg</span><span>(</span><span class="func">isnull</span><span>(score,0))&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;S#&nbsp;</span><span class="op">in</span><span>&nbsp;(</span><span class="keyword">select</span><span>&nbsp;S#&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;score&nbsp;&lt;60&nbsp;</span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;S#&nbsp;</span><span class="keyword">having</span><span>&nbsp;</span><span class="func">count</span><span>(*)&gt;2)</span><span class="keyword">group</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;S#;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>49、检索&ldquo;004&rdquo;课程分数小于60，按分数降序排列的同学学号&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">select</span><span>&nbsp;S#&nbsp;</span><span class="keyword">from</span><span>&nbsp;SC&nbsp;</span><span class="keyword">where</span><span>&nbsp;C#=</span><span class="string">'004'</span><span class="op">and</span><span>&nbsp;score&nbsp;&lt;60&nbsp;</span><span class="keyword">order</span><span>&nbsp;</span><span class="keyword">by</span><span>&nbsp;score&nbsp;</span><span class="keyword">desc</span><span>;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span>50、删除&ldquo;002&rdquo;同学的&ldquo;001&rdquo;课程的成绩&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">delete</span><span>&nbsp;</span><span class="keyword">from</span><span>&nbsp;Sc&nbsp;</span><span class="keyword">where</span><span>&nbsp;S#=</span><span class="string">'001'</span><span class="op">and</span><span>&nbsp;C#=</span><span class="string">'001'</span><span>;&nbsp;&nbsp;</span></span></li>
</ol>
</div>]]></description>
		</item>
		
			<item>
			<link>http://www.pckno.com/article/ZhengLiJingHuaTieZi.html</link>
			<title><![CDATA[整理精华帖子]]></title>
			<author>tenysw@163.com(admin)</author>
			<category><![CDATA[MSSQL]]></category>
			<pubDate>Tue,16 Mar 2010 19:52:38 +0800</pubDate>
			<guid>http://www.pckno.com/default.asp?id=46</guid>
		<description><![CDATA[<p>行列转换： <br />
<a target="_blank" href="http://topic.csdn.net/u/20080614/17/22e73f33-f071-46dc-b9bf-321204b1656f.html?33238">http://topic.csdn.net/u/20080614/17/22e73f33-f071-46dc-b9bf-321204b1656f.html?33238</a>（总 结帖子） <br />
<a target="_blank" href="http://topic.csdn.net/u/20090912/14/25d2e1b2-f352-4713-8618-d3433ba27bef.html?99104">http://topic.csdn.net/u/20090912/14/25d2e1b2-f352-4713-8618-d3433ba27bef.html?99104</a>（经 典帖子） <br />
<br />
合并分拆表： <br />
<a target="_blank" href="http://topic.csdn.net/u/20080612/22/c850499f-bce3-4877-82d5-af2357857872.html?23514">http://topic.csdn.net/u/20080612/22/c850499f-bce3-4877-82d5-af2357857872.html?23514</a>  <br />
<a target="_blank" title="果果字符串整理系列" href="http://topic.csdn.net/u/20090209/08/a945701c-e0d5-40cb-85f2-f4f56ac2999b.html?95803">果果字符串整理系列</a> <br />
<br />
处理表重复记录 <br />
<a target="_blank" href="http://topic.csdn.net/u/20080626/00/43d0d10c-28f1-418d-a05b-663880da278a.html?85256">http://topic.csdn.net/u/20080626/00/43d0d10c-28f1-418d-a05b-663880da278a.html?85256</a>  <br />
<br />
SSAS系列： <br />
<a target="_blank" title="过渡到SSAS之一：简单模型认识" href="http://topic.csdn.net/u/20090407/13/39868f75-04af-425e-92e6-c9d933582431.html?56614">过渡到SSAS之一：简单模型认识</a> <br />
<a target="_blank" title="过渡到SSAS之二：服务的发布" href="http://topic.csdn.net/u/20090409/01/0578729a-fddd-46b8-b6ad-3eb461b0b407.html?28101">过渡到SSAS之二：服务的发布</a> <br />
<a target="_blank" title="和尚翻译的SSRS的帖子" href="http://topic.csdn.net/u/20080524/12/74758fab-e02f-4c64-806a-01679f4be72f.html?40250">和尚翻译的SSRS的帖子</a> <br />
<br />
SSIS系列： <br />
<br />
<a target="_blank" title="小梁系列之SSIS遍历记录查询邮件" href="http://topic.csdn.net/u/20080909/21/7f722407-7a91-423c-ac29-88c9f3c39690.html?13972">小梁系列之SSIS遍历记录查询邮件</a> <br />
<br />
<a target="_blank" title="小梁系列之SSIS表达式" href="http://topic.csdn.net/u/20091009/22/c9d2f66d-f52e-4e60-8a3b-ab421bfe509e.html">小梁系列之SSIS表达式</a> <br />
<br />
<a target="_blank" title="小梁系列之SSIS &ldquo;查找组件&rdquo; 查找范围内的数据" href="http://topic.csdn.net/u/20091010/00/519bc96b-cd8a-4c22-9844-5b8dad554d90.html">小梁系列之SSIS &ldquo;查找组件&rdquo;  查找范围内的数据</a> <br />
<br />
<a target="_blank" title="小梁系列之SSIS 同步和异步转换" href="http://topic.csdn.net/u/20091010/10/0a4cf763-dd80-439f-a1be-ea71eac0512a.html">小梁系列之SSIS 同步和异步转换</a> <br />
<br />
<a target="_blank" title="小梁系列之SSIS中 &ldquo;条件拆分&rdquo;组件中 ISNUMERIC的问题" href="http://topic.csdn.net/u/20091009/22/c5ff8787-3f58-440e-8343-f394153673b6.html">小梁系列之SSIS中  &ldquo;条件拆分&rdquo;组件中 ISNUMERIC的问题</a> <br />
<br />
<a target="_blank" title="小梁系列之脚本任务中访问记录集RecordSet" href="http://topic.csdn.net/u/20091009/22/b353b41f-fb44-4f28-876a-cd2436b6f761.html">小梁系列之脚本任务中访问记录集 RecordSet</a> <br />
<br />
<a target="_blank" title="小梁系列之SSIS中数据源和数据目标中的&rdquo;保留空值&rdquo;" href="http://topic.csdn.net/u/20091009/22/f1337ce0-5ed3-4904-8722-a3c935702075.html">小梁系列之SSIS中数据源和数据目标中 的&rdquo;保留空值&rdquo;</a> <br />
<br />
<br />
有关SQL注入的帖子： <br />
<a target="_blank" title="SQL注入专题" href="http://topic.csdn.net/u/20081205/09/3dd06076-bcbe-45d4-998c-8999fdbe6fae.html?84220">SQL注入专题</a> <br />
<a target="_blank" href="http://topic.csdn.net/u/20090326/11/5e584897-2dd7-4e10-af1b-9b48b146af8e.html?95281">http://topic.csdn.net/u/20090326/11/5e584897-2dd7-4e10-af1b-9b48b146af8e.html?95281</a>  <br />
<a target="_blank" href="http://topic.csdn.net/u/20090523/19/72041932-b65c-49c1-ad36-d2c63b38b174.html?96607">http://topic.csdn.net/u/20090523/19/72041932-b65c-49c1-ad36-d2c63b38b174.html?96607</a>  <br />
<br />
经典代码系列： <br />
<a target="_blank" title="经典短小代码" href="http://topic.csdn.net/u/20080920/15/424c77bf-7610-4888-be85-9a43e70f55c6.html">经典短小代码</a> <br />
<a target="_blank" title="第一季" href="http://topic.csdn.net/u/20080920/15/61bf31bf-518c-41be-9e4a-b166c878dcaf.html?36289">第一季</a> <br />
<a target="_blank" title="第二季" href="http://topic.csdn.net/u/20090310/17/0b8f60c5-9304-4633-84fa-d176f282cb7d.html?8226">第二季</a> <br />
<a target="_blank" title="最近的一个" href="http://topic.csdn.net/u/20091009/11/5f3ebd1a-de5f-4d92-bc76-0f2103a34b5a.html?48287">最近的一个</a> <br />
<a target="_blank" href="http://topic.csdn.net/u/20080605/15/ca6b25f3-3e60-4b95-ac7e-7d7dc02354e6.html?87229">http://topic.csdn.net/u/20080605/15/ca6b25f3-3e60-4b95-ac7e-7d7dc02354e6.html?87229</a>  <br />
<a target="_blank" title="T-SQL常见基础疑点问答整理(1)" href="http://topic.csdn.net/u/20080726/23/45568F53-069F-472E-80B0-1361A72109DE.html">T-SQL常见基础疑点问答整理(1)</a> <br />
<a target="_blank" title="T-SQL常见基础疑点问答整理(2)" href="http://topic.csdn.net/u/20080728/17/0cdb96bc-9817-4570-8039-fcba3b156be4.html?50658">T-SQL常见基础疑点问答整理(2)</a> <br />
<br />
<br />
石头系列之2005事务与锁定系列 <br />
<a target="_blank" title="事务与锁定第一篇" href="http://topic.csdn.net/u/20090928/13/6b75b40c-c172-4b42-aec9-b20d786a7b67.html?95611">事务与锁定第一篇</a> <br />
<a target="_blank" title="事务与锁定第二篇" href="http://topic.csdn.net/u/20090930/11/7afbb504-9a94-4977-9025-aa78bed6b625.html?32610">事务与锁定第二篇</a> <br />
<a target="_blank" title="事务与锁定第三篇" href="http://topic.csdn.net/u/20091009/11/4b84a03d-01e8-42da-b512-f5228bbdf043.html?11154">事务与锁定第三篇</a> <br />
<a target="_blank" title="事务与锁定第四篇" href="http://topic.csdn.net/u/20091010/14/e92292f9-996c-4b95-8807-74c038a80bf2.html?61195">事务与锁定第四篇</a> <br />
<a target="_blank" title="事务与锁定第五篇" href="http://topic.csdn.net/u/20091012/11/dec84465-a2e7-419d-960d-350cee586be5.html">事务与锁定第五篇</a> <br />
<a target="_blank" title="事务与锁定第六篇" href="http://topic.csdn.net/u/20091019/11/4634bd1a-d225-4d24-a1d7-74f35574b418.html?34313">事务与锁定第六篇</a> <br />
<br />
石头系列之数据库引擎结构 <br />
<a target="_blank" title="数据库引擎结构一" href="http://topic.csdn.net/u/20090921/10/6b8fe89e-183a-4e14-b5fd-cb831f731139.html">数据库引擎结构一</a> <br />
<a target="_blank" title="数据库引擎结构二" href="http://topic.csdn.net/u/20090922/12/1fd4b441-f595-4cf4-bcdf-1aff36a6fdcb.html?85121">数据库引擎结构二</a> <br />
<a target="_blank" title="数据库引擎结构三" href="http://topic.csdn.net/u/20090923/14/f2d4b8f1-6e36-48d6-a04e-98009b80fae9.html?90497">数据库引擎结构三</a> <br />
<br />
各种进制的转换：(来自影子)  <br />
<a target="_blank" href="http://topic.csdn.net/u/20090707/16/9a7b8e46-1467-4373-a195-39d80b826827.html?28501">http://topic.csdn.net/u/20090707/16/9a7b8e46-1467-4373-a195-39d80b826827.html?28501</a>  <br />
<br />
关于数据库的同步的帖子： <br />
<a target="_blank" href="http://topic.csdn.net/u/20080523/11/08e4624a-13d1-4a6c-a9bc-7cfdd721a351.html?4574">http://topic.csdn.net/u/20080523/11/08e4624a-13d1-4a6c-a9bc-7cfdd721a351.html?4574</a>  <br />
<a target="_blank" href="http://topic.csdn.net/u/20080801/11/2f79d062-8049-4ade-a884-01dbaa429135.html?63426">http://topic.csdn.net/u/20080801/11/2f79d062-8049-4ade-a884-01dbaa429135.html?63426</a>  <br />
<a target="_blank" href="http://topic.csdn.net/u/20090520/22/2267467b-0c40-4a5e-8b71-24838be0ff64.html?10943">http://topic.csdn.net/u/20090520/22/2267467b-0c40-4a5e-8b71-24838be0ff64.html?10943</a>  <br />
<a target="_blank" title="两台服务器的相互同步" href="http://topic.csdn.net/u/20081231/10/624c68b9-e9b6-4c01-910f-c116bdd14c63.html?2546">两台服务器的相互同步</a> <br />
<br />
<br />
数据的导入导出部分： <br />
CSV文件批量导入数据库 <br />
<a target="_blank" href="http://topic.csdn.net/u/20091009/11/5f3ebd1a-de5f-4d92-bc76-0f2103a34b5a.html?48287">http://topic.csdn.net/u/20091009/11/5f3ebd1a-de5f-4d92-bc76-0f2103a34b5a.html?48287</a>  <br />
excel导入SQL <br />
<a target="_blank" href="http://topic.csdn.net/u/20090724/00/a479a979-8a20-4abb-a184-8a0ee56608c2.html?86864">http://topic.csdn.net/u/20090724/00/a479a979-8a20-4abb-a184-8a0ee56608c2.html?86864</a>  <br />
BCP： <br />
<a target="_blank" href="http://topic.csdn.net/u/20090720/21/b27734aa-c091-4a6b-96db-f234e2699385.html?84209">http://topic.csdn.net/u/20090720/21/b27734aa-c091-4a6b-96db-f234e2699385.html?84209</a>  <br />
<a target="_blank" href="http://topic.csdn.net/u/20090720/21/b27734aa-c091-4a6b-96db-f234e2699385.html?2600">http://topic.csdn.net/u/20090720/21/b27734aa-c091-4a6b-96db-f234e2699385.html?2600</a>  <br />
<a target="_blank" title="数据的转移" href="http://topic.csdn.net/u/20090728/09/c5cd4ffd-0aa8-4dbb-996f-15453573ce7e.html?74821">数据的转移</a> <br />
<a target="_blank" title="一个比较巧的导法" href="http://topic.csdn.net/u/20090316/11/df7422eb-97b0-4ca0-a5cc-37a068af1723.html?40902">一个比较巧的导法</a> <br />
<br />
数据的分页： <br />
<a target="_blank" href="http://topic.csdn.net/u/20090416/02/4e3cb6d6-707a-4f42-b295-3e9fd5df7691.html?52379">http://topic.csdn.net/u/20090416/02/4e3cb6d6-707a-4f42-b295-3e9fd5df7691.html?52379</a>  <br />
<br />
SQL查询与性能优化系列： <br />
<a target="_blank" title="SQL性能优化综述" href="http://topic.csdn.net/u/20080829/09/c748e875-3abd-4450-b38d-d8b39b60e79f.html?8156">SQL性能优化综述</a> <br />
<a target="_blank" title=" SQL Server查询优化" href="http://topic.csdn.net/u/20080722/21/4501e9cb-a9fa-437e-aaf6-7b629bd26215.html?8600"> SQL Server查询优化</a> <br />
<a target="_blank" title="SQL优化之执行计划" href="http://topic.csdn.net/u/20090819/13/6caa633b-3a88-45f3-a703-0ed91d858e12.html?25870">SQL优化之执行计划</a> <br />
<a target="_blank" title="五种提高SQL性能的方法" href="http://topic.csdn.net/u/20080509/10/c9bee345-3f57-4632-a84d-1673b1e96bf8.html?27517">五种提高SQL性能的方法</a> <br />
<a target="_blank" title="SQL开发的二十一条军规" href="http://topic.csdn.net/u/20080808/14/5c354b26-3556-44f1-a1d7-bbaf53c7ead9.html?94223">SQL开发的二十一条军规</a> <br />
<a target="_blank" title="一千万条数据的优化" href="http://topic.csdn.net/u/20090706/18/66f878a8-b638-463a-a79f-a7f76ebf2af9.html?62722">一千万条数据的优化</a> <br />
<a target="_blank" title="如何提高sql查询100万条数据count(*)汇总的速度" href="http://topic.csdn.net/u/20090428/12/c13a0ffa-d89f-476a-bdb9-af5abcc7b668.html?55617">如何提高sql查询100万条数据 count(*)汇总的速度</a> <br />
<a target="_blank" title="数据库优化汇总" href="http://topic.csdn.net/u/20080716/11/2317d040-48e7-42da-822e-040b4c55b46d.html?95522">数据库优化汇总</a> <br />
<a target="_blank" title="海量数据库的相关处理" href="http://topic.csdn.net/u/20090909/11/b71c160f-18c1-417e-9b8a-fc5bdf1a65bb.html?65406">海量数据库的相关处理</a> <br />
<br />
索引系列： <br />
<a target="_blank" title="全文索引" href="http://topic.csdn.net/u/20090811/23/b16f7081-4597-4835-8455-ebff6095d7d8.html?36587">全文索引</a> <br />
<a target="_blank" title="查看索引信息/生成创建索引脚本" href="http://topic.csdn.net/u/20090309/21/086e97c8-47e7-4ed5-8c77-bf2167bd10a4.html?84810">查看索引信息/生成创建索引脚本</a> <br />
<a target="_blank" title="聚焦索引与非聚焦索引及其查询效率" href="http://topic.csdn.net/u/20080303/11/f3aa3990-20ea-479c-9b15-a5318507291c.html?36056">聚焦索引与非聚焦索引及其查询效率</a> <br />
<br />
递归函数系列： <br />
BOM： <br />
其他： <br />
http://topic.csdn.net/u/20090807/08/19f980a3-3830-4261-90ca-0f85ec628492.html?62247  <br />
<br />
<a target="_blank" title="如何判断一个IP地址在一个IP地址段" href="http://topic.csdn.net/u/20080801/11/506af00d-b882-41a2-99d9-4dc6927101fd.html?1809">如何判断一个IP地址在一个IP地址段</a> <br />
<br />
<a target="_blank" title="身份证号码的转化" href="http://topic.csdn.net/u/20090213/11/67dfa432-0ef2-4930-a5df-6699f77b0637.html?80367">身份证号码的转化</a> <br />
<br />
2005CLR系列： <br />
<br />
<a target="_blank" title="环比运算" href="http://topic.csdn.net/u/20090423/00/bf68f001-c5bb-486b-b473-88101f05727d.html?92964">环比运算</a> <br />
<a target="_blank" title="树结构" href="http://topic.csdn.net/u/20090428/11/01c272bb-d590-49a7-bfd2-713bd48a734d.html?97650">树结构</a> <br />
<a target="_blank" title="天气服务" href="http://topic.csdn.net/u/20090428/19/634f4425-e65e-4764-9bca-0826c7b32494.html?74998">天气服务 </a> <br />
<a target="_blank" title="正则表达式" href="http://topic.csdn.net/u/20090422/22/1a327386-5227-4fee-a27b-eaabb7bb3198.html?6184">正则表达式</a> <br />
<br />
数据库的并发性以及锁相关的帖子： <br />
<a target="_blank" title="一个简单的存储过程产生死锁" href="http://topic.csdn.net/u/20090520/10/d2eac176-afca-4321-9384-45d82a6f010b.html?68881">一个简单的存储过程产生死锁</a> <br />
<a target="_blank" title="单条Update语句是否加事务与锁的关系" href="http://topic.csdn.net/u/20090519/14/f65d4186-5846-4358-bee8-f1e8c259d61c.html?48947">单条Update语句是否加事务与锁的关系</a> <br />
<a target="_blank" title="分析死锁并整理" href="http://topic.csdn.net/u/20080721/20/15a60db6-34b5-4ea1-b392-11c42270aaab.html?68161">分析死锁并整理</a> <br />
<br />
<br />
触发器、存储过程等 <br />
<a target="_blank" title="触发器综述" href="http://topic.csdn.net/u/20081005/11/57061a18-c234-40ee-ba4b-1f4c3bc7f09a.html?93834">触发器综述</a>  <br />
<br />
<a target="_blank" title="触发器删除的一个问题" href="http://topic.csdn.net/u/20090521/17/13147271-a70e-4d57-8b32-ca05db551974.html?67159">触发器删除的一个问题</a> <br />
<br />
分组求前N条数据： <br />
<a target="_blank" title="分组求前N条数据" href="http://topic.csdn.net/u/20090406/21/d801c681-3187-42f3-ab1a-caa9124a9074.html?67857">分组求前N条数据</a> <br />
<br />
数据库的备份与恢复等问题 <br />
<a target="_blank" title="数据库的备份与恢复等问题" href="http://topic.csdn.net/u/20090305/11/dbec3c6e-8cb7-4a2d-b468-02dd587b5e5f.html?39496">数据库的备份与恢复等问题</a> <br />
<a target="_blank" title="还原指定文件夹下的备份" href="http://topic.csdn.net/u/20091005/15/5cd45d13-c962-4d32-b3ff-3fc0255aa05a.html?34919">还原指定文件夹下的备份</a> <br />
<br />
作业： <br />
<a target="_blank" title="自动备份数据库作业" href="http://topic.csdn.net/u/20090506/14/5fd18a29-cf35-49a9-88b6-657b3acac002.html?27112">自动备份数据库作业</a> <br />
<br />
SQL常见的安装问题 <br />
<a target="_blank" title="SQL常见的安装问题" href="http://topic.csdn.net/u/20080720/09/7383a535-2011-40d0-a79f-296f0b7f55c0.html?87785">SQL常见的安装问题</a> <br />
<a target="_blank" title="SQL不能连接的完美解决方案" href="http://topic.csdn.net/u/20080405/06/fc8e48d0-b84c-4642-88f0-390a9295a27e.html?12213">SQL不能连接的完美解决方案</a> <br />
<br />
远程连接操作 整理帖子 <br />
<a target="_blank" title="远程连接操作 整理帖子" href="http://topic.csdn.net/u/20080612/22/bb2dfa83-1cf3-4a0b-9bd4-5a39e6193556.html?50901">远程连接操作 整理帖子 </a> <br />
<br />
自动生成流水号 <br />
<a target="_blank" title="自动生成流水号" href="http://topic.csdn.net/u/20080725/15/29a278e5-98a1-4b8f-85c1-e89d7b367672.html">自动生成流水号</a> <br />
<br />
<a target="_blank" title="求每行的最小的那个字母" href="http://topic.csdn.net/u/20090916/21/05f23c97-d2d8-42e2-8c41-f9704e4ae40d.html?seed=65341401&amp;r=59850648#r_59850648">求每行的最小的那个字母</a> <br />
<br />
数据库的加密 <br />
<a target="_blank" title="数据库的加密" href="http://topic.csdn.net/u/20090905/12/2250d6c9-fbe6-463e-8ef2-597d1af0bb11.html">数据库的加密</a> <br />
<br />
根据时间求某个月所有日期或者某天的所有时间段 <br />
<a target="_blank" title="根据时间求某个月所有日期或者某天的所有时间段" href="http://topic.csdn.net/u/20090906/17/a91cd31e-abf7-4190-8486-c5491aa63c71.html?seed=1380177511&amp;r=59598572#r_59598572">根据时间求某个月所有日期或者某天的所有时间段</a>  <br />
<br />
如何查漏号字段 <br />
<a target="_blank" title="如何查漏号字段" href="http://topic.csdn.net/u/20090713/11/0f4e30d9-2a93-4e4b-900e-ab2734803e3d.html?8463">如何查漏号字段</a> <br />
<br />
多列求最大值或者最小值 <br />
<a target="_blank" title="多列求最大值或者最小值" href="http://topic.csdn.net/u/20091016/16/b0a366ef-24de-4f9f-981f-9b33812c7f80.html?75189">多列求最大值或者最小值</a></p>]]></description>
		</item>
		
			<item>
			<link>http://www.pckno.com/article/ZongJieYiXiaMianDeMeiCiDouDeQuChaKanBieRenDeDongXi.html</link>
			<title><![CDATA[总结一下，免得每次都得去查看别人的东西]]></title>
			<author>tenysw@163.com(admin)</author>
			<category><![CDATA[MSSQL]]></category>
			<pubDate>Tue,16 Mar 2010 19:51:20 +0800</pubDate>
			<guid>http://www.pckno.com/default.asp?id=45</guid>
		<description><![CDATA[<div class="codeText">
<div class="codeHead">SQL代码</div>
<ol start="1" class="dp-sql">
    <li class="alt"><span><span>1:</span><span class="func">replace</span><span>&nbsp;函数&nbsp;&nbsp;</span></span></li>
    <li><span>第一个参数你的字符串，第二个参数你想替换的部分，第三个参数你要替换成什么&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">select</span><span>&nbsp;</span><span class="func">replace</span><span>(</span><span class="string">'lihan'</span><span>,</span><span class="string">'a'</span><span>,</span><span class="string">'b'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li><span>&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;&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;</span></li>
    <li class="alt"><span><span class="comment">-----------------------------</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>lihbn&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li class="alt"><span>=========================================================&nbsp;&nbsp;</span></li>
    <li><span>2:<span class="func">substring</span><span>函数&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>第一个参数你的字符串，第二个是开始替换位置，第三个结束替换位置&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">select</span><span>&nbsp;</span><span class="func">substring</span><span>(</span><span class="string">'lihan'</span><span>,0,3);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">-----&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>li&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li class="alt"><span>=========================================================&nbsp;&nbsp;</span></li>
    <li><span>3:charindex函数&nbsp;&nbsp;</span></li>
    <li class="alt"><span>第一个参数你要查找的<span class="keyword">char</span><span>，第二个参数你被查找的字符串&nbsp;返回参数一在参数二的位置&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">select</span><span>&nbsp;&nbsp;charindex(</span><span class="string">'a'</span><span>,</span><span class="string">'lihan'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">-----------&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>4&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>===========================================================&nbsp;&nbsp;</span></li>
    <li class="alt"><span>4：ASCII函数&nbsp;&nbsp;</span></li>
    <li><span>返回字符表达式中最左侧的字符的&nbsp;ASCII&nbsp;代码值。&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">select</span><span>&nbsp;ASCII(</span><span class="string">'lihan'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">-----------&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>108&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>================================================================&nbsp;&nbsp;</span></li>
    <li><span>5：<span class="keyword">nchar</span><span>函数&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>根据&nbsp;Unicode&nbsp;标准的定义，返回具有指定的整数代码的&nbsp;Unicode&nbsp;字符。&nbsp;&nbsp;</span></li>
    <li><span>参数是介于&nbsp;0&nbsp;与&nbsp;65535&nbsp;之间的正整数。如果指定了超出此范围的值，将返回&nbsp;<span class="op">NULL</span><span>。&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">select</span><span>&nbsp;</span><span class="keyword">nchar</span><span>(3213)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">----&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>unicode字符&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>=========================================================&nbsp;&nbsp;</span></li>
    <li><span>6：soundex&nbsp;&nbsp;</span></li>
    <li class="alt"><span>返回一个由四个字符组成的代码&nbsp;(SOUNDEX)，用于评估两个字符串的相似性。&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;SOUNDEX&nbsp;(</span><span class="string">'lihan'</span><span>),&nbsp;SOUNDEX&nbsp;(</span><span class="string">'lihon'</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">-----&nbsp;-----&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>L546&nbsp;&nbsp;L542&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li class="alt"><span>=========================================================&nbsp;&nbsp;</span></li>
    <li><span>7：<span class="keyword">char</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>参数为介于&nbsp;0&nbsp;和&nbsp;255&nbsp;之间的整数。如果该整数表达式不在此范围内，将返回&nbsp;<span class="op">NULL</span><span>&nbsp;值。&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;</span><span class="keyword">char</span><span>(125)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">----&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>==========================================================&nbsp;&nbsp;</span></li>
    <li class="alt"><span>8：str函数&nbsp;&nbsp;</span></li>
    <li><span>第一个参数必须为数字，第二个参数表示转化成<span class="keyword">char</span><span>型占的位置，小于参数一位置返回*，大于右对齐&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">Select</span><span>&nbsp;str(12345,3)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">----&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>***&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">Select</span><span>&nbsp;str(12345,12)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">------------&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;12345&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li><span>===========================================================&nbsp;&nbsp;</span></li>
    <li class="alt"><span>9：difference函数&nbsp;&nbsp;</span></li>
    <li><span>返回一个整数值，指示两个字符表达式的&nbsp;SOUNDEX&nbsp;值之间的差异。&nbsp;&nbsp;</span></li>
    <li class="alt"><span>返回的整数是&nbsp;SOUNDEX&nbsp;值中相同字符的个数。返回的值从&nbsp;0&nbsp;到&nbsp;4&nbsp;不等：0&nbsp;表示几乎不同或完全不同，4&nbsp;表示几乎相同或完全相同。&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;difference(</span><span class="string">'lihan'</span><span>,</span><span class="string">'liha'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">-----------&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>3&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>==================================================================&nbsp;&nbsp;</span></li>
    <li><span>10：stuff函数（四个参数）&nbsp;&nbsp;</span></li>
    <li class="alt"><span>函数将字符串插入另一字符串。它在第一个字符串中从开始位置删除指定长度的字符；然后将第二个字符串插入第一个字符串的开始位置。&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">Select</span><span>&nbsp;stuff(</span><span class="string">'lihan'</span><span>,2,3,</span><span class="string">'lihan'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">--------&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>llihann&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li class="alt"><span>===============================================================&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>11：<span class="func">left</span><span>函数&nbsp;&nbsp;</span></span></li>
    <li><span>返回最左边N个字符，由参数决定&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">select</span><span>&nbsp;</span><span class="func">left</span><span>(</span><span class="string">'lihan'</span><span>,4)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">-----&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>liha&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li><span>================================================================&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>12&nbsp;<span class="func">right</span><span>函数&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>返回最右边N个字符，由参数决定&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">select</span><span>&nbsp;</span><span class="func">right</span><span>(</span><span class="string">'lihan'</span><span>,4)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">-----&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>ihan&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li class="alt"><span>================================================================&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>13：replicate函数&nbsp;&nbsp;</span></li>
    <li><span>我的认为是把参数一复制参数二次&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">select</span><span>&nbsp;replicate(</span><span class="string">'lihan'</span><span>,4)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">--------------------&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>lihanlihanlihanlihan&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>================================================================&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>14：len函数&nbsp;&nbsp;</span></li>
    <li><span>返回参数长度&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">select</span><span>&nbsp;len(</span><span class="string">'lihan'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">-----------&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>5&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>================================================================&nbsp;&nbsp;</span></li>
    <li class="alt"><span>15：reverse函数&nbsp;&nbsp;</span></li>
    <li><span>反转字符串&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">select</span><span>&nbsp;reverse(</span><span class="string">'lihan'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">-----&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>nahil&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>=================================================================&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>16：<span class="func">lower</span><span>和</span><span class="func">upper</span><span>函数&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>参数大小写转化&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">select</span><span>&nbsp;</span><span class="func">lower</span><span>(</span><span class="func">upper</span><span>(</span><span class="string">'lihan'</span><span>))&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">--------------------&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>lihan&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>====================================================================&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>17：ltrim和rtrim函数&nbsp;&nbsp;</span></li>
    <li class="alt"><span>删除左边空格和右面空格&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">select</span><span>&nbsp;ltrim(</span><span class="string">'&nbsp;&nbsp;&nbsp;&nbsp;lihan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">--------------------------&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>lihan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">select</span><span>&nbsp;rtrim(</span><span class="string">'&nbsp;&nbsp;&nbsp;&nbsp;lihan'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">---------&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;lihan&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>（所影响的行数为&nbsp;1&nbsp;行）&nbsp;&nbsp;</span></li>
</ol>
</div>]]></description>
		</item>
		
			<item>
			<link>http://www.pckno.com/article/SQLServerShuJuKuKaiFaDeErShiYiTiaoJunGuiSQLShouCang.html</link>
			<title><![CDATA[SQL Server数据库开发的二十一条军规(SQL收藏)]]></title>
			<author>tenysw@163.com(admin)</author>
			<category><![CDATA[MSSQL]]></category>
			<pubDate>Tue,16 Mar 2010 19:46:55 +0800</pubDate>
			<guid>http://www.pckno.com/default.asp?id=44</guid>
		<description><![CDATA[<p>如果你正在负责一个基于SQL Server的项目，或者你刚刚接触SQL  Server，你都有可能要面临一些数据库性能的问题，这篇文章会为你提供一些有用的指导（其中大多数也可以用于其它的DBMS）。 <br />
在这里，我 不打算介绍使用SQL  Server的窍门，也不能提供一个包治百病的方案，我所做的是总结一些经验----关于如何形成一个好的设计。这些经验来自我过去几年中经受的教训，一 直来，我看到许多同样的设计错误被一次又一次的重复。<br />
一、了解你用的工具<br />
不要轻视这一点，这是我在这篇文章中讲述的最关键的一条。也许你 也看到有很多的SQL Server程序员没有掌握全部的T-SQL命令和SQL Server提供的那些有用的工具。<br />
&ldquo;什么？我要浪费一个月的 时间来学习那些我永远也不会用到的SQL命令？？？&rdquo;，你也许会这样说。对的，你不需要这样做。但是你应该用一个周末浏览所有的T-SQL命令。在这里， 你的任务是了解，将来，当你设计一个查询时，你会记起来：&ldquo;对了，这里有一个命令可以完全实现我需要的功能&rdquo;，于是，到MSDN查看这个命令的确切语法。<br />
二、 不要使用游标<br />
让我再重复一遍：不要使用游标。如果你想破坏整个系统的性能的话，它们倒是你最有效的首选办法。大多数的初学者都使用游标，而没有意 识到它们对性能造成的影响。它们占用内存，还用它们那些不可思议的方式锁定表，另外，它们简直就像蜗牛。而最糟糕的是，它们可以使你的DBA所能做的一切 性能优化等于没做。不知你是否知道每执行一次FETCH就等于执行一次Select命令？这意味着如果你的游标有10000条记录，它将执行10000次 Select！如果你使用一组Select、Update或者Delete来完成相应的工作，那将有效率的多。<br />
初学者一般认为使用游标是一种比较 熟悉和舒适的编程方式，可很不幸，这会导致糟糕的性能。显然，SQL的总体目的是你要实现什么，而不是怎样实现。<br />
我曾经用T-SQL重写了一个基 于游标的存储过程，那个表只有100,000条记录，原来的存储过程用了40分钟才执行完毕，而新的存储过程只用了10秒钟。在这里，我想你应该可以看到 一个不称职的程序员究竟在干了什么！！！<br />
我们可以写一个小程序来取得和处理数据并且更新数据库，这样做有时会更有效。记住：对于循环，T-SQL 无能为力。<br />
我再重新提醒一下：使用游标没有好处。除了DBA的工作外，我从来没有看到过使用游标可以有效的完成任何工作。<br />
三、规范化你的 数据表<br />
为什么不规范化数据库？大概有两个借口：出于性能的考虑和纯粹因为懒惰。至于第二点，你迟早得为此付出代价。而关于性能的问题，你不需要优 化根本就不慢的东西。我经常看到一些程序员&ldquo;反规范化&rdquo;数据库，他们的理由是&ldquo;原来的设计太慢了&rdquo;，可结果却常常是他们让系统更慢了。DBMS被设计用来 处理规范数据库的，因此，记住：按照规范化的要求设计数据库。<br />
四、不要使用Select * <br />
这点不太容易做到，我太了解了，因为我自己 就经常这样干。可是，如果在Select中指定你所需要的列，那将会带来以下的好处：<br />
1 减少内存耗费和网络的带宽<br />
2  你可以得到更安全的设计<br />
3 给查询优化器机会从索引读取所有需要的列<br />
五、了解你将要对数据进行的操作<br />
为你的数据库创建一个健壮的 索引，那可是功德一件。可要做到这一点简直就是一门艺术。每当你为一个表添加一个索引，Select会更快了，可Insert和Delete却大大的变慢 了，因为创建了维护索引需要许多额外的工作。显然，这里问题的关键是：你要对这张表进行什么样的操作。这个问题不太好把握，特别是涉及Delete和 Update时，因为这些语句经常在Where部分包含Select命令。<br />
六、不要给&ldquo;性别&rdquo;列创建索引<br />
首先，我们必须了解索引是如何加 速对表的访问的。你可以将索引理解为基于一定的标准上对表进行划分的一种方式。如果你给类似于&ldquo;性别&rdquo;这样的列创建了一个索引，你仅仅是将表划分为两部 分：男和女。你在处理一个有1,000,000条记录的表，这样的划分有什么意义？记住：维护索引是比较费时的。当你设计索引时，请遵循这样的规则：根据 列可能包含不同内容的数目从多到少排列，比如：姓名+省份+性别。<br />
七、使用事务<br />
请使用事务，特别是当查询比较耗时。如果系统出现问题，这 样做会救你一命的。一般有些经验的程序员都有体会-----你经常会碰到一些不可预料的情况会导致存储过程崩溃。<br />
八、小心死锁<br />
按照一定的 次序来访问你的表。如果你先锁住表A，再锁住表B，那么在所有的存储过程中都要按照这个顺序来锁定它们。如果你（不经意的）某个存储过程中先锁定表B，再 锁定表A，这可能就会导致一个死锁。如果锁定顺序没有被预先详细的设计好，死锁是不太容易被发现的。<br />
九、不要打开大的数据集<br />
一个经常被提 出的问题是：我怎样才能迅速的将100000条记录添加到ComboBox中？这是不对的，你不能也不需要这样做。很简单，你的用户要浏览100000条 记录才能找到需要的记录，他一定会诅咒你的。在这里，你需要的是一个更好的UI，你需要为你的用户显示不超过100或200条记录。<br />
十、不要使用 服务器端游标<br />
与服务器端游标比起来，客户端游标可以减少服务器和网络的系统开销，并且还减少锁定时间。<br />
十一、使用参数查询<br />
有时， 我在CSDN技术论坛看到类似这样的问题：&ldquo;Select * FROM a Where  a.id='A'B，因为单引号查询发生异常，我该怎么办？&rdquo;，而普遍的回答是：用两个单引号代替单引号。这是错误的。这样治标不治本，因为你还会在其他 一些字符上遇到这样的问题，更何况这样会导致严重的bug，除此以外，这样做还会使SQL Server的缓冲系统无法发挥应有的作用。使用参数查询，  釜底抽薪，这些问题统统不存在了。<br />
十二、在程序编码时使用大数据量的数据库<br />
程序员在开发中使用的测试数据库一般数据量都不大，可经常的是 最终用户的数据量都很大。我们通常的做法是不对的，原因很简单：现在硬盘不是很贵，可为什么性能问题却要等到已经无可挽回的时候才被注意呢？<br />
十 三、不要使用Insert导入大批的数据<br />
请不要这样做，除非那是必须的。使用UTS或者BCP，这样你可以一举而兼得灵活性和速度。<br />
十 四、注意超时问题<br />
查询数据库时，一般数据库的缺省都比较小，比如15秒或者30秒。而有些查询运行时间要比这长，特别是当数据库的数据量不断变大 时。<br />
十五、不要忽略同时修改同一记录的问题<br />
有时候，两个用户会同时修改同一记录，这样，后一个修改者修改了前一个修改者的操作，某些更新 就会丢失。处理这种情况不是很难：创建一个timestamp字段，在写入前检查它，如果允许，就合并修改，如果存在冲突，提示用户。<br />
十六、在细 节表中插入纪录时，不要在主表执行Select MAX(ID)<br />
这是一个普遍的错误，当两个用户在同一时间插入数据时，这会导致错误。你可以使用 SCOPE_IDENTITY，IDENT_CURRENT和IDENTITY。如果可能，不要使用IDENTITY，因为在有触发器的情况下，它会引起 一些问题（详见这里的讨论）。<br />
十七、避免将列设为NULLable<br />
如果可能的话，你应该避免将列设为NULLable。系统会为 NULLable列的每一行分配一个额外的字节，查询时会带来更多的系统开销。另外，将列设为NULLable使编码变得复杂，因为每一次访问这些列时都 必须先进行检查。<br />
我并不是说NULLS是麻烦的根源，尽管有些人这样认为。我认为如果你的业务规则中允许&ldquo;空数据&rdquo;，那么，将列设为 NULLable有时会发挥很好的作用，但是，如果在类似下面的情况中使用NULLable，那简直就是自讨苦吃。<br />
CustomerName1<br />
CustomerAddress1<br />
CustomerEmail1<br />
CustomerName2<br />
CustomerAddress2<br />
CustomerEmail3<br />
CustomerName1<br />
CustomerAddress2<br />
CustomerEmail3<br />
如 果出现这种情况，你需要规范化你的表了。<br />
十八、尽量不要使用TEXT数据类型<br />
除非你使用TEXT处理一个很大的数据，否则不要使用它。因 为它不易于查询，速度慢，用的不好还会浪费大量的空间。一般的，VARCHAR可以更好的处理你的数据。<br />
十九、尽量不要使用临时表<br />
尽量不 要使用临时表，除非你必须这样做。一般使用子查询可以代替临时表。使用临时表会带来系统开销，如果你是用COM+进行编程，它还会给你带来很大的麻烦，因 为COM+使用数据库连接池而临时表却自始至终都存在。SQL Server提供了一些替代方案，比如Table数据类型。<br />
二十、学会分析查询<br />
SQL  Server查询分析器是你的好伙伴，通过它你可以了解查询和索引是如何影响性能的。<br />
二十一、使用参照完整性<br />
定义主健、唯一性约束和外 键，这样做可以节约大量的时间。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.pckno.com/article/SQLZhuRuZhuanTiZhengLiTie.html</link>
			<title><![CDATA[SQL注入专题--整理帖]]></title>
			<author>tenysw@163.com(admin)</author>
			<category><![CDATA[MSSQL]]></category>
			<pubDate>Tue,16 Mar 2010 19:45:06 +0800</pubDate>
			<guid>http://www.pckno.com/default.asp?id=43</guid>
		<description><![CDATA[<p>ＳＱＬ注入是从正常的WWW端口访问，而且表面看起来跟一般的Web页面访问没什么区别，  所以目前市面的防火墙都不会对ＳＱＬ注入发出警报，如果管理员没查看IIS日志的习惯，可能被入侵很长时间都不会发觉。<br />
随着B/S模式应用开发的发展，使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高，程序员的水平及经验也参差不齐，相当大一 部分程序员在编写代码的时候，没有对用户输入数据的合法性进行判断，使应用程序存在安全隐患。用户可以提交一段数据库查询代码，根据程序返回的结果，获得 某些他想得知的数据，这就是所谓的SQL Injection，即SQL注入。<br />
SQL注入是从正常的WWW端口访问，而且表面看起来跟一般的Web页面访问没什么区别，所以目前市面的防火墙都不会对SQL注入发出警报，如果管理员没 查看IIS日志的习惯，可能被入侵很长时间都不会发觉。<br />
但是，SQL注入的手法相当灵活，在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析，构造巧妙的SQL语句，从而成功获取想要的数据，是高 手与&ldquo;菜鸟&rdquo;的根本区别。<br />
SQL注入漏洞全接触--入门篇    <br />
SQL注入是从正常的WWW端口访问，而且表面看起来跟一般的Web页面访问没什么区别，所以目前市面的防火墙都不会对SQL注入发出警报，如果管理员没 查看IIS日志的习惯，可能被入侵很长时间都不会发觉。    <br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449834.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449834.aspx</a><br />
SQL 注入漏洞全接触--进阶篇    <br />
SQL注入的一般步骤，首先，判断环境，寻找注入点，判断数据库类型，其次，根据注入参数类型，在脑海中重构SQL语句的原貌。   <br />
详细内 容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449870.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449870.aspx</a><br />
SQL 注入漏洞全接触--高级篇    <br />
看完入门篇和进阶篇后，稍加练习，破解一般的网站是没问题了。但如果碰到表名列名猜不到，或程序作者过滤了一些特殊字符，怎么提高注入的成功率？怎么样提 高猜解效率？   <br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449883.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449883.aspx</a><br />
SQL 注入法攻击一日通  <br />
SQL注入的简单原理和攻击一般步骤，文章作者想让人一天学会SQL注入攻击。    <br />
详细内 容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449901.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449901.aspx</a><br />
SQL  Server应用程序中的高级SQL注入   <br />
这份文档是详细讨论SQL注入技术，它适应于比较流行的IIS+ASP+SQLSERVER平台。它讨论了哪些SQL语句能通过各种各样的方法注入到应用 程序中，并且记录与攻击相关的数据确认和数据库锁定。      <br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449913.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449913.aspx</a><br />
编 写通用的ASP防SQL注入攻击程序 <br />
如果编写通用的SQL防注入程序一般的http请求不外乎get 和  post,所以只要我们在文件中过滤所有post或者get请求中的参数信息中非法字符即可，所以我们实现http  请求信息过滤就可以判断是是否受到SQL注入攻击。<br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449925.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449925.aspx</a><br />
利 用instr()函数防止SQL注入攻击 <br />
学asp也有一段时间了，这几天一直在写自己的程序，也遇到了好多问题，我就不得不得考虑到一些现在的漏洞，比如，&lsquo; 或 and  1=1等等的一些漏洞！别的先不管，今天我就来说说如何堵这个漏洞！详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449932.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449932.aspx</a><br />
SQL 注入攻击的原理及其防范措施     <br />
ASP编程门槛很低，新手很容易上路。在一段不长的时间里，新手往往就已经能够编出看来比较完美的动态网站，在功能上，老手能做到的，新手也能够做到。<br />
详 细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449940.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449940.aspx</a><br />
跨 站式SQL注入技巧  <br />
学习如何从数据库中获取想要获得的内容。<br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449948.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449948.aspx</a><br />
防 范Sql注入式攻击    <br />
Sql注入式攻击是指利用设计上的漏洞，在目标服务器上运行Sql 命令以及进行其他方式的攻击  动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。<br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449951.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449951.aspx</a><br />
Dreamweaver 中sql注入式攻击的防范     <br />
在安全性方面，新手最容易忽略的问题就是SQL注入漏洞的问题。用NBSI  2.0对网上的一些ASP网站稍加扫描，就能发现许多ASP网站存在SQL注入漏洞。详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449953.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449953.aspx</a><br />
PHP 与SQL注入攻击     <br />
SQL注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验，那么常容易遭到SQL注入攻击。SQL注入攻击通常通过给站点数据 库提交不良的数据或查询语句来实现，很可能使数据库中的纪录遭到暴露，更改或被删除。下面来谈谈SQL注入攻击是如何实现的，又如何防范。<br />
详细内 容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449956.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449956.aspx</a><br />
SQL 注入攻击零距离    <br />
一次次的SQL注射入侵，一次次的网站被黑，总是那句话，漏洞在所难免，难道一点办法都没吗？这篇文章就是为大家解析下SQL注  射的原理，以及给出一些预防方法。<br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449959.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449959.aspx</a><br />
SQL 注入技术和跨站脚本攻击的检测    <br />
在最近两年中，安全专家应该对网络应用层的攻击更加重视。因为无论你有多强壮的防火墙规则设置或者非常勤于补漏的修补机制，如果你的网络应用程序开发者没 有遵循 安全代码进行开发，攻击者将通过80端口进入你的系统。<br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449961.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449961.aspx</a><br />
菜 鸟入门级：SQL注入攻击     <br />
一般国内的小一点的新闻站点程序 都有 &quot;&quot;&amp;request 这种漏洞，下面我讲解攻击方法。<br />
详 细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449963.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449963.aspx</a><br />
三 步堵死SQL注入漏洞     <br />
防御SQL注入有妙法，第一步：很多新手从网上下载SQL通用防注入系统的程序，在需要防范注入的页面头部用  来防止别人进行手动注入测试.<br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449965.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449965.aspx</a><br />
SQL 注入实战---利用&ldquo;dbo&rdquo;获得SQL管理权限和系统权限    <br />
如果显示&ldquo;dbo&rdquo; 转换数据类型为 int 的列时发生语法错误  那么就可以用我下面介绍的方法来获得系统管理权限，如果是&ldquo;abc&rdquo; 转换数据类型为 int 的列时发生语法错误  那么就用不能用我下面的介绍来获得系统权限了.<br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449967.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449967.aspx</a><br />
两 个防SQL注入过滤代码    <br />
SQL注入防护的一种简单方法，在网页中嵌入过滤代码，基于认为的安全防护措施.<br />
详细内 容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449969.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449969.aspx</a><br />
蓝 雨设计整站SQL注入漏洞    <br />
以下文章中就会出现NOWA修改系统漏洞当中从未有的SQL注入漏洞！只怪蓝雨修改程序的时候没有做好注入问题了！这个可不能怪我！谁叫人家程序设计员不 会注意安全死角阿？<br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449972.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449972.aspx</a><br />
SQL 注入渗透某网络安全公司的网站全过程     <br />
写这篇文章不是为了告诉大家如何去做入侵，而是希望提醒大家:&ldquo;入侵是偶然的，但安全并不是必然的&rdquo;，不要疏忽运作上的一些小细节。<br />
详细内 容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449973.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449973.aspx</a><br />
sql 注入防御    <br />
SQL注入通过网页对网站数据库进行修改。它能够直接在数据库中添加具有管理员权限的用户，从而最终获得系统管理员权限。黑客可以利用获得的管理员权限任 意获得网站上的文件或者在网页上加挂木马和各种恶意程序，对网站和访问该网站的网友都带来巨大危害.详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449976.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449976.aspx</a><br />
终 极防范SQL注入漏洞     <br />
其实SQL注入漏洞并不可怕，知道原理 ＋  耐心仔细，就可以彻底防范！下面给出4个函数，足够你抵挡一切SQL注入漏洞！读懂代码，你就能融会贯通.详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449979.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449979.aspx</a><br />
SQL 注入与ASP木马上传    <br />
SQL注入后，如何上传木马，一直是比较头疼的事，我这里提供上传木马的一种另一种方法。<br />
1、SQL注 入的时候，用xp_cmdshell 向服务器上写入一个能写文件的asp文件.<br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449983.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449983.aspx</a><br />
如 何在SQL注入时保护数据库     <br />
SQL注入是防止数据库攻击的一个有效策略。攻击者将注入一个SQL语句到另外一个语句中，这个通常会损坏你的数据库。有数据库接口的Web站点通常在 SQL注入的时候容易受到攻击，因为它们是基于动态的SQL.<br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449986.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449986.aspx</a><br />
天 晨设计整站SQL注入漏洞     <br />
作者从一个安全工作员的角度，对天晨设计整站SQL注入漏洞做出了详细的测试.<br />
详细内 容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449988.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449988.aspx</a><br />
浅 谈sql注入式(SQL injection)攻击与防范    <br />
没有系统的学习过asp或者php编程，也没有系统的学习过access、sqlserver、mysql等数据库，所以我不是一个程序员，虽然经常干一 些类似程序员的事情.<br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449991.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449991.aspx</a><br />
用 vbs来写sql注入等80端口的攻击脚本  <br />
昨天晚上在机器里乱翻时无意打开一个vbs脚本,突然发现一个以前没有见过的对象Test.SendRequest(&quot;http://&quot; &amp;  g_sServer &amp; &quot;/testfiles/browser.asp&quot;),虽然对象没有见过,但是意思很明显:发送http请求.<br />
详 细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449992.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449992.aspx</a><br />
C#  检查字符串,防SQL注入攻击    <br />
这些天,CSDN上讨论SQL注入攻击似乎是如火如荼啊...我也来参合一下..如下,CheckParams函数,接收参数任意,如参数中有字符串,则 对字符串进行检查,如参数中有集合(如Array之类,总之是实现了ICollection的),则对集合中的字符串元素进行检查.<br />
详细内 容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449994.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449994.aspx</a><br />
关 于对SQL注入80004005 及其它错误消息分析    <br />
本文详细讲述了 Microsoft 数据访问组件 (MDAC) 收到  0x800040005 错误的一些常见原因，MDAC 包括 ActiveX 数据对象、OLE DB 和远程数据服务  (RDS)。同时，本文还讨论了其它一些错误消息，包括 80040e21、80040e14 和80040e10.<br />
详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449996.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3449996.aspx</a><br />
SQL 注入入侵动网SQL版论坛<br />
现在动网最新版本是7.0+SP2。应该说安全性已经是很高的了。所以从脚本本身的问题去突破它难度不小。但是我们可以从外部的一些途径间接&ldquo;搞定&rdquo;动 网.现在IIS+ASP+SQL2000的组合是比较常见的。而一个网站运用大量的ASP脚本程序，难免不出纰漏。如果一台主机上存在某个SQL注入点， 而这台主机又安装有动网SQL版的话，基本上可以得出结论：这个动网就是你的了。下面来看一下实例.详细内容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3450001.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3450001.aspx</a><br />
利 用SQL注入2分钟入侵网站全程实录    <br />
说起流光、溯雪、乱刀，可以说是大名鼎鼎无人不知无人不晓，这些都是小榕哥的作品。每次一提起小榕哥来，我的崇拜景仰就如滔滔江水，连绵不绝~~~~（又 来了！）  让我们崇拜的小榕哥最新又发布了SQL注入工具，这回喜欢利用SQL注入入侵网站的黑友们有福了。小榕哥的工具就是强！偶用它来搞定我们本地的信息港，从 寻找注入漏洞到注入攻击成功，通过准确计时，总共只用了3分还差40秒，呵呵，王者风范，就是强啊！不信吗？看看我的入侵过程吧.<br />
详细内 容&gt;&gt;<br />
<a target="_blank" href="http://blog.csdn.net/wufeng4552/archive/2008/12/05/3450005.aspx">http://blog.csdn.net/wufeng4552/archive/2008/12/05/3450005.aspx</a></p>]]></description>
		</item>
		
			<item>
			<link>http://www.pckno.com/article/SqlServerShuYuXueXiBiaoYi.html</link>
			<title><![CDATA[sql server术语学习表一]]></title>
			<author>tenysw@163.com(admin)</author>
			<category><![CDATA[MSSQL]]></category>
			<pubDate>Tue,16 Mar 2010 19:44:04 +0800</pubDate>
			<guid>http://www.pckno.com/default.asp?id=42</guid>
		<description><![CDATA[<p>&ldquo;(全部)&rdquo;级别 ((All) level) <br />
&ldquo;全部&rdquo;成员 (All member) <br />
ActiveX 数据对象  (ActiveX Data Objects) <br />
ActiveX 数据对象（多维）(ADO MD) (ActiveX Data  Objects (Multidimensional) (ADO MD)) <br />
ANSI 到 OEM 的转换 (ANSI to OEM  conversion) <br />
API 服务器游标 (API server cursor) <br />
bcp 实用工具 (bcp  utility) <br />
bcp 文件 (bcp files) <br />
bigint 数据类型 (bigint data type) <br />
binary 数据类型 (binary data type) <br />
bit 数据类型 (bit data type) <br />
char  数据类型 (char data type) <br />
CHECK 约束 (CHECK constraints) <br />
CLR 触发器  (CLR trigger) <br />
CLR 存储过程 (CLR stored procedure) <br />
CLR 函数 (CLR  function) <br />
CLR 用户定义类型 (CLR user-defined type) <br />
COM 结构化存储文件  (COM-structured storage file) <br />
CPU 忙 (CPU busy) <br />
DataReader <br />
datetime 数据类型 (datetime data type) <br />
DDL 触发器 (DDL trigger) <br />
decimal 数据类型 (decimal data type) <br />
DEFAULT 约束 (DEFAULT constraint) <br />
DML 触发器 (DML trigger) <br />
DSN <br />
DTS 包 (DTS package) <br />
DTS 包模板  (DTS package template) <br />
ETL <br />
float 数据类型 (float data type) <br />
guest <br />
image 数据类型 (image data type) <br />
int (integer) 数据类型 (int  (integer) data type) <br />
master 数据库 (master database) <br />
Microsoft  消息队列 (Microsoft Message Queuing) <br />
model 数据库 (model database) <br />
money 数据类型 (money data type) <br />
MSMQ <br />
MSX <br />
nchar 数据类型 (nchar  data type) <br />
niladic 函数 (niladic functions) <br />
ntext 数据类型 (ntext  data type) <br />
NULL <br />
nvarchar 数据类型 (nvarchar data type) <br />
ODBC  驱动程序 (ODBC driver) <br />
ODBC 数据源 (ODBC data source) <br />
OLE DB <br />
OLE  DB 访问接口 (OLE DB provider) <br />
OLE DB 使用者 (OLE DB consumer) <br />
OLE  自动化对象 (OLE Automation objects) <br />
OLE 自动化服务器 (OLE Automation server) <br />
OLE 自动化控制器 (OLE Automation controller) <br />
pubs 数据库 (pubs database) <br />
real 数据类型 (real data type) <br />
Select <br />
smalldatetime 数据类型  (smalldatetime data type) <br />
smallint 数据类型 (smallint data type) <br />
smallmoney 数据类型 (smallmoney data type) <br />
SQL Mail <br />
SQL Server  身份验证 (SQL Server Authentication) <br />
SQL Server 事件转发服务器 (SQL Server  Event Forwarding Server) <br />
SQL 表达式 (SQL e&#173;xpression) <br />
SQL 查询 (SQL  query) <br />
SQL 排序规则 (SQL collation) <br />
SQL 数据库 (SQL database) <br />
SQL 语句 (SQL statement) <br />
sql_variant 数据类型 (sql_variant data type) <br />
SQL-92 <br />
tempdb 数据库 (tempdb database) <br />
text 数据类型 (text data  type) <br />
theta 联接 (theta join) <br />
timestamp 数据类型 (timestamp data  type) <br />
tinyint 数据类型 (tinyint data type) <br />
Transact-SQL <br />
Transact-SQL 游标 (Transact-SQL cursor) <br />
TSX <br />
Unicode <br />
Unicode  格式 (Unicode format) <br />
Unicode 排序规则 (Unicode collation) <br />
UNIQUE  约束 (UNIQUE constraints) <br />
uniqueidentifier 数据类型 (uniqueidentifier  data type) <br />
uniqueifier <br />
varbinary 数据类型 (varbinary data type) <br />
varchar 数据类型 (varchar data type) <br />
Web 同步 (Web synchronization) <br />
Where 子句 (Where clause) <br />
Windows Management Instrumentation <br />
Windows 排序规则 (Windows collation) <br />
WMI <br />
WMI 查询语言 (WMI Query  Language) <br />
WQL <br />
安全标识符 (SID) (Security Identifier (SID)) <br />
安全扩展插件 (security extension) <br />
安全套接字层 (SSL) <br />
安装程序初始化文件 (Setup  initialization file) <br />
按范围分区 (range partitioning) <br />
暗示性权限 (implied  permission) <br />
半累加性度量值 (semiadditive measure) <br />
绑定 (binding) <br />
保存点 (savepoint) <br />
报表处理扩展插件 (report processing extension) <br />
报表定义  (report definition) <br />
报表服务器管理员 (report server administrator) <br />
报表快照 (report snapshot) <br />
报表模型 (report model) <br />
备份 (back up) <br />
备份 (backup) <br />
备份集 (backup set) <br />
备份媒体 (backup media) <br />
备份设备  (backup device) <br />
备份文件 (backup file) <br />
备用服务器 (standby server) <br />
备用文件 (standby file) <br />
备注 (memo) <br />
被链接表 (linked table) <br />
被引用键  (referenced key) <br />
本地登录标识 (local login identification) <br />
本地订阅  (local subscription) <br />
本地多维数据集 (local cube) <br />
本地分发服务器 (local  Distributor) <br />
本地分区视图 (local partitioned view) <br />
本地服务器 (local  server) <br />
本地组 (local group) <br />
本机格式 (native format) <br />
编写复制脚本  (replication scripting) <br />
变化的维度 (changing dimension) <br />
变量  (variable) <br />
标记 (token) <br />
标记化 (tokenization) <br />
标量聚合 (scalar  aggregate) <br />
标识符 (identifier) <br />
标识列 (identity column) <br />
标识属性  (identity property) <br />
表 (table) <br />
表达式 (e&#173;xpression) <br />
表格格式数据流  (TDS) (tabular data stream (TDS)) <br />
表级约束 (table-level constraint) <br />
表扫描 (table scan) <br />
表数据类型 (table data type) <br />
表锁 (table lock) <br />
别名 (alias) <br />
别名 (nickname) <br />
别名数据类型 (alias data type) <br />
并发  (concurrency) <br />
不对称层次结构 (unbalanced hierarchy) <br />
不感知游标  (insensitive cursor) <br />
不可重复读 (nonrepeatable read) <br />
不齐整层次结构  (ragged hierarchy) <br />
布尔值 (Boolean) <br />
步骤对象 (step object) <br />
部分备份  (partial backup) <br />
部分差异备份 (partial differential backup) <br />
参数化  (parameterization) <br />
参数化报表 (parameterized report) <br />
参数化行筛选器  (parameterized row filter) <br />
操作 (action) <br />
层次结构 (hierarchy) <br />
插入查询 (Insert query) <br />
插入值查询 (Insert Values query) <br />
查询优化器 (query  optimizer) <br />
查找表 (lookup table) <br />
差异备份 (differential backup) <br />
差异数据库备份 (differential database backup) <br />
常规多维数据集 (regular cube) <br />
常规维度 (regular dimension) <br />
常量 (constant) <br />
超大型维度 (very large  dimension) <br />
超文本标记语言 (HTML) (Hypertext Markup Language (HTML)) <br />
撤消 (undo) <br />
成员 (member) <br />
成员变量 (member variable) <br />
成员键列 (member  key column) <br />
成员名列 (member name column) <br />
成员委托 (member  delegation) <br />
成员属性 (member property) <br />
成员组 (member group) <br />
呈现的报表 (rendered report) <br />
呈现扩展插件 (rendering extension) <br />
程序集  (assembly) <br />
持久化计算列 (persisted computed column) <br />
持久性  (persistence) <br />
初始快照 (initial snapshot) <br />
初始同步 (initial  synchronization) <br />
触发器 (trigger) <br />
传递查询 (pass-through query) <br />
传递扩展插件 (delivery extension) <br />
传递顺序 (pass order) <br />
传递语句  (pass-through statement) <br />
串联 (concatenation) <br />
垂直分区 (vertical  partitioning) <br />
垂直筛选 (vertical filtering) <br />
纯日志备份 (pure log  backup) <br />
词干分析器 (stemmer) <br />
磁带备份 (tape backup) <br />
存储过程 (stored  procedure) <br />
存储库 (repository) <br />
存储库 SQL 架构 (Repository SQL schema)  <br />
存储库对象 (repository object) <br />
存储库类型信息模型 (RTIM) (Repository Type  Information Model (RTIM)) <br />
存储库引擎 (repository engine) <br />
存档文件  (archive file) <br />
错误日志 (error log) <br />
错误状态号 (error state number) <br />
大级别 (large level) <br />
大容量操作日志备份 (bulk log backup) <br />
大容量导出 (bulk  export) <br />
大容量导入 (bulk import) <br />
大容量日志恢复模式 (bulk-logged recovery  model) <br />
代码页 (code page) <br />
单用户模式 (single-user mode) <br />
单元 (cell)  <br />
单元集 (cellset) <br />
递归分区 (recursive partitioning) <br />
点击链接型报表  (clickthrough report) <br />
调用级接口 (call-level interface (CLI)) <br />
订阅  (subscribe) <br />
订阅 (subscription) <br />
订阅方 (Subscriber) <br />
订阅服务器  (subscribing server) <br />
订阅过期时间 (subscription expiration period) <br />
订阅数据库 (subscription database) <br />
定位更新 (positioned update) <br />
定型数据集  (training data set) <br />
动态 SQL 语句 (dynamic SQL statements) <br />
动态恢复  (dynamic recovery) <br />
动态快照 (dynamic snapshot) <br />
动态筛选器 (dynamic  filter) <br />
动态锁定 (dynamic locking) <br />
动态游标 (dynamic cursor) <br />
度量值  (measure) <br />
段落还原 (piecemeal restore) <br />
断字 (word-breaking) <br />
断字符  (word breaker) <br />
队列 (queue) <br />
对等复制 (peer-to-peer replication) <br />
对齐 (alignment) <br />
对象 (object) <br />
对象变量 (object variable) <br />
对象标识符  (object identifier) <br />
对象依赖关系 (object dependencies) <br />
多对多关系  (many-to-many relationship) <br />
多对一关系 (many-to-one relationship) <br />
多服务器管理 (multiserver administration) <br />
多个实例 (multiple instances) <br />
多基准差异备份 (multibase differential) <br />
多维 OLAP (MOLAP) (multidimensional  OLAP (MOLAP)) <br />
多维表达式 (MDX) (Multidimensional Expressions (MDX)) <br />
多维结构 (multidimensional structure) <br />
多维数据集 (cube) <br />
多维数据集角色 (cube  role) <br />
多线程服务器应用程序 (multithreaded server application) <br />
多用户  (multiuser) <br />
多重继承 (multiple inheritance) <br />
二进制大型对象 (binary large  object) <br />
发布 (publication) <br />
发布保持期 (publication retention period) <br />
发布表 (publishing table) <br />
发布服务器 (Publisher) <br />
发布服务器 (publishing  server) <br />
发布数据库 (publication database) <br />
反身关系 (reflexive  relationship) <br />
返回参数 (return parameters) <br />
范围查询 (range query) <br />
方法 (method) <br />
访问接口 (provider) <br />
非聚集索引 (nonclustered index) <br />
非强制关系 (unenforced relationship) <br />
非叶 (nonleaf) <br />
非叶成员 (nonleaf  member) <br />
分布式查询 (distributed query) <br />
分布式分区视图 (distributed  partitioned view) <br />
分布式事务 (distributed transaction) <br />
分段  (segmentation) <br />
分发 (distribute) <br />
分发保持期 (distribution retention  period) <br />
分发服务器 (Distributor) <br />
分发数据库 (distribution database) <br />
分隔符 (delimiter) <br />
分配单元 (allocation unit) <br />
分区 (partition) <br />
分区  (partitioning) <br />
分区方案 (partition scheme) <br />
分区函数 (partition  function) <br />
分区快照 (partitioned snapshot) <br />
分区依据列 (partitioning  column) <br />
分析服务器 (Analysis server) <br />
服务器订阅 (server subscription) <br />
服务器名称 (server name) <br />
服务器游标 (server cursor) <br />
辅助服务器 (secondary  server) <br />
辅助数据库 (secondary database) <br />
父级 (parent) <br />
复制  (replication) <br />
复制冲突查看器 (Replication Conflict Viewer) <br />
复制的数据  (replicated data) <br />
复制监视器 (Replication Monitor) <br />
复制拓扑  (replication topology) <br />
干扰词 (noise word) <br />
隔离级别 (isolation level)  <br />
跟踪令牌 (tracer token) <br />
跟踪文件 (trace file) <br />
更改脚本 (change  script) <br />
更新 (update) <br />
更新查询 (Update query) <br />
更新锁 (update lock)  <br />
更新统计信息 (update statistics) <br />
工具 (tool) <br />
公共语言运行时 (common  language runtime) <br />
共享锁 (shared lock) <br />
共享维度 (shared dimension) <br />
固定服务器角色 (fixed server role) <br />
固定数据库角色 (fixed database role) <br />
关键字  (keyword) <br />
关系 (relationship) <br />
关系 OLAP (ROLAP) (relational OLAP  (ROLAP)) <br />
关系对象 (relationship object) <br />
关系类型 (relationship type) <br />
关系数据库 (relational database) <br />
关系数据库管理系统 (RDBMS) (relational database  management system (RDBMS)) <br />
归置 (collocation) <br />
规范化规则  (normalization rules) <br />
规则 (rule) <br />
规则 (rules) <br />
滚动 (scroll) <br />
国际标准化组织 (ISO) (International organization for Standardization (ISO)) <br />
国际电工技术委员会 (IEC) (International Electrotechnical Commission (IEC)) <br />
过程缓存 (procedure cache) <br />
过度适应 (overfitting) <br />
函数 (function) <br />
合并 (merge) <br />
合并复制 (merge replication) <br />
后代 (descendant) <br />
候选键  (candidate key) <br />
还原 (restore) <br />
还原顺序 (restore sequence) <br />
缓存老化  (cache aging) <br />
幻影 (phantom) <br />
恢复 (recover) <br />
恢复 (recovery) <br />
恢复点 (recovery point) <br />
恢复分叉点 (recovery fork point) <br />
恢复分支  (recovery branch) <br />
恢复间隔 (recovery interval) <br />
恢复路径 (recovery  path) <br />
恢复模式 (recovery model) <br />
回滚 (roll back) <br />
混合 OLAP  (HOLAP) (hybrid OLAP (HOLAP)) <br />
活动语句 (active statement) <br />
伙伴  (partner) <br />
基本数据类型 (base data type) <br />
基表 (base table) <br />
基础表  (underlying table) <br />
基准备份 (base backup) <br />
级别 (level) <br />
级别  (rank) <br />
级联更新 (cascading update) <br />
级联删除 (cascading delete) <br />
计划备份 (scheduled backup) <br />
计划强制 (plan forcing) <br />
计划指南 (plan guide) <br />
计算成员 (calculated member) <br />
计算传递 (calculation pass) <br />
计算公式  (calculation formula) <br />
计算机 DSN (machine DSN)</p>]]></description>
		</item>
		
			<item>
			<link>http://www.pckno.com/article/SQLServerDeChuFaQi.html</link>
			<title><![CDATA[SQL Server的触发器]]></title>
			<author>tenysw@163.com(admin)</author>
			<category><![CDATA[MSSQL]]></category>
			<pubDate>Tue,16 Mar 2010 19:36:17 +0800</pubDate>
			<guid>http://www.pckno.com/default.asp?id=39</guid>
		<description><![CDATA[<br/>[1].触发器的概念<br/>触发器是一种特殊类型的存储过程，当指定表中的数据发生变化时触发器自动生效。它与表紧密相连，可以看做是表定义的一部分。触发器不能通过名称被直接调用，更不允许设置参数。<br/><br/>在SQL Server中一张表可以有多个触发器。用户可以跟据Ins&#101;rt、Up&#100;ate或Del&#101;te语句对触发器进行设置，也可以对一张表上的特定操作设置多个触发器。触发器可以包含复杂的Transact-SQL语句。不论触发器所进行的操作有多复杂，触发器都只作为一个独立的单元被执行，被看作是一个事务。如果在执行触发器的过程中发生了错误，则整个事务将会自动回滚。<br/><br/>[2].触发器的优点<br/>1．触发器自动执行<br/>对表中的数据进行修改后，触发器立即被激活。<br/><br/>2．可以调用存储过程<br/>为了实现复杂的数据库更新操作，触发器可以调用一个或多个存储过程，甚至可以通过调用外部过程（不是数据库管理系统本身）完成相应的操作。<br/><br/>3．可以强化数据条件约束<br/>触发器能够实现比CHECK约束更为复杂的数据完整性约束。在数据库中，为了实现数据完整性约束，可以使用CHECK约束或触发器。CHECK约束不允许引用其他表中的列来完成检查工作，而触发器可以引用其他表中的列。它更适合在大型数据库管理系统中用来约束数据的完整性。<br/><br/>4．触发器可以楚止或回滚违反引用完整性的更改<br/>触发器可以检测数据库内的操作，从而取消了数据库未经许可的更新操作，使数据库修改、更新操作更安全，数据库的运行也更稳定。<br/><br/>5．级联、并行运行<br/>触发器能够对数据库中的相关表实现级联更改。触发器是基于一个表创建的，但是可以针对多个表进行操作，实现数据库中相关表的级联更改。<br/><br/>6．同表多触发器<br/>一个表中可以同时存在3个不同操作的触发器（Ins&#101;rt、Up&#100;ate和Del&#101;te）。<br/><br/>[3].触发器的种类<br/>SQL Server支持两种类型的触发器：AFTER触发器和INSTEAD OF触发器。<br/><br/>AFTER触发器又称为后触发器，该类触发器是在引起触发器执行的修改语句成功完成后执行。此类触发器只有在执行某一操作（Ins&#101;rt、Up&#100;ate和Del&#101;te）之后，触发器才被触发，如果修改语句错误，触发器将不会执行。AFTER触发器只能定义在表上，不能创建在视图上，但可以为针对表的同一操作定义多个触发器。可使用sp_settriggerorder指定表上第一个和最后一个执行的AFTER触发器，在表上只能为每个INSETR、Up&#100;ate和Del&#101;te操作规程指定第一个执行和最后一个执行的AFTER触发器。<br/><br/>INSTEAD OF触发器又称为替代触发器，当引起触发器执行的修改语句停止时，该类触发器代替触发操作执行。它可以在表上定义，也可以在视图上定义。对于每个触发操作（Ins&#101;rt、Up&#100;ate和Del&#101;te），只能定义一个INSTEAD OF触发器。<br/><br/>INSTEAD OF触发器与AFTER触发器的最大不同之处在于INSTEAD OF触发器并不是在执行预定义的操作（如Ins&#101;rt、Up&#100;ate和Del&#101;te）时被触发，而仅仅是执行触发器本身。<br/><br/>[4].触发器的创建<br/><br/>1．使用企业管理器创建触发器<br/><br/>在企业管理器中为数据库“MR_SQL”中的“MR_Stu_XX”表创建一个名为“TRI_StuXX_Ins&#101;rt”的触发器，实现在“MR_Stu_XX”表中添加数据时，在“TRI_pp”表中自动添加数据。<br/><br/>操作步骤如下：<br/><br/>（1）在操作系统的任务栏中单击“开始”菜单，选择“程序”→“Microsoft SQL Server”→“企业管理器” 命令，打开控制台目录。<br/><br/>（2）在控制台目录中依次展开Microsoft SQL Server、SQL Server组、服务器、数据库的节点。<br/><br/>（3）选择指定数据库中的指定表，单击鼠标右键，在快捷菜单中选择“所有任务”→“管理触发器”命令。<br/><br/>（4）执行“管理触发器”命令后，打开“触发器属性”对话框，如图1所示。在“名称”文本框中输入触发器的名称，例如用触发器名“TRI_StuXX_Ins&#101;rt”替换[TRIGGER NAME]，如图2所示。<br/><br/>（5）删除FOR关键字后面的Up&#100;ate和Del&#101;te，使触发器具有添加（Ins&#101;rt）功能，如果让触发器具有更新或删除的功能，在FOR关键字后面保留Up&#100;ate或Del&#101;te，Ins&#101;rt 、Up&#100;ate和Del&#101;te可以同时使用。<br/><br/>（6）在“文本”文本框中输入触发器文本，SQL语句如下。<br/>Ins&#101;rt INTO TRI_pp (MR_id,MR_name,MR_char,MR_sum,MR_eng) VALUES (&#39;001&#39;,&#39;张三&#39;,0.0,0.0,0.0)<br/><br/>（7）如果没有任何错误，单击“应用”按钮，将触发器保存到数据库中。<br/><br/><br/>2．使用Transact-SQL创建触发器<br/><br/>Cr&#101;ate TRIGGER语句用于创建触发器，触发器是一种特殊的存储过程，在用户试图对指定的表执行指定的数据修改语句时自动执行。 SQL Server 允许为任何给定的Ins&#101;rt、Up&#100;ate或Del&#101;te语句创建多个触发器。<br/><br/>语法：<br/><br/>Cr&#101;ate TRIGGER trigger_name<br/><br/>ON { table | view }<br/><br/>[ WITH ENCRYPTION ]<br/><br/>{<br/><br/>&nbsp;&nbsp; { { FOR | AFTER | INSTEAD OF } { [ Ins&#101;rt ] [ , ] [ Up&#100;ate ] }<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ WITH APPEND ]<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ NOT FOR REPLICATION ]<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AS<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ { IF Up&#100;ate ( column )<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ { AND | o&#114; } Up&#100;ate ( column ) ]<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ ...n ]<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| IF ( COLUMNS_Up&#100;ateD ( ) { bitwise_operator } up&#100;ated_bitmask )<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ comparison_operator } column_bitmask [ ...n ]<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} ]<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql_statement [ ...n ]<br/><br/>&nbsp;&nbsp; }<br/><br/>}<br/><br/>参数说明：<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;trigger_name：触发器的名称。触发器名称必须符合标识符规则，并且在数据库中必须惟一。可以选择是否指定触发器所有者名称。<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;table | view：执行触发器的表或视图，有时称为触发器表或触发器视图。可以选择是否指定表或视图的所有者名称。<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;AFTER：指定触发器只有在触发SQL语句中指定的所有操作都已成功执行后才被激活。所有的引用级联操作和约束检查也必须成功完成后，才能执行此触发器。<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;INSTEAD OF：指定执行触发器而不是执行触发 SQL 语句，从而替代触发语句的操作。<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;WITH APPEND：指定应该添加现有类型的其他触发器。只有当兼容级别是65或更低时，才需要使用该可选子句。<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;NOT FOR REPLICATION：表示当复制进程更改触发器所涉及的表时，不应执行该触发器。<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;AS：触发器要执行的操作。<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;sql_statement：触发器的条件和操作。触发器条件指定其他准则，以确定Del&#101;te、Ins&#101;rt或Up&#100;ate语句是否导致执行触发器操作。<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;column：要测试 Ins&#101;rt或Up&#100;ate操作的列名。该列可以是SQL Server支持的任何数据类型。<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;bitwise_operator：用于比较运算的位运算符。<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;up&#100;ated_bitmask：整型位掩码，表示实际更新或插入的列。<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;comparison_operator：比较运算符。使用等号（=）检查up&#100;ated_bitmask中指定的所有列是否都实际进行了更新。使用大于号（&gt;）检查up&#100;ated_bitmask中指定的任一列或某些列是否已更新。<br/><br/>l&nbsp;&nbsp;&nbsp;&nbsp;column_bitmask：要检查的列的整型位掩码，用来检查是否已更新或插入了这些列。<br/><br/>本示例是建立两个相关表“MR_Stu_XX”和“MR_Stu_CJ”，它们都有“学生编号”和“学生姓名”字段，并且类型相同。在“MR_Stu_XX”表中创建三个触发器，在对“MR_Stu_XX”表进行添加修改的同时，对“MR_Stu_CJ”表也进行相应的操作。<br/>操作步骤如下：<br/>（1）在“MR_SQL”数据库中创建“MR_Stu_CJ”表和“MR_Stu_XX”表。<br/>（2）为“MR_Stu_XX”表创建触发器，SQL语句如下：<br/>用Ins&#101;rt语句创建触发器，当在“MR_Stu_XX”表中添加数据时，“MR_Stu_CJ”表也添加相应的数据。SQL语句如下：<br/><br/>USE MR_SQL<br/>GO<br/>Cr&#101;ate TRIGGER TRI_StuXX_Ins&#101;rt ON dbo.MR_Stu_XX<br/>FOR Ins&#101;rt<br/>AS<br/>DECLARE @id Char(4),@name Char(10)<br/>Sel&#101;ct @id=学生编号,@name=学生姓名&nbsp;&nbsp;from ins&#101;rted<br/>Ins&#101;rt INTO MR_Stu_CJ (学生编号,学生姓名,语文,数学,英语) VALUES (@id,@name,0.0,0.0,0.0)<br/>GO<br/>注意：在表中添加数据时，将添加的数据存放在系统临时表“ins&#101;rted”中。<br/><br/>用Del&#101;te语句创建触发器，当在“MR_Stu_XX”表中删除数据时，“MR_Stu_CJ”表也删除相应的数据。SQL语句如下：<br/>USE MR_SQL<br/>GO<br/>Cr&#101;ate TRIGGER TRI_StuXX_Del&#101;te ON [dbo].[MR_Stu_XX]<br/>FOR Del&#101;te<br/>AS<br/>DECLARE @id char(4),@name char(10)<br/>sel&#101;ct @id=学生编号,@name=学生姓名 from del&#101;ted<br/>Del&#101;te MR_Stu_CJ wh&#101;re 学生编号=@id and 学生姓名=@name<br/>GO<br/>注意：在表中删除数据时，将删除的数据存放在系统临时表del&#101;ted中。<br/><br/>用Up&#100;ate语句创建触发器，当在“MR_Stu_XX”表中更新数据时，“MR_Stu_CJ”表也更新相应的数据。SQL语句如下：<br/>USE MR_SQL<br/>GO<br/>Cr&#101;ate TRIGGER TRI_StuXX_Uudate ON [dbo].[MR_Stu_XX]<br/>FOR Up&#100;ate<br/>AS<br/>DECLARE @id char(4),@name char(10)<br/>sel&#101;ct @id=学生编号 from del&#101;ted<br/>sel&#101;ct @name=学生姓名 from Ins&#101;rted<br/>Up&#100;ate MR_Stu_CJ SET 学生姓名=@name Wh&#101;re 学生编号 = @id<br/>GO<br/>注意：在表中更新数据时，将更新前的数据存放在系统临时表“del&#101;ted”中，将更新后的数据存放在系统临时表“ins&#101;rted”中。<br/><br/>3．创建触发器的注意事项<br/><br/>（1）触发器是一个数据库对象，它的命名必须符合SQL Server 2000的标识符命名规则。<br/><br/>（2）Cr&#101;ate TRIGGER语句必须是批处理中的第一个语句。也就是说，如果该语句前面还有其他语句，应该使用批处理结束符GO隔开。<br/><br/>（3）不能在临时表或系统表上创建触发器，但是在触发器中可以引用临时表，不能引用系统表。<br/><br/>（4）创建触发器的权限默认分配给表的所有者，且不能将该权限转给其他用户。<br/><br/>（5）触发器可以引用当前数据库以外的对象，但只能在当前数据库中创建触发器。<br/><br/>（6）在含有用Del&#101;te或Up&#100;ate操作定义的外键的表中，不能定义INSTEAD OF和INSTEAD OF Up&#100;ate触发器。<br/><br/>（7）WRITETEXT语句不会引发Ins&#101;rt或Up&#100;ate触发器。<br/><br/>（8）TRUNCATE TABLE语句不能引发Del&#101;te触发器，因为该语句没有记录。<br/><br/>]]></description>
		</item>
		
</channel>
</rss>
