数据库语言SQL——数据查询3.ppt

数据库语言SQL——数据查询3.ppt

ID:55363193

大小:226.00 KB

页数:15页

时间:2020-05-15

数据库语言SQL——数据查询3.ppt_第1页
数据库语言SQL——数据查询3.ppt_第2页
数据库语言SQL——数据查询3.ppt_第3页
数据库语言SQL——数据查询3.ppt_第4页
数据库语言SQL——数据查询3.ppt_第5页
资源描述:

《数据库语言SQL——数据查询3.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本章内容4.1基本查询4.2嵌套查询4.3连接查询多表连接查询多表查询指的是从多个源表中检索数据。因此,多表查询时,FROM子句中的<数据源表>要给出所有源表表名,各个表名之间要用逗号分隔。1.多表查询的FROM子句格式:FROM<源表表名集>例如,若一个查询用到三个表,表名分别为学生信息表、选修信息表,课程信息表。FROM子句应为:FROM学生信息表,选修信息表,课程信息表2.多表查询中的SELECT子句与单表查询的SELECT子句功能基本相同,也是用来指定查询结果表中包含的列名。不同的是:如果多个表中有相同的列名,则需要用<表名>.<列名>来限定列是那个表的列。例如,学生信息表和选修

2、信息表中都有学号列,为了在结果表中包含学生信息表的学号列,则要用学生信息表.学号表示。还可用<表名>.*,表示<表名>指定的表中的所有列。例如,学生信息表.*,表示学生信息表的所有列。3.多表查询中的GROUPBY、HAVING、ORDERBY子句与单表查询中的用法基本相同。不同的是:如果列名有重复,则要用<表名>.<列名>来限定列是那个表的列。4.多表查询中的WHERE子句与单表查询中的用法差别较大。多表查询中往往要有多表的连接条件,当然还有表的一个或多个行选择条件,多个行选择条件两者用AND组合。这里着重介绍多表的连接条件。按连接条件的不同,连接分为:内连接、外连接。外连接又分为左外

3、连接、右外连接。SQLServer2000默认情况下为内连接。(1)内连接等值连接与自然连接等值连接:即根据两个表的对应列值相等的原则进行连接。连接条件的形式往往是“主键=外键”,即按一个表的主键值与另一个表的外键值相同的原则进行连接。常用的等值连接条件形式:<表名1>.<列名1>=<表名2>.<列名2>【例】查询每个学生的基本信息以及他/她选课的情况。SELECT学生信息表.*,选修信息表.*FROM学生信息表,选修信息表WHERE学生信息表.学号=选修信息表.学号上述结果表中含有学生信息表的所有列和选修信息表的所有列,存在一个重复的列学号,这说明是等值连接。如果要去掉重复列,就要用S

4、ELECT子句指定结果表中包含的列名,这样就成为自然连接。如下:SELECT学生信息表.学号,姓名,性别,年龄,系别,课程号,成绩FROM学生信息表,选修信息表WHERE学生信息表.学号=选修信息表.学号【例】查询每个学生的学号、姓名、选修的课程名、成绩。SELECT学生信息表.学号,姓名,课程名,成绩FROM学生信息表,课程信息表,选修信息表WHERE学生信息表.学号=选修信息表.学号AND课程信息表.课程号=选修信息表.课程号【例】查询选修了2且成绩大于90分的学生的学号、姓名、成绩。SELECT学生信息表.学号,姓名,成绩FROM学生信息表,选修信息表WHERE学生信息表.学号=选

5、修信息表.学号AND课程号=‘2’AND成绩>90这里:用AND将一个连接条件和两个行选择条件组合成为查询条件【例】求计算机系选修课程大于等于2门课的学生的学号、平均成绩,并按平均成绩从高到低排序。SELECT学生信息表.学号,AVG(成绩)as‘平均分'FROM学生信息表,选修信息表WHERE学生信息表.学号=选修信息表.学号AND系别=‘计算机'GROUPBY学生信息表.学号HAVINGCOUNT(*)>=2ORDERBYavg(成绩)DESC(3)外连接外连接不仅包括满足连接条件的行,而且还包括其中某个表中不满足连接条件的行。标准SQL中,外连接分为左外连接、右外连接。1)左外连接

6、(LEFTOUTERJOIN)结果中包括“左”表中所有行及“右”表中所有匹配的行(不包括“右”表中不匹配的行)2)右外连接(RIGHTOUTERJOIN)结果中包括“右”表中所有行及“左”表中所有匹配的行(不包括“左”表中不匹配的行)1)左外连接(LEFTOUTERJOIN)例:查询所有学生姓名及其选课情况(课程号)selects.姓名,sc.课程号from学生信息表assleftouterjoin选修信息表asscon(s.学号=sc.学号)或者:Select学生信息表.姓名,选修信息表.课程号from学生信息表leftouterjoin选修信息表on(学生信息表.学号=选修信息表.学

7、号)2)右外连接(RIGHTOUTERJOIN)例:查询选课的学生姓名及其选课情况(课程号)selects.姓名,sc.课程号from学生信息表assrightouterjoin选修信息表asscon(s.学号=sc.学号)或者:Select学生信息表.姓名,选修信息表.课程号from学生信息表rightouterjoin选修信息表on(学生信息表.学号=选修信息表.学号)复习题查询年龄在20岁以下的学生的基本信息查询名字中第2个字

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。