SQL Server 2005数据库实用教程第5章 结构化查询语言SQL.ppt

SQL Server 2005数据库实用教程第5章 结构化查询语言SQL.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
参数说明: (1)table_source:指定要在 Transact-SQL 语句中使用的表、视图或派生表源(有无别名均可)。虽然语句中可用的表源个数的限值根据可用内存和查询中其他表达式的复杂性而有所不同,但一个语句中最多可使用 256 个表源。单个查询可能不支持最多有 256 个表源。可将 table 变量指定为表源。 (2)table_or_view_name:表或视图的名称。 (3)[AS] table_alias:table_source 的别名,别名可带来使用上的方便,也可用于区分自联接或子查询中的表或视图。别名往往是一个缩短了的表名,用于在联接中引用表的特定列。 (4)joined_table:由两个或更多表的积构成的结果集。对于多个联接,请使用圆括号来更改联接的自然顺序。 (5)join_type:指定联接操作的类型。 (6)INNER:指定返回所有匹配的行对。放弃两个表中不匹配的行。如果未指定任何联接类型,此设置为默认设置。此连接类型为内连接。 (7)FULL [ OUTER ]:指定在结果集中包括左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为 NULL。这是对通常由 INNER JOIN 返回的所有行的补充。此连接类型为完整连接。 (8)LEFT [ OUTER ]:指定在结果集中包括左表中所有不满足联接条件的行,并在由内部联接返回所有的行之外,将另外一个表的输出列设为 NULL。此连接类型为左连接。 (9)RIGHT [OUTER]:指定在结果集中包括右表中所有不满足联接条件的行,且在由内部联接返回的所有行之外,将与另外一个表对应的输出列设为 NULL。此连接类型为右连接。 (10)JOIN:指示指定的联接操作应在指定的表源或视图之间执行。 (11)ON search_condition:指定联接所基于的条件。 (12)CROSS JOIN:指定两个表的笛卡尔积。 (13)其它参数略。 1.内部连接 内部连接(INNER JOIN)使用比较运算符根据每个表的通用列中的值匹配两个表中的行。例如,检索Student和Choice表中学生学号相同的所有行。内部连接是使用比较运算符比较要连接列中的值的连接。在SQL-92标准中,可以在FROM子句或WHERE子句中指定内部连接,这是WHERE子句中惟一一种SQL-92支持的连接类型。 (1)将连接条件放在FROM子句中的格式: FROM table_name1 INNER JOIN table_nam2 ON table_name1.cloumn=table_name2.cloumn (2)将连接条件放在WHERE子句中的格式: FROM table_nam21,table_name2 WHERE table_name1.cloumn=table_name2.cloumn [AND search_condition] 注意:如果两个表具有相同的列,在列名前加上table_name.column。 【例5-62】:查询选修了课程的学生的学号、姓名。 USE Studentdb GO SELECT DISTINCT Student.S_NO,Student.S_name FROM Student INNER JOIN Choice ON Student.S_NO=Choice.S_NO GO 【例5-63】查询全体学生的学号、姓名和班级名。 USE Studentdb GO SELECT Student.S_NO,Student.S_name,Class_name FROM Student INNER JOIN Class ON Student.Class_NO=Class.Class_NO GO 【例5-64】查询选修了“计算机网络基础”课程的学生的学号、姓名和成绩。 USE Studentdb GO SELECT DISTINCT Student.S_NO,Student.S_name,Choice.Score FROM Student INNER JOIN Choice ON Student.S_NO=Choice.S_NO INNER JOIN Course ON Choice.C_NO=Course.C_NO WHERE C_name=计算机网络基础 GO 【例5-65】查询各门课程的平均分与总成绩,查询结果显示课程号、课程名、平均分和总成绩。 USE Studentdb GO SELECT DISTINCT Choice.C_no AS 课程号,Course.C_Name AS 课程名,AVG(Choice.Score) AS 平均分,SUM(Choice.Score) AS 总成绩 FROM Choice INNER

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档