文档详情

关系数据库标准语言-SQL.ppt

发布:2025-04-03约1.46万字共10页下载文档
文本预览下载声明

数据查询语句(2)自身连接操作

例如,课程表中的先行课是在上学期应开设的,先行课的先行课,即间接先行课应提前一学年开设。如果求查询某门课的间接先行课或全部课程的间接先行课,就需要对课程表进行自身连接。课程号课程名先行课C1计算机引论—C2PASCAL语言C1C3数据结构C2C4数据库C3C5软件工程C4课程的先行关系链为:C5→C4→C3→C2→C1,课程的间接关系链为:C5→C3→C1。数据查询语句(2)自身连接操作【例5-18】查询每一门课的间接先行课。

SELECTA.课程号,A.课程名,B.先行课

FROM课程A,课程B

WHEREA.先行课=B.课程号课程号课程名先行课?课程号课程名先行课C1计算机引论?C1计算机引论?C2Pascal语言C1C2Pascal语言C1C3数据结构C2C3数据结构C2C4数据库C3C4数据库C3C5软件工程C4C5软件工程C4数据查询语句(2)自身连接操作【例5-18】查询每一门课的间接先行课。

SELECTA.课程号,A.课程名,B.先行课

FROM课程A,课程B

WHEREA.先行课=B.课程号A.课程号A.课程名B.先行课C2Pascal语言?C3数据结构C1C4数据库C2C5软件工程C3数据查询语句(3)外部连接操作左外部连接操作是在结果集中保留连接表达式左表中的非匹配记录;右外部连接操作是在结果集中保留连接表达式右表中的非匹配记录。外部连接符号为“*=”,右外部连接符号为“=*”。外部连接中不匹配的分量用NULL表示。职工号姓名性别年龄所在部门?部门号部门名称电话1010李勇男201111生产科5661011刘晨女19?12计划科5781012王敏女221213一车间4671014张立男211314科研所?数据查询语句(3)外部连接操作职工号姓名性别年龄所在部门部门名称电话1010李勇男2011生产科5661012王敏女2212计划科5781014张立男2113一车间467内连接的结果集数据查询语句(3)外部连接操作左连接的结果集职工号姓名性别年龄所在部门部门名称电话1010李勇男2011生产科5661011刘晨女19???1012王敏女2212计划科5781014张立男2113一车间467数据查询语句(3)外部连接操作右连接的结果集职工号姓名性别年龄所在部门部门名称电话1010李勇男2011生产科5661012王敏女2212计划科5781014张立男2113一车间467科研所数据查询语句(3)外部连接操作【例5-19】用SQL表达职工和部门之间的内连接、左外部连接和右外部连接的语句内连接:

SELECT职工.*,部门名称,电话

FROM职工,部门

WHERE职工.所在部门=部门.部门号;左外部连接:

SELECT职工.*,部门名称,电话

FROM职工,部门

WHERE职工.所在部门*=部门.部门号;右外部连接:

SELECT职工.*,部门名称,电话

FROM职工,部门

WHERE职工.所在部门=*部门.部门号;数据查询语句3.嵌套查询在SQL语言中,一个SELECT…FROM…WHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询。(1)使用IN操作符的嵌套查询

【例5-20】求选修了高等数学的学生学号和姓名。

SELECT学号,姓名

FROM学生

WHERE学号IN(SELECT学号

FROM选课

WHERE课程

显示全部
相似文档