第5章 表中数据的操作课件.ppt
《第5章 表中数据的操作课件.ppt》由会员分享,可在线阅读,更多相关《第5章 表中数据的操作课件.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SQL SERVER应应 用用 与与 开开 发发计算机工程技术学院(软件学院) 任淑美二00七年九月(五)(五)本课主要内容本课主要内容 在企业管理器中操作表中的数据使用SELECT语句查询数据使用INSERT语句插入数据使用UPDATE语句更新数据使用DELETE语句删除数据本课核心知识点本课核心知识点SELECT语句INSERT语句UPDATE语句DELETE语句本课重点难点本课重点难点SELECT语句的基本结构及其各子句的用法使用INSERT、UPDATE、DELETE语句插入、修改和删除表中数据嵌套查询 本课教学目的本课教学目的掌握如何在企业管理器中操作表中的数据 掌握使用SELECT
2、语句查询数据的方法 掌握使用INSERT语句插入数据的方法 掌握使用UPDATE语句更新数据的方法 掌握使用DELETE语句删除数据的方法 第第5章章 表中数据的操作表中数据的操作 5.1 在企业管理器中操作表中的数据在企业管理器中操作表中的数据 表中数据的操作包括数据的查询、插入、更新和删除。 在企业管理器中,打开指定的服务器和数据库选项,右击所要操作的表,选择“打开表”选项,选择“查询”选项,出现查询数据对话框 。在对话框中设置各种查询条件,还可以直接输入Transact-SQL中的查询语句,单击工具栏中的执行按钮将执行指定的查询,并显示查询结果。打开指定的服务器和数据库选项,右击所要操作
3、的表,从弹出的快捷菜单中选择“打开表”选项,选择“返回所有行”或“返回首行”选项,出现显示数据对话框。将光标定位到最后一条记录后面,输入数据就可以完成插入操作;将光标定位到某条记录,改变某个数据的值就可以完成更新操作;右击某条记录,从弹出的快捷菜单中选择“删除”选项可以完成记录的删除操作。 5.2 使用使用SELECT语句查询数据语句查询数据 【问题5-1】要求按所发帖子的总点击数由高到低,列出所发帖子的总点击数超过1000的论坛用户的编号、昵称和帖子总点击数。如何使用SQL语句完成这个查询任务? SELECT语句的功能就是从数据库中检索出符合用户需求的数据。 语法格式:语法格式:SELECT
4、 select_list INTO new_table FROM table_source WHERE search_condition GROUP BY group_by_expression HAVING search_condition ORDER BY order_expression ASC | DESC SELECT语句至少要包含SELECT和FROM两个子句。 5.2.1 使用使用SELECT子句子句 SELECT子句语法形式如下:SELECT ALL | DISTINCT TOP n PERCENT WITH TIES := * | table_name | view_name
5、 | table_alias .* | column_name | expression | IDENTITYCOL | ROWGUIDCOL AS column_alias | column_alias = expression ,.n 。 参数说明:参数说明: ALL:指定在结果集中可以显示重复行。ALL 是默认设置。DISTINCT:指定在结果集中只能显示唯一行。空值被认为相等。TOP n PERCENT:指定输出查询结果集中的前 n 行。n 是介于 0 和 4294967295 之间的整数。如果还指定了 PERCENT,则只输出结果集中的 前百分之 n 行。当指定时带 PERCENT
6、时,n 必须是介于 0 和 100 之间的整数。如果查询包含 ORDER BY 子句,将输出由 ORDER BY 子句排序后的前 n 行(或前百分之 n 行)。WITH TIES:指定返回结果集中最后的n行或n%行。:指定查询结果集中的列。选择列表是以逗号分隔的一系列表达式。 *:表示所有列table_name | view_name | table_alias.* :将 * 的作用域限制为指定的表或视图。column_name:指定要返回的列名。expression:是列名、常量、函数以及运算符连接的表达式。 。在expression中可以使用行聚合函数(又称统计函数),SQL Server
7、中常用的聚合函数如表 。说明:DISTINCT表示在计算时去掉列中的重复值。如果不指定DISTINCT或指定ALL(默认),则计算所有指定的值。IDENTITYCOL:返回标识列。 ROWGUIDCOL:返回行全局唯一标识列。 column_alias:指定列的别名。 。 【例5-1】假设Section表中的数据如表所示。(1)查询表中的所有记录。SELECT * FROM Section(2)查询所有版块的名称(SName),点击率(SClickCount)和帖子数量(STopicCount)。SELECT Sname, SClickCount, STopicCount FROM Secti
8、on查询结果如下:SName SClickCount STopicCount - - - 【逍遥体苑】 50 1 【相约同行】 100 1 【游记攻略】 120 0(所影响的行数为 3 行)(3)查询所有版块的SName(别名为版块名称),SMasterID(别名为版主编号)和SClickCount(别名为点击率)。SELECT 版块名称=Sname, SMasterID AS 版主编号, SClickCount 点击率FROM Section说明:说明:在上例中使用了更改列标题(定义别名)的3种方法:列别名= 列名列名 AS 列别名列名 列别名注意:注意:列别名的使用范围:列别名只在定义的语
9、句中有效。(4)查询前2条记录。SELECT TOP 2 * FROM Section(5)查询所有版块的帖子数量(STopicCount),去掉重复值。SELECT DISTINCT STopicCount FROM Section(6)统计所有版块的帖子总数。SELECT SUM(STopicCount) FROM Section5.2.2 使用使用INTO子句子句 INTO子句用于创建新表并将查询结果插入新表中 。语法格式: INTO new_table 其中的参数new_table用于指定所要生成的新表的名称。新创建表的列由select_list指定。【例5-2】创建一个只有版块编号、
10、版块名称和点击率的新表New_Section_,其列定义和表中数据与Section表相同。SELECT SID, Sname, SClickCount INTO New_Section FROM Section运行结果如下: (所影响的行数为 3 行)执行select * from New_Section,返回结果为:SID Sname SClickCount - - - 1 【逍遥体苑】 502 【相约同行】 1003 【游记攻略】 120(所影响的行数为 3 行)。5.2.3 使用使用FROM子句子句 FROM子句用于指定要查询的表 。语法形式如下:FROM ,.n .:指定查询所用的表、
11、视图、派生表或联接表。 【例5-3】假设Users表中的数据如下图所示。(1)查询所有版块的版块编号、版块名称、版主的编号、姓名以及电子邮箱。USE bbsDBGOSELECT SID , SName, UID, UName, UEmail FROM Section, UsersWHERE Users.UID= Section.SmasterIDGO(2)使用内联接INNER JOIN 完成(1)的功能。SELECT SID , SName, UID, UName, UEmail FROM Section INNER JOIN UsersON UID= SmasterID。5.2.4 使用使用
12、WHERE子句子句 WHERE子句是条件子句,用于限定查询的内容。 语法格式:语法格式:WHERE := NOT | ( ) AND |OR NOT | ( ) ,.n 参数说明:参数说明: search_condition:查询的条件表达式1. 比较表达式使用比较表达式的一般形式为:expression operator expressionexpression:可以是列名、常量、函数、变量、标量子查询,或者是由运算符或子查询连接的列名、常量和函数的任意组合。还可以包含 CASE 函数。operator: 比较运算符=(等于) (大于) =(对于等于)(小于) =(小于等于) (不等于)!(
13、不大于) !=102逻辑表达式在Transact-SQL中可以使用的逻辑运算符有3个:NOT(逻辑反)、AND(逻辑与)、OR(逻辑或)逻辑运算符的优先顺序是 NOT、 AND、 OR。在比较表达式和逻辑表达式中有3种可能的取值:TRUE、FALSE或UNKNOWN。【例5-5】查询表Section中点击率不低于100,并且帖子数量不为0的版块。SELECT * FROM Section WHERE SClickCount=100 AND STopicCount03BETWEEN关键字使用BETWEEN关键字可以限定查寻范围,其语法形式如下:test_expression NOT BETWEE
14、N begin_expression AND end_expression 参数说明: test_expression:被测试的表达式。begin_expression :指定取值范围的上限。end_expression:指定取值范围的下限。【例5-6】查询表Section中点击率在50和100之间的版块。SELECT * FROM Section WHERE SClickCount BETWEEN 50 AND 1004IN关键字使用IN关键字可以测试给定的值是否与子查询或列表中的值相匹配。语法格式:test_expression NOT IN ( subquery | expression
15、 ,.n ) 参数说明:test_expression:任何有效的SQL Server表达式。subquery:包含某列结果集的子查询。expression ,.n:一个表达式列表,用来测试是否匹配。【例5-7】从Users表中查询生日不在3月、5月和7月的论坛用户信息。SELECT * FROM Users WHERE MONTH(UBirthday) NOT IN (3,5,7)5LIKE关键字LIKE关键字用于将所给字符串与指定的的模式匹配。语法格式:match_expression NOT LIKE pattern ESCAPE escape_character 参数说明:match_
16、expression:任何字符串数据类型的有效 SQL Server 表达式。Pattern:指定match_expression 中的搜索模式,可以包含下列有效 SQL Server 通配符:%:可匹配任意类型和长度的字符串。_(下划线):可匹配任何单个字符。 :指定范围或集合中的任何单个字符。:不属于指定范围或集合的任何单个字符escape_character:允许在字符串中搜索通配符,而不是将其作为通配符使用。【例5-8】在Pubs数据库的 authors 表中查找所有区号为 415 的电话号码。USE pubsGOSELECT phoneFROM authorsWHERE phone
17、LIKE 415%ORDER by au_lnameGO【例5-9】在Pubs数据库的 authors 表中查找名字为 Cheryl 或 Sheryl 的作者。USE pubsGOSELECT au_lname, au_fname, phoneFROM authorsWHERE au_fname LIKE CSherylORDER BY au_lname ASC, au_fname ASCGO查询结果如图5所示。 【例5-10】 在Pubs数据库的 authors 表中查找姓为 Carson、Carsen、Karson 或 Karsen 的作者。USE pubsGOSELECT au_lnam
18、e, au_fname, phoneFROM authorsWHERE au_lname LIKE CKarseonORDER BY au_lname ASC, au_fname ASCGO查询结果如图所示。 6NULL关键字 在WHERE子句中不能使用比较运算符对空值进行判断,只能使用IS NULL来确定一个给定的表达式是否为 NULL。其语法形式如下:expression IS NOT NULL参数expression是任何有效的SQL Server表达式。 【例5-11】在Pubs数据库的 authors 表中查找所有预付款少于 $5,000 或者预付款未知(或为 NULL)的书,返回它
19、们的书号及预付款。USE pubsGOSELECT title_id, advanceFROM titlesWHERE advance $5000 OR advance IS NULLGO查询结果如下: 5.2.5 使用使用GROUP BY子句子句 GROUP BY子句用来对查询结果分组。 语法格式: GROUP BY ALL group_by_expression ,.n WITH CUBE | ROLLUP 参数说明参数说明:ALL:包含所有组和结果集。 group_by_expression:是对其执行分组的表达式。CUBE:指定在结果集内不仅包含由 GROUP BY 提供的正常行,还包
20、含汇总行。ROLLUP:指定在结果集内不仅包含由 GROUP BY 提供的正常行,还包含汇总行。按层次结构顺序,从组内的最低级别到最高级别汇总组。注意:注意:指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中。【例5-12】统计论坛库中Users表中的男、女用户人数。USE bbsDBGOSELECT USex, COUNT(*) 人数 FROM Users GROUP BY USexGO查询结果如图 5.2.6 使用使用HAVING子句子句 HAVING 子句指定组或聚合的搜索条件。HAVING 通常与 GROUP BY 子句一起使用。如果不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 表中数据的操作课件 数据 操作 课件
限制150内