SQL数据操作基础(中级)8
2008-04-02 10:53:33来源:互联网 阅读 ()
要修改表中已存在的一条或多条记录,应使用SQL UPDATE语句。同DELETE语句相同,UPDATE语句能够使用WHERE子句来选择更新特定的记录。请看这个例子:
UPDATE mytable SET first_column=’Updated!’ WHERE second_column=’Update Me!’
这个UPDATE 语句更新任何second_column字段的值为’Update Me!’的记录。对任何被选中的记录,字段first_column的值被置为’Updated!’。
下面是UPDATE语句的完整句法:
UPDATE {table_name|view_name} SET [{table_name|view_name}]
{column_list|variable_list|variable_and_column_list}
[,{column_list2|variable_list2|variable_and_column_list2}…
[,{column_listN|variable_listN|variable_and_column_listN}]]
[WHERE clause]
注意:
您能够对文本型字段使用UPDATE语句。但是,假如您需要更新很长的字符串,应使用UPDATETEXT语句。这部分内容对本书来说太高级了,因此不加讨论。要了解更多的信息,请参考Microsoft SQL Sever 的文档。
假如您不提供WHERE子句,表中的任何记录都将被更新。有时这是有用的。例如,假如您想把表titles中的任何书的价格加倍,您能够使用如下的UPDATE 语句:
您也能够同时更新多个字段。例如,下面的UPDATE语句同时更新first_column,second_column,和third_column这三个字段:
UPDATE mytable SET first_column=’Updated!’
Second_column=’Updated!’
Third_column=’Updated!’
WHERE first_column=’Update Me1’
技巧:
SQL忽略语句中多余的空格。您能够把SQL语句写成任何您最容易读的格式。
用SELECT 创建记录和表
您也许已注意到,INSERT 语句和DELETE语句和UPDATE语句有一点不同,他一次只操作一个记录。然而,有一个方法能够使INSERT 语句一次添加多个记录。要作到这一点,您需要把INSERT 语句和SELECT 语句结合起来,象这样:
INSERT mytable (first_column,second_column)
SELECT another_first,another_second
FROM anothertable
WHERE another_first=’Copy Me!’
这个语句从anothertable拷贝记录到mytable.只有表anothertable中字段another_first的值为’Copy Me!’的记录才被拷贝。
当为一个表中的记录建立备份时,这种形式的INSERT 语句是很有用的。在删除一个表中的记录之前,您能够先用这种方法把他们拷贝到另一个表中。
假如您需要拷贝整个表,您能够使用SELECT INTO 语句。例如,下面的语句创建了一个名为newtable的新表,该表包含表mytable的任何数据:
SELECT * INTO newtable FROM mytable
您也能够指定只有特定的字段被用来创建这个新表。要做到这一点,只需在字段列表中指定您想要拷贝的字段。另外,您能够使用WHERE 子句来限制拷贝到新表中的记录。下面的例子只拷贝字段second_columnd的值等于’Copy Me!’的记录的first_column字段。
SELECT first_column INTO newtable
FROM mytable
WHERE second_column=’Copy Me!’
使用SQL修改已建立的表是很困难的。例如,假如您向一个表中添加了一个字段,没有容易的办法来去除他。另外,假如您不小心把一个字段的数据类型给错了,您将没有办法改变他。但是,使用本节中讲述的SQL语句,您能够绕过这两个问题。
例如,假设您想从一个表中删除一个字段。使用SELECT INTO 语句,您能够创建该表的一个拷贝,但不包含要删除的字段。这使您既删除了该字段,又保留了不想删除的数据。
假如您想改变一个字段的数据类型,您能够创建一个包含正确数据类型字段的新表。创建好该表后,您就能够结合使用UPDATE语句和SELECT 语句,把原来表中的任何数据拷贝到新表中。通过这种方法,您既能够修改表的结构,又能保存原有的数据。
集合函数
到现在为止,您只学习了如何根据特定的条件从表中取出一条或多条记录。但是,假如您想对一个表中的记录进行数据统计。例如,假如您想统计存储在表中的一次民意测验的投票结果。或您想知道一个访问者在您的站点上平均花费了多少时间。要对表中的任何类型的数据进行统计,都需要使用集合函数。
Microsoft SQL 支持五种类型的集合函数。您能够统计记录数目,平均值,最小值,最大值,或求和。当您使用一个集合函数时,他只返回一个数,该数值代表这几个统计值之一。
注意:
要在您的ASP网页中使用集合函数的返回值,您需要给该值起一个名字。要作到这一点,您能够在SELECT语句中,在集合函数后面紧跟一个字段名,如下例所示:
SELECT AVG(vote) ‘the_average’ FROM opinion
在这个例子中,vote的平均值被命名为 the_average。现在您能够在您的ASP网页的数据库方法中使用这个名字。
统计字段值的数目
函数COUNT()也许是最有用的集合函数。您能够用这个函数来统计一个表中有多少条记录。这里有一个例子:
SELECT COUNT(au_lname) FROM authors
这个例子计算表authors中名字(last name)的数目。假如相同的名字出现了不止一次,该名字将会被计算多次。假如您想知道名字为某个特定值的作者有多少个,您能够使用WHERE子句,如下例所示:
SELECT COUNT(au_lname) FROM authors WHERE au_lname=’Ringer’
这个例子返回名字为’Ringer’的作者的数目。假如这个名字在表authors中出现了两次,则次函数的返回值是2。
假如您想知道有不同名字的作者的数目。您能够通过使用关键字DISTINCT来得到该数目。如下例所示:
SELECT COUNT(DISTINCT au_lname) FROM authors
假如名字’Ringer’出现了不止一次,他将只被计算一次。关键字DISTINCT 决定了只有互不相同的值才被计算。
通常,当您使用COUNT()时,字段中的空值将被忽略。一般来说,这正是您所希望的。但是,假如您仅仅想知道表中记录的数目,那么您需要计算表中任何的记录─不管他是否包含空值。下面是个如何做到这一点的例子:
SELECT COUNT(*) FROM authors
注意函数COUNT()没有指定任何字段。这个语句计算表中任何记录所数目,包括有空值的记录。因此,您无需指定要被计算的特定字段。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: SQL数据操作基础(初级)4
下一篇: SQL查询语句精华使用简要
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash