- 1、本文档共96页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[文学研究]第5 章SQL结构化查询语言
第五章 SQL(结构化查询语言) §5.1SQL §5.2 SELECT 查询语句 §5.3基于单表的查询 §5.4基于多表的连接查询 §5.5子查询 例5.34查找选修了课程编号为“2”的课程且成绩在60分以上的学生姓名和成绩. SELECT student_name,result From student_info JOIN result_info ON student_info.student_id=result_info.student_idON指定连接条件 Where result_info.course_no=‘2’And result_info.result60 例5.35查找选修了“汇编语言”课程且成绩在70分以上的学生学号、姓名、课程名及成绩。 SELECT student_info.student_id,student_name,course_name,result From student_info JOIN result_info ON student_info.student_id=result_info.student_id JOIN course_info ON result_info.course_no=course_info.course_no Where course_name=‘汇编语言’AND result70 例5.36查找不同课程,成绩相同的学生的学号、课程号和成绩。 SELECT a.student_id,a.course_no,a.result From result_info a JOIN result_info b ON a.result=b.result AND a.student_id=b.student_id AND a.course_nob.course_no 2.外连接 外连接的结果表不但包含满足连接条件的行,还包括相应表中的所有行。有时我们想以student表为主体列出每个学生的基本情况及选课情况,若某个学生没有选课,只输出其基本情况,其选课信息为空值即可。 外连接包括三种: (1)左向外连接(LEFT OUTER JOIN)或(LEFT JOIN) 结果表中除了满足连接条件的行,还包括左表中的所有行。包括第一个命名表(“左”表,出现在JOIN字句的最左边)中的所有行。不包括右表中的不匹配行。 (2)右向外连接(RIGHT OUTER JOIN)或(RIGHT JOIN) 结果表中除了满足连接条件的行,还包括右表中的所有行。包括第二个命名表(“右”表,出现在JOIN字句的最右边)中的所有行。不包括左表中的不匹配行。 (3)完整外部连接 结果表中除了满足连接条件的行,还包括两表中的所有行。若要通过在连接结果中包括不匹配的行保留不匹配的信息,可以使用完整外部连接。 例5.37采用左向外连接。查找200001班所有学生的学号、姓名及他们选修的课程号,同时也列出该班没选课的学生的学号、姓名。 SELECT student_info.student_id, Student_name,result_info.course_no From student_info LEFT OUTER JOIN result_info ON student_info.student_id=result_info.student_id Where class_no=‘200001’ 【例5.21】列出所有电话号码第2个数为“7”,并以“88”结尾的学生的学号和姓名. SELECT student_id,student_name,tele_number From student_info Where tele _number LIKE ‘_7%88’“%”代表任意多个字符 九、使用ORDER BY 子句对查询结果排序 1.”ORDER BY”子句的基本格式 SELECT字段名1,… FROM 表名 [WHERE 条件表达式] [ORDER BY 子句表达式1[ASC|DESC],…] 在上述格式中,“子句表达式1”可以是一个列名,列的别名,表达式或非零的整数值,而非零的整数值则表示字段,别名或表达式在选择列表中的位置.ASC表示升序,为默认值;DESC表示降序,排序时空值(NULL)被认为是最小值. 2. “ORDER BY”子句的应用实例 【例5.22】将student_info表中的学生按出生时间先后顺序排序. SELECT student_id,student_name,born_date From student_info ORDER BY born_date 【例5.23】列出2000年元旦前入学的学生名单.要求查询结果按入学时间降序显示,若入校时间相同,则按学号升序排列. SELE
文档评论(0)