<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>shanghuo.net(上火网)</title>
		<link>http://www.shanghuo.net/</link>
		<description>人间五十年，万事如梦幻。一度生存者，岂有长不灭？</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>shanghuo Version 1.6 Build 20071004</generator>
		<lastBuildDate>Fri, 10 Sep 2010 00:28:23 +0000</lastBuildDate>
		<ttl></ttl>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=284</guid>
			<title>SQL查询语句</title>
			<author>jiashixiang</author>
			<description><![CDATA[<p>一、 简单查询 <br />
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的<br />
表或视图、以及搜索条件等。<br />
例如，下面的语句查询testtable表中姓名为&ldquo;张三&rdquo;的nickname字段和email字段。<br />
复制内容到剪贴板代码:<br />
SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三'<br />
(一) 选择列表<br />
选择列表(select_list)指出所查询列，它可以是一组列名列表、星号、表达式、变量(包括局部变<br />
量和全局变量)等构成。</p>
<p>1、选择所有列<br />
例如，下面语句显示testtable表中所有列的数据：<br />
复制内容到剪贴板代码:<br />
SELECT * FROM testtable<br />
2、选择部分列并指定它们的显示次序<br />
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。<br />
例如：</p>
<p>SELECT nickname,email FROM testtable<br />
3、更改列标题<br />
在选择列表中，可重新指定列标题。定义格式为：<br />
列标题=列名<br />
列名 列标题<br />
如果指定的列标题不是标准的标识符格式时，应使用引号定界符，例如，下列语句使用汉字显示列<br />
标题：</p>
<p>SELECT 昵称=nickname,电子邮件=email&nbsp; FROM testtable <br />
4、删除重复行<br />
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行，默认<br />
为ALL。使用DISTINCT选项时，对于所有重复的数据行在SELECT返回的结果集合中只保留一行。</p>
<p>5、限制返回的行数<br />
使用TOP n [PERCENT]选项限制返回的数据行数，TOP n说明返回n行，而TOP n PERCENT时，说明n是<br />
表示一百分数，指定返回的行数等于总行数的百分之几。<br />
例如：</p>
<p>SELECT TOP 2 * FROM `testtable`</p>
<p>SELECT TOP 20 PERCENT * FROM `testtable`<br />
(二)FROM子句 <br />
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图，<br />
它们之间用逗号分隔。<br />
在FROM子句同时指定多个表或视图时，如果选择列表中存在同名列，这时应使用对象名限定这些列<br />
所属的表或视图。例如在usertable和citytable表中同时存在cityid列，在查询两个表中的cityid时应<br />
使用下面语句格式加以限定：</p>
<p>SELECT `username`,citytable.cityid<br />
FROM `usertable`,`citytable`<br />
WHERE usertable.cityid=citytable.cityid<br />
在FROM子句中可用以下两种格式为表或视图指定别名：<br />
表名 as 别名<br />
表名 别名</p>
<p>(二) FROM子句<br />
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图，<br />
它们之间用逗号分隔。<br />
在FROM子句同时指定多个表或视图时，如果选择列表中存在同名列，这时应使用对象名限定这些列<br />
所属的表或视图。例如在usertable和citytable表中同时存在cityid列，在查询两个表中的cityid时应<br />
使用下面语句格式加以限定：</p>
<p>SELECT `username`,citytable.cityid<br />
FROM `usertable`,`citytable`<br />
WHERE usertable.cityid=citytable.cityid<br />
在FROM子句中可用以下两种格式为表或视图指定别名：</p>
<p>表名 as 别名<br />
表名 别名<br />
例如上面语句可用表的别名格式表示为：</p>
<p>SELECT `username`,b.cityid<br />
FROM usertable a,citytable b<br />
WHERE a.cityid=b.cityid<br />
SELECT不仅能从表或视图中检索数据，它还能够从其它查询语句所返回的结果集合中查询数据。<br />
例如：</p>
<p>SELECT a.au_fname+a.au_lname<br />
FROM authors a,titleauthor ta<br />
(SELECT `title_id`,`title`<br />
FROM `titles`<br />
WHERE ` ytd_sales`&gt;10000<br />
) AS t<br />
WHERE a.au_id=ta.au_id<br />
AND ta.title_id=t.title_id<br />
此例中，将SELECT返回的结果集合给予一别名t，然后再从中检索数据。</p>
<p>(三) 使用WHERE子句设置查询条件<br />
WHERE子句设置查询条件，过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据：</p>
<p>SELECT * FROM usertable WHERE age&gt;20 <br />
WHERE子句可包括各种条件运算符：<br />
比较运算符(大小比较)：&gt;、&gt;=、=、&lt;、&lt;=、&lt;&gt;、!&gt;、!&lt;<br />
范围运算符(表达式值是否在指定的范围)：BETWEEN&hellip;AND&hellip;<br />
NOT BETWEEN&hellip;AND&hellip;<br />
列表运算符(判断表达式是否为列表中的指定项)：IN (项1,项2&hellip;&hellip;)<br />
NOT IN (项1,项2&hellip;&hellip;)<br />
模式匹配符(判断值是否与指定的字符通配格式相符)LIKE、NOT LIKE<br />
空值判断符(判断表达式是否为空)：IS NULL、NOT IS NULL<br />
逻辑运算符(用于多条件的逻辑连接)：NOT、AND、OR<br />
1、范围运算符例：age BETWEEN 10 AND 30相当于age&gt;=10 AND age&lt;=30<br />
2、列表运算符例：country IN ('Germany','China')<br />
3、模式匹配符例：常用于模糊查找，它判断列值是否与指定的字符串格式相匹配。可用于char、<br />
varchar、text、ntext、datetime和smalldatetime等类型查询。<br />
可使用以下通配字符：<br />
百分号%：可匹配任意类型和长度的字符，如果是中文，请使用两个百分号即%%。<br />
下划线_：匹配单个任意字符，它常用来限制表达式的字符长度。<br />
方括号[]：指定一个字符、字符串或范围，要求所匹配对象为它们中的任一个。<br />
[^]：其取值也[] 相同，但它要求所匹配对象为指定字符以外的任一个字符。<br />
例如：<br />
限制以Publishing结尾，使用LIKE '%Publishing'<br />
限制以A开头：LIKE '[A]%'<br />
限制以A开头外：LIKE '[^A]%'<br />
4、空值判断符例WHERE age IS NULL<br />
5、逻辑运算符：优先级为NOT、AND、OR<br />
(四)查询结果排序 <br />
使用ORDER BY子句对查询返回的结果按一列或多列排序。ORDER BY子句的语法格式为：<br />
ORDER BY {column_name [ASC|DESC]} [,&hellip;n]<br />
其中ASC表示升序，为默认值，DESC为降序。ORDER BY不能按ntext、text和image数据类型进行排<br />
序。<br />
例如：</p>
<p>SELECT * FROM `usertable` ORDER BY `age` DESC,`userid` ASC<br />
另外，可以根据表达式进行排序。</p>
<p>二、 联合查询<br />
UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示，即执行联<br />
合查询。UNION的语法格式为：</p>
<p>select_statement<br />
UNION [ALL] selectstatement<br />
[UNION [ALL] selectstatement][&hellip;n]<br />
其中selectstatement为待联合的SELECT查询语句。<br />
ALL选项表示将所有行合并到结果集合中。不指定该项时，被联合查询结果集合中的重复行将只保留一<br />
行。<br />
联合查询时，查询结果的列标题为第一个查询语句的列标题。因此，要定义列标题必须在第一个查询语<br />
句中定义。要对联合查询结果排序时，也必须使用第一查询语句中的列名、列标题或者列序号。<br />
在使用UNION 运算符时，应保证每个联合查询语句的选择列表中有相同数量的表达式，并且每个查询选<br />
择表达式应具有相同的数据类型，或是可以自动将它们转换为相同的数据类型。在自动转换时，对于数值类<br />
型，系统将低精度的数据类型转换为高精度的数据类型。<br />
在包括多个查询的UNION语句中，其执行顺序是自左至右，使用括号可以改变这一执行顺序。例如：<br />
查询1 UNION (查询2 UNION 查询3)</p>
<p>三、连接查询 <br />
通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点，也是它区别于其它类型<br />
数据库管理系统的一个标志。<br />
在关系数据库管理系统中，表建立时各数据之间的关系不必确定，常把一个实体的所有信息存放在<br />
一个表中。当检索数据时，通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带<br />
来很大的灵活性，他们可以在任何时候增加新的数据类型。为不同实体创建新的表，尔后通过连接进行<br />
查询。<br />
连接可以在SELECT 语句的FROM子句或WHERE子句中建立，似是而非在FROM子句中指出连接时有助于<br />
将连接操作与WHERE子句中的搜索条件区分开来。所以，在Transact-SQL中推荐使用这种方法。<br />
SQL-92标准所定义的FROM子句的连接语法格式为：</p>
<p>FROM join_table join_type join_table [ON (join_condition)]<br />
其中join_table指出参与连接操作的表名，连接可以对同一个表操作，也可以对多表操作，对同一<br />
个表操作的连接又称做自连接。<br />
join_type 指出连接类型，可分为三种：内连接、外连接和交叉连接。内连接(INNER JOIN)使用比<br />
较运算符进行表间某(些)列数据的比较操作，并列出这些表中与连接条件相匹配的数据行。根据所使用<br />
的比较方式不同，内连接又分为等值连接、自然连接和不等连接三种。<br />
外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)<br />
和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是，外连接不只列出与连接条件相匹<br />
配的行，而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的<br />
数据行。<br />
交叉连接(CROSS JOIN)没有WHERE 子句，它返回连接表中所有数据行的笛卡尔积，其结果集合中的<br />
数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。<br />
连接操作中的ON (join_condition) 子句指出连接条件，它由被连接表中的列和比较运算符、逻辑<br />
运算符等构成。<br />
无论哪种连接都不能对text、ntext和image数据类型列进行直接连接，但可以对这三种列进行间接<br />
连接。例如：</p>
<p>SELECT p1.pub_id,p2.pub_id,p1.pr_info<br />
FROM pub_info AS p1 INNER JOIN pub_info AS p2<br />
ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)<br />
(一)内连接<br />
内连接查询操作列出与连接条件匹配的数据行，它使用比较运算符比较被连接列的列值。内连接分<br />
三种：<br />
1、等值连接：在连接条件中使用等于号(=)运算符比较被连接列的列值，其查询结果中列出被连接<br />
表中的所有列，包括其中的重复列。<br />
2、不等连接： 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些<br />
运算符包括&gt;、&gt;=、&lt;=、&lt;、!&gt;、!&lt;和&lt;&gt;。<br />
3、自然连接：在连接条件中使用等于(=)运算符比较被连接列的列值，但它使用选择列表指出查询<br />
结果集合中所包括的列，并删除连接表中的重复列。<br />
例，下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社：</p>
<p>SELECT *<br />
FROM authors AS a INNER JOIN publishers AS p<br />
ON a.city=p.city<br />
又如使用自然连接，在选择列表中删除authors 和publishers 表中重复列(city和state)：</p>
<p>SELECT a.*,p.pub_id,p.pub_name,p.country<br />
FROM authors AS a INNER JOIN publishers AS p<br />
ON a.city=p.city<br />
(二)外连接<br />
内连接时，返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件<br />
的行。而采用外连接时，它返回到查询结果集合中的不仅包含符合连接条件的行，而且还包括左表(左外<br />
连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。<br />
如下面使用左外连接将论坛内容和作者信息连接起来：</p>
<p>SELECT a.*,b.* FROM `luntan` LEFT JOIN usertable as b<br />
ON a.username=b.username<br />
下面使用全外连接将city表中的所有作者以及user表中的所有作者，以及他们所在的城市：</p>
<p>SELECT a.*,b.*<br />
FROM city as a FULL OUTER JOIN user as b<br />
ON a.username=b.username<br />
(三)交叉连接<br />
交叉连接不带WHERE 子句，它返回被连接的两个表所有数据行的笛卡尔积，返回到结果集合中的数<br />
据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。<br />
例，titles表中有6类图书，而publishers表中有8家出版社，则下列交叉连接检索到的记录数将等<br />
于6*8=48行。</p>
<p>SELECT `type`,`pub_name`<br />
FROM `titles` CROSS JOIN `publishers`<br />
ORDER BY `type`<br />
SQL核心语句(非常实用的几个技巧)</p>
<p>&nbsp;</p>
<p>_ArticleContent1_lblContent&gt;插入数据</p>
<p>向表中添加一个新记录，你要使用SQL INSERT 语句。这里有一个如何使用这种语句的例子：</p>
<p>INSERT mytable (mycolumn) VALUES (&lsquo;some data&rsquo;) <br />
这个语句把字符串&rsquo;some data&rsquo;插入表mytable的mycolumn字段中。将要被插入数据的字段的名字在第一个括号中指定，实际的数据在第二个括号中给出。</p>
<p>INSERT 语句的完整句法如下：</p>
<p>INSERT [INTO] {table_name|view_name} [(column_list)] {DEFAULT VALUES |</p>
<p>Values_list | select_statement} <br />
如果一个表有多个字段，通过把字段名和字段值用逗号隔开，你可以向所有的字段中插入数据。假设表mytable有三个字段first_column,second_column,和third_column。下面的</p>
<p>INSERT语句添加了一条三个字段都有值的完整记录：</p>
<p>INSERT mytable (first_column,second_column,third_column)</p>
<p>VALUES (&lsquo;some data&rsquo;,&rsquo;some more data&rsquo;,&rsquo;yet more data&rsquo;) <br />
注意</p>
<p>你可以使用INSERT语句向文本型字段中插入数据。但是，如果你需要输入很长的字符串，你应该使用WRITETEXT语句。这部分内容对本书来说太高级了，因此不加讨论。要了解更多</p>
<p>的信息，请参考Microsoft SQL Sever 的文档。</p>
<p>如果你在INSERT 语句中只指定两个字段和数据会怎么样呢？换句话说，你向一个表中插入一条新记录，但有一个字段没有提供数据。在这种情况下，有下面的四种可能：</p>
<p>如果该字段有一个缺省值，该值会被使用。例如，假设你插入新记录时没有给字段third_column提供数据，而这个字段有一个缺省值&rsquo;some value&rsquo;。在这种情况下，当新记录建</p>
<p>立时会插入值&rsquo;some value&rsquo;。</p>
<p>如果该字段可以接受空值，而且没有缺省值，则会被插入空值。</p>
<p>如果该字段不能接受空值，而且没有缺省值，就会出现错误。你会收到错误信息：</p>
<p>The column in table mytable may not be null.</p>
<p>最后，如果该字段是一个标识字段，那么它会自动产生一个新值。当你向一个有标识字段的表中插入新记录时，只要忽略该字段，标识字段会给自己赋一个新值。</p>
<p>注意</p>
<p>向一个有标识字段的表中插入新记录后，你可以用SQL变量@@identity来访问新记录</p>
<p>的标识字段的值。考虑如下的SQL语句：</p>
<p>INSERT mytable (first_column) VALUES(&lsquo;some value&rsquo;) [code]</p>
<p>[code]INSERT anothertable(another_first,another_second)</p>
<p>VALUES(@@identity,&rsquo;some value&rsquo;) <br />
如果表mytable有一个标识字段，该字段的值会被插入表anothertable的another_first字段。这是因为变量@@identity总是保存最后一次插入标识字段的值。</p>
<p>字段another_first应该与字段first_column有相同的数据类型。但是，字段another_first不能是应该标识字段。Another_first字段用来保存字段first_column的值。</p>
<p>删除记录</p>
<p>要从表中删除一个或多个记录，需要使用SQL DELETE语句。你可以给DELETE 语句提供WHERE 子句。WHERE子句用来选择要删除的记录。例如，下面的这个DELETE语句只删除字段</p>
<p>first_column的值等于&rsquo;Delete Me&rsquo;的记录：</p>
<p>DELETE mytable WHERE first_column=&rsquo;Deltet Me&rsquo; <br />
DELETE 语句的完整句法如下：</p>
<p>DELETE [FROM] {table_name|view_name} [WHERE clause] <br />
在SQL SELECT 语句中可以使用的任何条件都可以在DELECT 语句的WHERE子句 中使用。例如，下面的这个DELETE语句只删除那些first_column字段的值为&rsquo;goodbye&rsquo;或</p>
<p>second_column字段的值为&rsquo;so long&rsquo;的记录：</p>
<p>DELETE mytable WHERE first_column=&rsquo;goodby&rsquo; OR second_column=&rsquo;so long&rsquo; <br />
如果你不给DELETE 语句提供WHERE 子句，表中的所有记录都将被删除。你不应该有这种想法。如果你想删除应该表中的所有记录，应使用第十章所讲的TRUNCATE TABLE语句。</p>
<p>注意</p>
<p>为什么要用TRUNCATE TABLE 语句代替DELETE语句？当你使用TRUNCATE TABLE语句时，记录的删除是不作记录的。也就是说，这意味着TRUNCATE TABLE 要比DELETE快得多。</p>
<p>更新记录</p>
<p>要修改表中已经存在的一条或多条记录，应使用SQL UPDATE语句。同DELETE语句一样，UPDATE语句可以使用WHERE子句来选择更新特定的记录。请看这个例子：</p>
<p>UPDATE mytable SET first_column=&rsquo;Updated!&rsquo; WHERE second_column=&rsquo;Update Me!&rsquo; <br />
这个UPDATE 语句更新所有second_column字段的值为&rsquo;Update Me!&rsquo;的记录。对所有被选中的记录，字段first_column的值被置为&rsquo;Updated!&rsquo;。</p>
<p>下面是UPDATE语句的完整句法：</p>
<p>UPDATE {table_name|view_name} SET [{table_name|view_name}] <br />
{column_list|variable_list|variable_and_column_list} <br />
[,{column_list2|variable_list2|variable_and_column_list2}&hellip; <br />
[,{column_listN|variable_listN|variable_and_column_listN}]] <br />
[WHERE clause] <br />
注意</p>
<p>你可以对文本型字段使用UPDATE语句。但是，如果你需要更新很长的字符串，应使用UPDATETEXT语句。这部分内容对本书来说太高级了，因此不加讨论。要了解更多的信息，请参</p>
<p>考Microsoft SQL Sever 的文档。</p>
<p>如果你不提供WHERE子句，表中的所有记录都将被更新。有时这是有用的。例如，如果你想把表titles中的所有书的价格加倍，你可以使用如下的UPDATE 语句：</p>
<p>你也可以同时更新多个字段。例如，下面的UPDATE语句同时更新first_column,second_column,和third_column这三个字段：</p>
<p>UPDATE mytable SET first_column=&rsquo;Updated!&rsquo; <br />
Second_column=&rsquo;Updated!&rsquo; <br />
Third_column=&rsquo;Updated!&rsquo; <br />
WHERE first_column=&rsquo;Update Me1&rsquo; <br />
技巧</p>
<p>SQL忽略语句中多余的空格。你可以把SQL语句写成任何你最容易读的格式。</p>
<p>用SELECT 创建记录和表</p>
<p>你也许已经注意到，INSERT 语句与DELETE语句和UPDATE语句有一点不同，它一次只操作一个记录。然而，有一个方法可以使INSERT 语句一次添加多个记录。要作到这一点，你需</p>
<p>要把INSERT 语句与SELECT 语句结合起来，象这样：</p>
<p>INSERT mytable (first_column,second_column) <br />
SELECT another_first,another_second <br />
FROM anothertable <br />
WHERE another_first=&rsquo;Copy Me!&rsquo; <br />
这个语句从anothertable拷贝记录到mytable.只有表anothertable中字段another_first的值为&rsquo;Copy Me！&rsquo;的记录才被拷贝。</p>
<p>当为一个表中的记录建立备份时，这种形式的INSERT 语句是非常有用的。在删除一个表中的记录之前，你可以先用这种方法把它们拷贝到另一个表中。</p>
<p>如果你需要拷贝整个表，你可以使用SELECT INTO 语句。例如，下面的语句创建了一个名为newtable的新表，该表包含表mytable的所有数据：</p>
<p>SELECT * INTO newtable FROM mytable <br />
你也可以指定只有特定的字段被用来创建这个新表。要做到这一点，只需在字段列表中指定你想要拷贝的字段。另外，你可以使用WHERE 子句来限制拷贝到新表中的记录。下面的</p>
<p>例子只拷贝字段second_columnd的值等于&rsquo;Copy Me!&rsquo;的记录的first_column字段。</p>
<p>SELECT first_column INTO newtable <br />
FROM mytable <br />
WHERE second_column=&rsquo;Copy Me!&rsquo; <br />
使用SQL修改已经建立的表是很困难的。例如，如果你向一个表中添加了一个字段，没有容易的办法来去除它。另外，如果你不小心把一个字段的数据类型给错了，你将没有办法改</p>
<p>变它。但是，使用本节中讲述的SQL语句，你可以绕过这两个问题。</p>
<p>例如，假设你想从一个表中删除一个字段。使用SELECT INTO 语句，你可以创建该表的一个拷贝，但不包含要删除的字段。这使你既删除了该字段，又保留了不想删除的数据。</p>
<p>如果你想改变一个字段的数据类型，你可以创建一个包含正确数据类型字段的新表。创建好该表后，你就可以结合使用UPDATE语句和SELECT 语句，把原来表中的所有数据拷贝到新</p>
<p>表中。通过这种方法，你既可以修改表的结构，又能保存原有的数据。</p>
<p>&nbsp;</p>
<p>_ArticleContent1_lblContent&gt;插入数据</p>
<p>向表中添加一个新记录，你要使用SQL INSERT 语句。这里有一个如何使用这种语句的例子：</p>
<p>INSERT mytable (mycolumn) VALUES (&lsquo;some data&rsquo;) <br />
这个语句把字符串&rsquo;some data&rsquo;插入表mytable的mycolumn字段中。将要被插入数据的字段的名字在第一个括号中指定，实际的数据在第二个括号中给出。</p>
<p>INSERT 语句的完整句法如下：</p>
<p>INSERT [INTO] {table_name|view_name} [(column_list)] {DEFAULT VALUES | Values_list | select_statement} <br />
如果一个表有多个字段，通过把字段名和字段值用逗号隔开，你可以向所有的字段中插入数据。假设表mytable有三个字段first_column,second_column,和third_column。下面的</p>
<p>INSERT语句添加了一条三个字段都有值的完整记录：</p>
<p>INSERT mytable (first_column,second_column,third_column) VALUES (&lsquo;some data&rsquo;,&rsquo;some more data&rsquo;,&rsquo;yet more data&rsquo;) <br />
[code]<br />
注意</p>
<p>你可以使用INSERT语句向文本型字段中插入数据。但是，如果你需要输入很长的字符串，你应该使用WRITETEXT语句。这部分内容对本书来说太高级了，因此不加讨论。要了解更多</p>
<p>的信息，请参考Microsoft SQL Sever 的文档。</p>
<p>如果你在INSERT 语句中只指定两个字段和数据会怎么样呢？换句话说，你向一个表中插入一条新记录，但有一个字段没有提供数据。在这种情况下，有下面的四种可能：</p>
<p>如果该字段有一个缺省值，该值会被使用。例如，假设你插入新记录时没有给字段third_column提供数据，而这个字段有一个缺省值&rsquo;some value&rsquo;。在这种情况下，当新记录建</p>
<p>立时会插入值&rsquo;some value&rsquo;。</p>
<p>如果该字段可以接受空值，而且没有缺省值，则会被插入空值。</p>
<p>如果该字段不能接受空值，而且没有缺省值，就会出现错误。你会收到错误信息：</p>
<p>The column in table mytable may not be null.</p>
<p>最后，如果该字段是一个标识字段，那么它会自动产生一个新值。当你向一个有标识字段的表中插入新记录时，只要忽略该字段，标识字段会给自己赋一个新值。</p>
<p>注意</p>
<p>向一个有标识字段的表中插入新记录后，你可以用SQL变量@@identity来访问新记录</p>
<p>的标识字段的值。考虑如下的SQL语句： <br />
[code]INSERT mytable (first_column) VALUES(&lsquo;some value&rsquo;)</p>
<p>INSERT anothertable(another_first,another_second) VALUES(@@identity,&rsquo;some value&rsquo;) <br />
如果表mytable有一个标识字段，该字段的值会被插入表anothertable的another_first字段。这是因为变量@@identity总是保存最后一次插入标识字段的值。</p>
<p>字段another_first应该与字段first_column有相同的数据类型。但是，字段another_first不能是应该标识字段。Another_first字段用来保存字段first_column的值。</p>
<p>删除记录</p>
<p>要从表中删除一个或多个记录，需要使用SQL DELETE语句。你可以给DELETE 语句提供WHERE 子句。WHERE子句用来选择要删除的记录。例如，下面的这个DELETE语句只删除字段</p>
<p>first_column的值等于&rsquo;Delete Me&rsquo;的记录：</p>
<p>DELETE mytable WHERE first_column=&rsquo;Deltet Me&rsquo; <br />
DELETE 语句的完整句法如下：</p>
<p>DELETE [FROM] {table_name|view_name} [WHERE clause] <br />
在SQL SELECT 语句中可以使用的任何条件都可以在DELECT 语句的WHERE子句 中使用。例如，下面的这个DELETE语句只删除那些first_column字段的值为&rsquo;goodbye&rsquo;或</p>
<p>second_column字段的值为&rsquo;so long&rsquo;的记录：</p>
<p>DELETE mytable WHERE first_column=&rsquo;goodby&rsquo; OR second_column=&rsquo;so long&rsquo; <br />
如果你不给DELETE 语句提供WHERE 子句，表中的所有记录都将被删除。你不应该有这种想法。如果你想删除应该表中的所有记录，应使用第十章所讲的TRUNCATE TABLE语句。</p>
<p>注意</p>
<p>为什么要用TRUNCATE TABLE 语句代替DELETE语句？当你使用TRUNCATE TABLE语句时，记录的删除是不作记录的。也就是说，这意味着TRUNCATE TABLE 要比DELETE快得多。</p>
<p>更新记录</p>
<p>要修改表中已经存在的一条或多条记录，应使用SQL UPDATE语句。同DELETE语句一样，UPDATE语句可以使用WHERE子句来选择更新特定的记录。请看这个例子：</p>
<p>UPDATE mytable SET first_column=&rsquo;Updated!&rsquo; WHERE second_column=&rsquo;Update Me!&rsquo; <br />
这个UPDATE 语句更新所有second_column字段的值为&rsquo;Update Me!&rsquo;的记录。对所有被选中的记录，字段first_column的值被置为&rsquo;Updated!&rsquo;。</p>
<p>下面是UPDATE语句的完整句法：</p>
<p>UPDATE {table_name|view_name} SET [{table_name|view_name}] <br />
{column_list|variable_list|variable_and_column_list} <br />
[,{column_list2|variable_list2|variable_and_column_list2}&hellip; <br />
[,{column_listN|variable_listN|variable_and_column_listN}]] <br />
[WHERE clause] <br />
注意</p>
<p>你可以对文本型字段使用UPDATE语句。但是，如果你需要更新很长的字符串，应使用UPDATETEXT语句。这部分内容对本书来说太高级了，因此不加讨论。要了解更多的信息，请参</p>
<p>考Microsoft SQL Sever 的文档。</p>
<p>如果你不提供WHERE子句，表中的所有记录都将被更新。有时这是有用的。例如，如果你想把表titles中的所有书的价格加倍，你可以使用如下的UPDATE 语句：</p>
<p>你也可以同时更新多个字段。例如，下面的UPDATE语句同时更新first_column,second_column,和third_column这三个字段：</p>
<p>UPDATE mytable SET first_column=&rsquo;Updated!&rsquo; <br />
Second_column=&rsquo;Updated!&rsquo; <br />
Third_column=&rsquo;Updated!&rsquo; <br />
WHERE first_column=&rsquo;Update Me1&rsquo; <br />
技巧</p>
<p>SQL忽略语句中多余的空格。你可以把SQL语句写成任何你最容易读的格式。</p>
<p>用SELECT 创建记录和表</p>
<p>你也许已经注意到，INSERT 语句与DELETE语句和UPDATE语句有一点不同，它一次只操作一个记录。然而，有一个方法可以使INSERT 语句一次添加多个记录。要作到这一点，你需</p>
<p>要把INSERT 语句与SELECT 语句结合起来，象这样：</p>
<p>INSERT mytable (first_column,second_column) <br />
SELECT another_first,another_second <br />
FROM anothertable <br />
WHERE another_first=&rsquo;Copy Me!&rsquo; <br />
这个语句从anothertable拷贝记录到mytable.只有表anothertable中字段another_first的值为&rsquo;Copy Me！&rsquo;的记录才被拷贝。</p>
<p>当为一个表中的记录建立备份时，这种形式的INSERT 语句是非常有用的。在删除一个表中的记录之前，你可以先用这种方法把它们拷贝到另一个表中。</p>
<p>如果你需要拷贝整个表，你可以使用SELECT INTO 语句。例如，下面的语句创建了一个名为newtable的新表，该表包含表mytable的所有数据：</p>
<p>SELECT * INTO newtable FROM mytable <br />
你也可以指定只有特定的字段被用来创建这个新表。要做到这一点，只需在字段列表中指定你想要拷贝的字段。另外，你可以使用WHERE 子句来限制拷贝到新表中的记录。下面的</p>
<p>例子只拷贝字段second_columnd的值等于&rsquo;Copy Me!&rsquo;的记录的first_column字段。</p>
<p>SELECT first_column INTO newtable <br />
FROM mytable <br />
WHERE second_column=&rsquo;Copy Me!&rsquo; <br />
使用SQL修改已经建立的表是很困难的。例如，如果你向一个表中添加了一个字段，没有容易的办法来去除它。另外，如果你不小心把一个字段的数据类型给错了，你将没有办法改</p>
<p>变它。但是，使用本节中讲述的SQL语句，你可以绕过这两个问题。</p>
<p>例如，假设你想从一个表中删除一个字段。使用SELECT INTO 语句，你可以创建该表的一个拷贝，但不包含要删除的字段。这使你既删除了该字段，又保留了不想删除的数据。</p>
<p>如果你想改变一个字段的数据类型，你可以创建一个包含正确数据类型字段的新表。创建好该表后，你就可以结合使用UPDATE语句和SELECT 语句，把原来表中的所有数据拷贝到新</p>
<p>表中。通过这种方法，你既可以修改表的结构，又能保存原有的数据。</p>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=284</link>
			<category domain="http://www.shanghuo.net/?cid=13">火头军前锋</category>
			<pubDate>2008-04-09 10:36</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=262</guid>
			<title>职场杀手锏最冷的10个笑话</title>
			<author>jiashixiang</author>
			<description><![CDATA[<div class="t_msgfont" id="message160876">　　1、老师问一同学怎么减少白色污染？ <br /><br />&nbsp;&nbsp;　 同学答：把饭盒做成蓝色 <br /><br />&nbsp;&nbsp;　 2、飞机上,一位空中小姐问一个小女孩说:&ldquo;为什么飞机飞这么高都不会撞到星星呢？&rdquo; <br /><br />&nbsp; &nbsp;　小女孩回答到:&ldquo;我知道,因为星星会&lsquo;闪&rsquo;啊！&rdquo; <br /><br />&nbsp; &nbsp;　3、有一只北极熊和一只企鹅在一起耍,企鹅把身上的毛一根一根地拔了下来,拔完之后,对北极熊说:&ldquo;好冷哦！&ldquo;北极熊听了，也把自己身上的毛一根一根地拔了下来，转头对企鹅说：&ldquo;果然很冷！&rdquo; <br /><br />　　4、美国人∶你看过木头做的杯子吗？ <br /><br />&nbsp;&nbsp;　 中国人∶没有！ <br /><br />&nbsp; &nbsp;　美国人∶那为什麽你们中国字的&ldquo;杯&ldquo;是木字旁？ <br /><br />&nbsp; &nbsp;　中国人∶&ldquo;杯&ldquo;字旁边不是有个&ldquo;不&ldquo;字吗！也就是说它不是木头做的。<br /><br />　　5、某曰国战如火如荼，公会团长为了激励士气来到了大草原前线&hellip;&hellip; <br /><br />&nbsp;&nbsp;　 公会团长问：情况怎样？ <br /><br />&nbsp; &nbsp;　团员弓箭手报告说：报告团长！前方20公尺的帐棚旁有一个拜索斯的弓箭手，不过他的准度很烂，这几天射了好多次，都没有射到人。 <br /><br />&nbsp; &nbsp;　团长听完便问：既然发现敌国的弓箭手，为什么不把他干掉？ <br /><br />&nbsp; &nbsp;　团员弓箭手说：报告团长！不好吧，难道你要让他们换一个比较准的吗？ <br /><br />&nbsp; &nbsp;　6、众士兵：&ldquo;渴&hellip;&hellip;渴&hellip;&hellip;&rdquo; <br /><br />&nbsp;&nbsp;　 曹操：&ldquo;大家再坚持一会！我曾经到过这个地方，记得附近有一座梅林，再走一会可能就到了&ldquo;众士兵：&ldquo;噢&hellip;&hellip;有梅子吃呀&hellip;&hellip;噢&hellip;&hellip;&rdquo; <br /><br />&nbsp; &nbsp;　半个时辰后&mdash;&mdash;曹仁：&ldquo;主公！探险队找到了大量的水源！&rdquo; <br /><br />&nbsp;&nbsp;　 曹操：&ldquo;哈哈哈哈，大家听到了吗？终于有水喝啦&rdquo; <br /><br />&nbsp; &nbsp;　众士兵：&ldquo;不去&hellip;&hellip;一定要找到梅子&hellip;&hellip;&rdquo; <br /><br />&nbsp; &nbsp;　7、一块三分熟的牛排和一块5分熟的牛排在大街上遇到了，为什么他们没打招呼呢？ <br /><br />&nbsp; &nbsp;　因为&hellip;&hellip; <br /><br />&nbsp; &nbsp;　因为他们都不熟啊！哈哈 <br /><br />&nbsp; &nbsp;　8、小蛇很慌张地问大蛇哥哥：&ldquo;哥哥，我们有没有毒？&rdquo;大蛇说：&ldquo;你问这干吗？&rdquo; <br /><br />&nbsp; &nbsp;　小蛇说：&ldquo;我刚才不小心把自己舌头咬到了。&rdquo; <br /><br />　　9、龟兔赛跑，兔子很快跑到前面去了。 <br /><br />&nbsp; &nbsp;　乌龟看到一只蜗牛爬得很慢很慢，对他说：你上来，我背你吧。 <br /><br />&nbsp; &nbsp;　然后，蜗牛就上来了。 <br /><br />&nbsp;&nbsp;　 过了一会，乌龟又看到一只蚂蚁。对他说：你也上来吧。 <br /><br />&nbsp; &nbsp;　于是蚂蚁也上来了。 <br /><br />&nbsp; &nbsp;　蚂蚁上来以后，看到上面的蜗牛，对他说了句&ldquo;你好&rdquo; <br /><br />&nbsp; &nbsp;　你们知道蜗牛说什么吗? <br /><br />&nbsp; &nbsp;　蜗牛说:&ldquo;你抓紧点，这乌龟好快&rdquo; <br /><br />&nbsp; &nbsp;　10、坏消息：一个飞行员从飞机里掉出来了 <br /><br />&nbsp;&nbsp;　 好消息：他带了降落伞 <br /><br />&nbsp; &nbsp;　坏消息：降落伞是坏的 <br /><br />　&nbsp;&nbsp;好消息：下面有个干草堆 <br /><br />&nbsp; &nbsp;　坏消息：干草堆上有一杆大粪叉 <br /><br />&nbsp; &nbsp;　好消息：他没落到大粪叉上 <br /><br />&nbsp; &nbsp;　坏消息：他也没落到干草堆上</div>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=262</link>
			<category domain="http://www.shanghuo.net/?cid=13">火头军前锋</category>
			<pubDate>2007-11-19 13:27</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=261</guid>
			<title>一篇气死了99名老师的中学生作文！</title>
			<author>jiashixiang</author>
			<description><![CDATA[<div class="t_msgfont" id="message160883">　　今天是国庆节，放假一天，爸爸妈妈特地带我们到动物园玩。 <br /><br />　　按照惯例，我们早餐喜欢吃地瓜粥。今天因为地瓜卖完了，妈妈只好黔驴技穷地削些芋头来滥竽充数。没想到那些种在阳台的芋头很好吃，全家都贪得无厌地自食其果。 <br /><br />　　出门前，我那徐娘半老的妈妈打扮的花枝招展，鬼斧神工到一点也看不出是个糟糠之妻。头顶羽毛未丰的爸爸也赶紧洗心革面沐猴而冠，换上双管齐下的西装英俊得惨绝人寰，鸡飞狗跳到让人退避参舍。东施效颦爱漂亮的妹妹更是穿上调整型内衣愚公移山画虎类犬地打扮的艳光四射，趾高气昂地穿上新买的高跟鞋。 <br /><br />　　我们一丘之貉坐着素车白马，很快地到了动物园，不料参观的人多到豺狼当道草木皆兵，害我们一家骨肉分离。妻离子散的爸爸鞠躬尽瘁地到处广播，终于查找到差点认贼作父的我和遇人不淑的妹妹，困兽之斗中，我们螳臂当车力排众议推已及人到挤到猴笼前，鱼目混珠拍了张强颜欢笑的全家福。 <br /><br />　　接着到鸡鸣狗盗的鸟园欣赏风声鹤唳哀鸿遍野的大自然美妙音乐。后来爸爸口沫横飞地为我们指鹿为马时，吹来一阵凉风，让人毛骨悚然不寒而栗，妈妈连忙为爸爸黄袍加身，也叮嘱我们要节哀顺便。 <br /><br />　　到了傍晚，因为假日的关系，餐厅家家鹊占鸠巢六畜兴旺，所以妈妈带着我们孟母参迁，最后终于决定吃火锅。有家餐厅刚换壁纸，家徒四壁很是美丽，灯火阑珊配上四面楚歌，非常有气氛。十面埋伏的女服务生们四处招蜂引蝶，忙着为客人围魏救赵口蜜腹剑到让人误认到了西方极乐世界。 <br /><br />　　饥不择食的我们点了综合火锅，作怀不乱的爸爸当头棒喝先发制人，请求为虎作伥拿着刀子班门弄斧的女服务生，快点将狡兔死走狗烹，因为尸位素餐的我们一家子早就添油加醋完毕，就等着火锅赶快沈鱼落雁好问鼎中原，可惜锅盖太小，有点欲盖弥汤料沸腾后，热得乐不思蜀的我们赶紧解衣推食好大义灭亲上下其手，一网打尽捞个水落石出。 <br /><br />　　火锅在我们呼天呛地面红耳赤地蚕食鲸吞后，很快就只剩沧海一粟，和少数的漏网之鱼。母范犹存的妈妈想要丢参落四放冬粉时发现火苗已经危在旦夕，只好投鼠忌器。幸好狐假虎威的爸爸呼卢喝雉叫来店员抱薪救火，终于死灰复燃，也让如坐针毯的我们终饱私囊。鸟尽弓藏后，我们一家子酒囊饭袋，沆淡瀣一气，我和妹妹更是小人得志，沾沾自喜。 <br /><br />　　不料结帐的时候，老板露出庐山真面目，居然要一饭千金，爸爸气得吴牛喘月，妈妈也委曲地牛衣对泣。 <br /><br />　　啊！这三生有幸的国庆节，就在爸爸对着钱包自惭形秽大义灭亲后，我们全家江郎才尽，一败涂地。</div>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=261</link>
			<category domain="http://www.shanghuo.net/?cid=13">火头军前锋</category>
			<pubDate>2007-11-19 13:26</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=233</guid>
			<title>如何管理你网站的人脉</title>
			<author>jiashixiang</author>
			<description><![CDATA[<p>　　人脉资源越丰富，赚钱的门路就越多，这是不挣的事实。但网站的人脉又和其他的人脉又有不同。什么是网站的人脉呢？顾名思义，那就是网站的客户群体和自己同行的自己建立的人力资源。下面我们就从丛向人脉和横向人脉来具体分析：</p>
<p>　　一、丛向人脉</p>
<p>　　1.要了解你的用户群</p>
<p>　　这个问题是老调重谈了，但是我还是想说说，我们要做站，首先要明白你的网站是面对的那些用户群，这类用户群体的学历、思想、心里、需要要有系统的了解，这样你做出来的网站一定会得到用户的认可。</p>
<p>　　2.如何提高用户的回头率</p>
<p>　　这个问题是很多站长头疼的问题，他们花了很大的金钱做广告，但是能得到用户的回头并不是很多，如何解决这个问题，我认为首先是你网站内容的质量一定要搞上去，这一点任何人不会质疑，但是大部分站长确忽视了与用户互动的这一点，很多站长只是一味的埋头做站，却不与站长互动，这样网站的回头率是上不去的，就那站长网的图王来说，曾经图王是站长界最仗义的站长，从这一点看可以看出图王的成功必然的，因为他把握主了人脉最主要的资源。</p>
<p>　　二、横向人脉</p>
<p>　　这个问题我想简单的谈一下，一个成功的站长，他不但会管理丛向人脉，他们对横向人脉处理的非常好！！什么是横向人脉呢？就是如何和同行搞好关系，也许有些站长会问，自己做好站就可以呢，这与赚钱没什么关系，其实这样想就大错儿特错了，其实和几个成功站长搞好关系，不仅可以交流经验，而且合作上会有很大的好处的。就那站长中国论坛来说，他的起家就和站长网帮他宣传有很大关系。</p>
<p>　　好了，今天就谈到这儿，其实我也是刚做网站的一个女站长，没有同行的经验丰富，有什么不对的请大家指教批评。最后还是希望大家踩踩我的小站《草根站长论坛》小妹不胜感激！</p>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=233</link>
			<category domain="http://www.shanghuo.net/?cid=13">火头军前锋</category>
			<pubDate>2007-07-25 13:59</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=232</guid>
			<title>浅谈网站网络的营销</title>
			<author>jiashixiang</author>
			<description><![CDATA[<p>&nbsp;&nbsp; 摘要：本文结合作者个人在&ldquo;买本网&rdquo;网站的相关工作经验，围绕网站的网络营销，详细论叙了顾客资源管理在网络营销管理中的地位及保持顾客的重要性，阐述了在网站推广过程中，如何坚持以顾客为中心来实施网络整合营销，并对其中的一些重点策略进行了研究和探讨，文章最后部分对网络营销效果评估体系作了相关说明。</p>
<p>&nbsp;&nbsp;&nbsp; 关键词：网络营销、网站推广、顾客资源管理、网络整合营销</p>
<p>&nbsp;&nbsp;&nbsp; 一、 网络营销管理的核心是顾客资源管理。</p>
<p>&nbsp;&nbsp;&nbsp; 1、顾客在现代网络营销中处于主动地位。互联网发展到今天，各类网站相互竞争日益激烈，正在像早些年报纸杂志使出浑身解数扩大发行量那样来争夺顾客眼球。面对已经相当成熟丰富的网络资源，顾客完全能够依照自己的愿望来挑选商品或者购买服务。他们不仅能够做出选择，而且还渴望选择，他们的需求将更多，需求的变化也更大。所以，在网络营销活动中，顾客居于主动地位，他们完全自己决定需要甚么信息，对什么商品或者服务感兴趣以及愿意接受什么样的交易条件。因此任何网站必须从全局的高度出发，随时需要了解细分市场范围内的目标顾客要求，必要时调整甚至重新设计网站业务内容和流程。</p>
<p>&nbsp;&nbsp;&nbsp; 2、顾客的主动地位要求营销组织采取极限细分市场战略，多角度多方位地满足不同顾客的需求，同时导致了顾客群体日趋复杂化和多样化。这种主动地位将导致顾客的行为及需求差异进一步拉大，具有千差万别的个性化需求。网络营销利用了网络资源特有的快速、低廉、高效、互动等特点，实现了传统营销体系中不可能做到的极限市场细分战略，可以将营销触角直接延伸到每一个具体的顾客，为其提供满足其特殊需要的产品和服务。同时由于网络资源这种获得产品和服务的优势，也导致了互联网用户迅速增长，用户群体变得日趋复杂化和多样化，增加了服务难度。譬如&ldquo;买本网&rdquo;网站规划设计的会员中心和社区论坛就为顾客个性化需求提供了很好的沟通和解决的通道，同时网站还建立一系列在线讨论组供各种不同层次不同类型的用户进行在线即时交流，将这些加以充分地利用可以有效的提高网站的顾客忠诚度，同时也是提升网站人气的一个有效手段。</p>
<p>&nbsp;&nbsp;&nbsp; 3、任何产品和服务需要以顾客为中心。由于互联网络具有很好的互动性和引导性，顾客通过互联网络在企业的引导下对产品或服务进行选择或提出具体要求，企业可以根据顾客的选择和要求及时进行生产并提供及时服务，使得顾客跨时空得到满足所要求的产品和服务；另一方面，企业还可以及时了解顾客需求，并根据顾客要求组织及时生产和销售，提高企业的生产效益和营销效率。如美国的PC销售公司Dell公司，在1995年还是亏损的，但在1996年，它们通过互联网络来销售电脑，业绩得到100%增长，由于顾客通过互联网络，可以在公司设计的主页上进行选择和组合电脑，公司的生产部门马上根据要求组织生产，并通过邮政公司寄送。所以，网站的一切内容和服务应当以顾客为中心，与顾客进行快速互动的沟通，为顾客提供准确、详实、及时的资讯和便捷、低廉、高效的服务。</p>
<p>&nbsp;&nbsp;&nbsp; 4、顾客是网络营销活动中最重要的资源。作为Internet起步最早的成功的商业应用，基于网络资源的快速、便捷、低廉、高效、互动等优势，网络营销得到蓬勃和革命性的发展。随着网络营销发展的深入，它不再仅仅是营销部门的市场经营活动方面的业务，它还需要其它各相关业务部门如技术部门、财务部门、人力资源部门等的配合。同时，企业实质上是社会经济大系统中的一个子系统，其营销目标越来越受到众多外在因素的影响，企业的营销活动实际上是一个企业内部各部门之间、顾客、竞争者、分包商、销售商、合作方、政府机构和社会组织等发生相互作用的过程。一切过程的基础是顾客，所有这些网络营销活动都是围绕顾客展开的，没有顾客就没有一切，顾客才是网络营销活动中最重要的资源。</p>
<p>&nbsp;&nbsp;&nbsp; 5、网络营销管理的核心是顾客资源管理。互联网所特有的开放性、共享性、协作性和低廉性，使得网络营销具有跨时空、多媒体、交互式、拟人化、整合性、超前性、高效性、经济性等新特点。这种平等和推广到网络营销诊断都是围绕顾客进行的，都是在对日趋复杂化和多样化的顾客资源进行组织和管理。所以说，顾客资源管理是网络营销管理的核心，是网络营销管理成功的关键，是实现网络营销目标的基础。需要强调的是，在网站推广过程中，应当保持与顾客的沟通和联系，准确了解不同顾客的需求，致力于优化网站本身的功能和内容，努力提升网站整体的服务质量，同时针对性地开发顾客资源并进行灵活有效的管理，保持与顾客的长期关系才能顺利实现营销目标。</p>
<p>&nbsp;&nbsp;&nbsp; 在&ldquo;买本网&rdquo;网站策划和开发期，其设计方案中基于市场细分准确清晰地定位了目标顾客群体，其网站内容规划、栏目设置、功能设计、营销策略都是围绕顾客需求展开的，一切都以顾客满意为目标。买本网在上线之时，就充分考虑到需要全方位与顾客沟通，建立了数十个腾讯在线交流群，同时公开各种职能服务联系方式包括E-MAIL、MSN、QQ、电话等，确保用户可以很便捷的联系我们。</p>
<p>&nbsp;&nbsp;&nbsp; 二、保持顾客比开发顾客重要。</p>
<p>&nbsp;&nbsp;&nbsp; 1、网络营销环境中，开发顾客变得更加容易。互联网抹平了全世界的空间，网络营销也没有了时间的限制，坚持运用常规网站营销策略就可以以比传统营销低很多的成本，快速地让更多的顾客了解。由于极其便捷无成本，顾客轻轻移动鼠标就可以光顾网站获得基本资讯服务。尝试和好奇心理也很容易使初来者成为新顾客。网络营销跨时空、交互式、高效性、经济性等特点使得开发顾客更加容易。</p>
<p>&nbsp;&nbsp;&nbsp; 2、网络营销环境中，培育顾客忠诚度更加困难。顾客转移成本是指顾客由消费一种品牌转移到另一种品牌所发生的成本、费用，主要包括：货币成本、精力成本、心理成本。在传统商业模式下，顾客的转移成本是很大的。而在网络营销背景下，顾客可以在电脑屏幕前轻轻一按鼠标，几秒钟之内就可以获得成千上万条有关所需要同类产品和服务信息，低成本使得顾客更容易游移。由于网上各种产品和服务的信息量很大，替代商品也较易获得。另外，竞争的白热化使得各个网站都在想方设法争夺市场，争取客户。再有，即使顾客对过去使用过的某个产品或者服务感到满意，但由于搜寻成本极低，他可能会尝试寻求一个令自己更满意的品牌。因此，顾客很可能为了获得更大收益最终成为非忠诚者。所有这些因素都使网站培育顾客忠诚度变得更加困难。&ldquo;买本网&rdquo;运营初期就遇到这个问题，由于实力有限，在同类型的网络媒体中几乎毫无优势，统计报告显示每天老用户的访问量不足10％，而且人均访问页面也只有3个。在开放的互联网大环境下，保持顾客忠诚度变得越来越艰巨。</p>
<p>&nbsp;&nbsp;&nbsp; 3、管理顾客资源首先要做好保持顾客关系。网络营销活动中，除了要为顾客提供高度满意的产品和服务，还要通过加强与顾客的联系，提供快速高效的顾客服务，从过去的简单的一次性的合作关系转变到注重保持长期的关系上来，并在与顾客保持长期的关系的基础上积极开展营销活动，实现网站的营销目标。根据研究，争取一个新顾客的营销费用是保持一个老顾客费用的五倍，因此加强与顾客关系并建立顾客的忠诚度，是可以为网站带来长远的利益的，它提倡的是网站与顾客的双赢策略。如果所提供的产品和服务没有特色没有竞争力，顾客流失数量接近新客户数量或者更多，所做的任何网站营销活动就没有价值了。所以如何让顾客喜欢并记住这个网站，留住顾客远比开发顾客重要，尤其是在当今信息传播高速发达的互联网时代，口碑相传的低成本和高效率是任何网络营销手段无法比拟的。网站的内容建设和功能设计方面应当将留住顾客作为第一要素，让顾客可以在这里发现和获得价值，建立良好的顾客关系并提升顾客的忠诚度，努力实现网站的营销目标，实现网站与顾客双赢。</p>
<p>&nbsp;&nbsp;&nbsp; 4、充分利用互联网的优势可以更好的保持顾客关系。互联网作为一种有效的双向沟通渠道，网站与顾客之间可以实现低费用成本的沟通和交流，尤其像腾讯公司的QQ和微软的MSN等即时通讯工具的发展使得沟通更为便捷，它为网站与顾客建立长期关系提供有效的保障。这是因为，首先，顾客可以直接提出自己的个性化的需求，企业利用柔性化的生产技术最大限度满足顾客的需求，为顾客在消费产品或服务时创造更多的价值。同时，企业也可以从顾客的需求中了解市场、细分市场和锁定市场，最大限度降低营销费用，提高对市场的反应速度。其次，利用日益发达的计算技术和互联网，企业可以更好的进行顾客信息管理，为顾客提供个性化服务和与顾客保持联系。互联网的不受时间和空间限制的特性能最大限度方便顾客与网站进行沟通，顾客可以在最短时间内以简便方式获得网站的服务。</p>
<p>&nbsp;&nbsp;&nbsp; 三、以顾客为中心，实施网络整合营销战略，开发并保持顾客，提高顾客的忠诚度。</p>
<p>&nbsp;&nbsp;&nbsp; 1、产品和服务以顾客为中心。网站要长期保持顾客，除了网站速度、稳定性等基本硬件要求之外，具有顾客使用的便利性和吸引顾客的网站内容是第一位的。如果网站有些地方让用户使用的时候有困惑，对用户不够友好，增加了用户的操作成本，缺乏人性化设计，可能会引发用户不知道该&ldquo;做什么&rdquo;的&ldquo;挫折感&rdquo;，很容易就不会再来了。网站推广过程中，可以有很多付费的或者免费的方式开发顾客资源，但是要保持这些顾客就要努力提高顾客满意度，留下良好的口碑并让他们互相传颂、推荐。做到了这点，再去实施搜索引擎、友情链接和合作推广等网络营销策略将有更好的效果和更低的成本。所以，网站的内容和服务应当以顾客为中心，与顾客进行快速互动的沟通，为顾客提供准确详实及时的资讯和便捷低廉高效的服务。</p>
<p>&nbsp;&nbsp;&nbsp; 2、内容为王，要致力于提高网站整体服务质量。网站内容是吸引和维系访问者的根本，是搜索引擎优化的第一要素，提供丰富的内容也是网站推广的有效策略。网站内容规划的核心思想是：从目标访问者的角度出发，以网站信息对他们是否有价值作为最重要的内容选取标准。如果网站内容对访问者没有价值，访问者就不会再来光顾。网站需要简洁的、令人心悦诚服的内容和立体化的信息结构，同时最重要的是，内容要丰富、原创、通俗易懂并以文本来表现。坚持提高网站整体服务质量，为顾客创造更多价值，增强顾客满意感。顾客价值是顾客获得产品或服务时的总成本与总收益比较的结果。总收益超过总成本越多，顾客所获的价值就越大。为此，可采取价值分析方法分析顾客的核心需要与所追求的利益。同时，为在竞争中取得优势，网站必须能够比竞争对手更多地为其顾客创造价值。顾客获得较多的消费价值才会满意，只有满意的顾客才会对网站有较高的忠诚度。&ldquo;买本网&rdquo;现在的流量报表中，超过九成流量来自搜索引擎，这就是早期重点抓内容建设带来的良好效果，所以后续需要更加努力，提高内容更新的速度和数量。</p>
<p>&nbsp;&nbsp;&nbsp; 3、遵循网络礼仪规则，多渠道加强与顾客的沟通，采取拉式策略吸引顾客。使用软营销策略，与工业经济时代的以大规模生产为主要特征的&ldquo;强式营销&rdquo;不同，进行市场营销活动的同时必须尊重消费者的感受和体念，让消费者能舒适地主动接收网站的营销活动。传统营销活动中最能体现强势营销特征的是两种促销手段：传统广告和人员推销。在传统广告中，消费者常常是被迫的被动接受广告信息的&ldquo;轰炸&rdquo;，它的目标是通过不断的信息灌输方式在消费者心中留下深刻的印象，至于消费者是否愿意接受或需要不需要则不考虑，人人反感的群发软件和邮件广告就是此类；在人员推销中，推销人员根本不考虑被推销对象是否愿意和需要，只是根据推销人员自己的判断强行展开推销活动。但是在互联网上，由于信息交流是自由、平等、开放和交互，强调的是相互尊重和沟通，网络使用者一般都比较注重个人体验和隐私保护。因此，企业采用传统的强势营销手段在互联网上展开营销活动势必会适得其反，如美国著名AOL公司曾经对其用户强行发送E-mail广告，结果招致用户的一致反对，许多用户约定同时给AOL公司服务器发送E-mail进行报复，结果使得AOL的E-mail邮件服务器处于瘫痪状态，最后不得不道歉平息众怒。网络软营销恰好是从消费者的体验和需求出发，采取拉式策略吸引消费者关注网站来达到营销效果。在互联网上开展网络营销活动，特别是促销活动一定要遵循一定的网络虚拟社区形成规则，有的也称为&ldquo;网络礼仪（Netiquette）&rdquo;。在遵循网络礼仪规则的基础上巧妙运用软营销策略与顾客沟通，将产品与服务介绍给顾客，让顾客自然的接受并喜欢&ldquo;买本网&rdquo;，可以达到一种微妙的营销效果。</p>
<p>&nbsp;&nbsp;&nbsp; 4、灵活运用许可电子邮件营销、病毒性营销和网络社区营销等技巧。许可电子邮件营销是一种顾客主导型的营销，对顾客有吸引力和针对性，属于典型的互动时代的营销方式，其目标是逐渐提高用户许可的程度，使他们从陌生人变成顾客然后再变成忠诚的顾客。可以利用用户注册、订阅邮件列表或者促销活动的方式提供并加强诱因，让用户许可或者提高许可的等级，让用户参与，重视与用户之间的互动，强化与用户的情感沟通。同时要加强用户信息管理，结合其它多种网络营销活动，逐步积累用户资料，充分摸索提高邮件列表营销的实施技巧。病毒性营销就是利用网络用户的口碑来宣传网站，运用快速复制的方式，短时间内向数以万计的人传播和扩散营销信息的一种网络营销手段。作为网络新兴营销方式，病毒性营销具有威力巨大的催化作用，对每一位接触者提供易于传递和复制的携带营销信息的媒体，如免费贺卡、FLASH动画、电子杂志或者其它顾客定制服务等，促进其成为更大范围的信息发布者。 网络社区营销比较花费精力，但是效果比较好。尽量选择目标客户集中的网络社区，或者人气比较旺的网络社区，不要直接发广告，充分利用头像和签名含蓄地宣传网站。贵在精而不是多，发高质量的帖子，专注某些热点问题，争取获得更多的人浏览，这样就可以成功地间接宣传自己的网站。买本网就制作了自己的一套QQ表情图片，在不同场合使用后由网友广为传播出去，让更多的人可以认识并浏览网站。</p>
<p>&nbsp;&nbsp;&nbsp; 5、网络营销新趋势&mdash;&mdash;博客营销。将博客作为网络营销工具是近年来才兴起的，而且有愈演愈烈的势头，它有效扩大了网络营销信息传递到渠道。博客营销的意义直接体现为：带来潜在用户、降低网站推广费用、为用户通过搜索引擎获取信息提供了机会、可以方便地增加企业网站的链接数量、以更低的成本对读者行为进行研究、博客是建立权威网站品牌效应的理想途径之一、减小了被竞争者超越的潜在损失、让营销人员从被动的媒体依赖转向自主发布信息。由于搜索引擎喜欢那些内容丰富，频繁更新的网站，所以博客通常对增加网站的搜索引擎可见度有积极的作用。从成本的角度考虑，博客文章被搜索引擎收录所带来的免费效果可以部分替代在搜索引擎广告中的开支。另外，通过在博客网站发布文章为自己的网站做链接不仅能直接带来新的访问量，也可以增加网站在搜索引擎排名中的优势。以宋祖德、徐静蕾为成功的代表，我们可以看到博客营销潜在的巨大威力。而2006年6月，全球著名的微处理器厂商AMD公司正式签约徐静蕾，并在其博客投放广告，证明一向以创新作为企业竞争法则的AMD，亦是相当看好这种强调互动传播、强调小众传播影响大众传播的精准网络营销方式。买本网在最优秀的B2B网站阿里巴巴和IT类门户网站中关村在线都开通了企业博客，统计显示这两者对网站访问量有一定贡献，而且明显增加了网站在百度和谷歌等搜索引擎中的排名优势。</p>
<p>&nbsp;&nbsp;&nbsp; 四、搜索引擎营销已经成为网站推广的最重要的方法。</p>
<p>&nbsp;&nbsp;&nbsp; 搜索引擎也是从用户需求出发的。作为在线推广的首选手段，搜索引擎营销已经成为网站推广的最重要的方法。行文至此才提及，并非不重视搜索引擎营销，而是因为：对于一个网站包括搜索引擎网站本身来说，符合顾客需求，让顾客满意，以顾客为中心才是最重要的。所有的搜索引擎都在努力不断改进，追求顾客满意，所以，任何一个搜索引擎都喜欢把符合用户需求的优秀站点排到前面。这样总结起来，实现搜索引擎营销主要是两点：第一、内容优秀，更新勤快，是用户需要的信息，即前文所述的观点&mdash;&mdash;&ldquo;内容为王，要致力于提高网站整体服务质量&rdquo;；第二、网页设计符合搜索引擎的喜好，容易被搜索引擎收录和排名，这就需要从前期的网站策划、程序开发、网页设计到后期的网站维护都要考虑对搜索引擎保持友好界面，便于搜索引擎程序有效的更多的收录你的页面。当然，还有关键词的选择及设置、链接和反向链接的使用、加入搜索引擎索引和地址目录等专业SEO技术的综合运用，对内容优秀的网站是同样重要和必不可少的。总之，努力提高搜索引擎对网站内容的收录量，提高相关关键词的页面在搜索引擎中的排名位置，将可以使网站获得更大的发展空间。</p>
<p>&nbsp;&nbsp;&nbsp; 五、网络营销效果的评估和控制。</p>
<p>&nbsp;&nbsp;&nbsp; 网络营销效果综合评价是对一个时期网络营销活动的总结，也为制定下一阶段网络营销策略提供了依据，同时，通过对网站访问统计数据的分析，也可以提供很多有助于增强网络营销效果的信息。对网络营销效果的评价体系主要包含下列四个方面的内容：对网站设计评估指标、网站推广评估指标、网站使用评估指标；网站品牌价值评估指标。</p>
<p>&nbsp;&nbsp;&nbsp; 1、网站设计评估指标。首先，网站的功能设计应当人性化，足够的人性化设计是对顾客尊重的标志，彻底地考虑顾客的使用简捷方便，多从顾客的角度，功能、布局等处处为顾客着想。其次，网站设计的安全性和可扩展性，即必要的信息安全保障和足够的功能模块扩充能力。第三，网站使用的适应性，如：不同类型用户不同条件下访问的响应速度、有无死链接、拼写错误、不同浏览器的适应性、对搜索引擎的友好程度（标签合理与否）等。</p>
<p>&nbsp;&nbsp;&nbsp; 2、网站推广评估指标。</p>
<p>&nbsp;&nbsp;&nbsp; 第一，网站知名度，即网站在网络营销目标人群中知晓的比例。</p>
<p>&nbsp;&nbsp;&nbsp; 第二，网站在搜索引擎中的地位，包括登陆引擎数量及排名位置，这对网站增加新的访问量有着重要作用。</p>
<p>&nbsp;&nbsp;&nbsp; 第三，与相关重要网站的链接，主要对象是潜在目标用户集中的有关网站。</p>
<p>&nbsp;&nbsp;&nbsp; 3、网站使用评估指标。网站访问量指标可根据网站流量统计报告获得，其中最有价值的指标包括：独立访问者数量、页面浏览数量、注册用户数量、用户访问量的变化情况和访问网站的时间分布、访问者来自哪些网站/URL、访问者来自哪些搜索引擎、用户使用哪些关键词检索等。一份有价值的网站流量分析报告不仅仅是网站访问日志的汇总，还应该包括详细的数据分析和预测。通过网站流量分析获得的顾客行为资料，可以用以调整网站设计和运营，改善网络营销活动效果，更好的为顾客服务，提高收益。所有这些原始资料都存在于网站日志中，但如果不借助网站流量分析工具，将很难组织这些资料。使用流量分析工具有两种方法：一种是通过在自己的网站服务器端安装统计分析软件来进行网站流量监测；另一种是采用第三方提供的网站流量分析服务。两种方法各有利弊，采用第一种方法可以方便地获得详细的网站统计信息，并且除了访问统计软件的费用之外无需其他直接的费用，但由于这些资料在自己的服务器上，因此在向第三方提供有关数据时缺乏说服力；第二种方法则正好具有这种优势，但通常要为这种服务付费。具体采取哪种形式，或者哪些形式的组合，可根据网站网络营销的实际需要决定。在download.com中还可找到其它流量分析工具，诸如netiQ 公司的WebTrends就是一个很受欢迎的分析工具，包括一些低端工具如HitBox, LiveStats, Urchin，当然也有很多功能先进的高端工具。在网站发布初期，可以每天查看一次网站访问统计数据，并且每周进行一次汇总和分析；此后至少应保持每周查看一次（最近7天的访问数据），每月对当月网站访问统计数据进行汇总，并对最近3个月的访问统计信息进行对比分析。</p>
<p>&nbsp;&nbsp;&nbsp; 4、网站品牌价值评估指标。网站品牌是否能取得顾客的认可，是决胜竞争对手的关键。网站品牌的主要衡量标准有：品牌价值、域名价值、品牌延伸机会及客户评价。网络品牌必须具有可认知的、在网上存在的表现形式，如域名、网站（网站名称和网站内容）、电子邮箱、网络实名/通用网址等。网络品牌通过一定的手段和方式向用户传递信息并获得忠诚顾客，这种价值的转化过程是网络品牌建设中最重要的环节之一。任何顾客评价是品牌发展过程中的重要参考意见。</p>
<p>&nbsp;&nbsp;&nbsp; 通过从以上四个方面对网络营销效果评估，可以针对性的对网络营销策略进行调整和改善，持续改进顾客服务质量。</p>
<p>&nbsp;&nbsp;&nbsp; 六、总结</p>
<p>&nbsp;&nbsp;&nbsp; 任何网站作为基于互联网的信息平台，其营销方案理所当然地主要运用网络营销方式。在竞争日益激烈的社会经济环境中，网站必须坚持以客户为中心，以提高客户满意度为立足点，有效的开展顾客资源管理并实施网络营销整合战略，并定期对网络营销效果进行评估和控制，持续改进顾客服务质量，方可有效地实现其营销目标，才会从浩瀚如海的互联网上脱颖而出，成为其领域的出类拔萃者。</p>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=232</link>
			<category domain="http://www.shanghuo.net/?cid=13">火头军前锋</category>
			<pubDate>2007-07-25 13:58</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=171</guid>
			<title>bugzilla安装全过程</title>
			<author>jiashixiang</author>
			<description><![CDATA[<div class="diaryContent" id="diary605797" style="DISPLAY: block">安装bugzilla将近搞了一天,主要问题停留在apache的设置上,是在有点冤枉..<br /><br />1. 在http://www.bugzilla.org上<a name="baidusnap1"></a><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">下载</strong>bugzilla<br />2. 解开压缩包,放在目标目录,比如/<a name="baidusnap0"></a><strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">bugzila</strong><br />3.<br />cd /bugzilla<br />perl ./checksetup.pl<br />就会有一堆的检测信息,告诉你什么perl模块检测不到,需要安装<br />4. 安装必须的mysql,apache,以及上述的各个perl模块,比如perl-CGI,perl-DBI,Template,AppConfig等<br />特别提一下,安装perl模块一般有两种方法:<br />1.) 自己去www.cpan.org<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">下载</strong>所需要的模块压缩包,而后解开,进入到其目录下<br />perl Makefile.PL<br />make<br />make test<br />make install<br />2.) perl -MCPAN -e 'install &quot;module_name&quot;'<br />第二种方式比较直接,但是缺点是依赖网络速度,而且不能自定义<br />第一种方式的缺点是需要自己搜索相关模块,优点是可以自己安装所需版本的模块<br />5. 所有的模块全部安装完之后,再次运行 perl ./checksetup.pl ,这将会在/bugzilla/目录下产生一个文件 localconfig<br />编辑这个文件,至少修改以下几项内容:<br />$webservergroup = &quot;&quot;&nbsp;&nbsp; #设置apache运行的group<br />$db_host = &quot;localhost&quot;<br />$db_port = &quot;3306&quot;<br />$db_name = &quot;bugzilla&quot;<br />$db_user =&quot;root&quot;<br />$db_pass = &quot;&quot;<br />保存退出<br />6. 修改/bugzilla权限属性<br />假定apache以nobody运行,则<br />chown nobody:nobody /bugzilla -R<br />chmod 775&nbsp; /bugzilla -R<br />chmod 100 localconfig<br />chmod 640 *pl *sh<br />7. 修改apache配置<br />vi httpd.conf<br />添加以下几行:<br />Alias /bugzilla/ &quot;/bugzilla/&quot;<br />&lt;Directory &quot;/bugzilla/&quot;&gt;<br />&nbsp;Options +ExecCGI +FollowSymLinks<br />&nbsp;AllowOverride Limit<br />&nbsp;Options None<br />&nbsp;Order allow,deny<br />&nbsp;Allow from all<br />&lt;/Directory&gt;<br />AddHandler cgi-script .cgi<br />保存退出,重新启动apache<br />接下来就可以通过http://xxx/bugzilla/方式访问bugzilla了,如果还有问题请查看apahce的error_log来分析,同时也可以利用bugzilla的一个测试脚本来检测,例如:<br />cd /bugzilla<br />perl ./testserver.pl http://xxx/bugzilla/<br />检测脚本就会告诉你哪个部分除了问题<br /></div>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=171</link>
			<category domain="http://www.shanghuo.net/?cid=13">火头军前锋</category>
			<pubDate>2006-12-19 22:55</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=80</guid>
			<title>在Windows XP环境配置Apache 2和PHP 5</title>
			<author>yangyang</author>
			<description><![CDATA[<p>中文翻译均为配置的核心（基础）步骤，不保证文章段落之间的连贯。更多特性请参考<a href="http://www.apache.org/" target="_blank">Apache</a>和<a href="http://www.php.net/" target="_blank">PHP</a>网站提供的文档。</p><br /><br /><a href="http://www.shanghuo.net/?action=show&amp;id=80" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=80</link>
			<category domain="http://www.shanghuo.net/?cid=13">火头军前锋</category>
			<pubDate>2006-08-02 16:50</pubDate>
		</item>
	</channel>
</rss>
