(2).连接问题
在SQL 语句中,在FROM 子句中提供了一种称之为连接的子句,连接分为内部联接和外部联接,外部联接又可分为左联接、右联接和全联接。
1). 内部联接
内部联接是指包括符合条件的每个表的记录,也称之为全记录操作。而上面两个例子就是内连接。
【例 】查询并显示各个学生的学号,所学课程及课程成绩。
SELECT SC.学号,SC1.课程名,SC.成绩 ;
FROM SC,SC1 ;
WHERE SC.课程号=SC1.课程号
如果采用内部联接方式,则命令如下:
SELECT a.学号,b.课程名,成绩 ;
FROM SC a INNER JOIN SC1 b ON a.课程号=b.课程号
将会得到完全相同的结果。
2). 外部联接
外部联接是指把两个表分为左右两个表。右联接是指连接满足条件右侧表的全部记录。左联接是指连接满足条件左侧表的全部记录。全联接是指连接满足条件表的全部记录。
(3).嵌套查询
在SQL 语句中,一个SELECT-FROM-WHERE 语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE 子句中的查询称为嵌套查询。
【例1】显示“李宁”所在班级的学生名单。
SELECT 学号,姓名,班级名 ;
FROM STUD ;
WHERE 班级名=(SELECT 班级名 FROM STUD WHERE 姓名="李中国")
【例2】显示计算机系男生的名单。
SELECT 学号,姓名,系别代号,性别 ;
FROM STUD ;
WHERE 系别代号="01" AND 性别="男"
【例3】显示计算机系非男生的名单。
SELECT 学号,姓名,系别代号,性别 ;
FROM STUD ;
WHERE 系别代号="03" AND 性别="女"
【例4】显示既选修了01 课程又选修了02 课程学生的名单。
SELECT 学号 ;
FROM SC ;
WHERE 课程号=“01” AND 学号 IN ;
(SELECT 学号 FROM SC WHERE 课程号=“02”)
【例5】显示选修了01 课程而没有选修02 课程学生的名单。
SELECT 学号 ;
FROM SC ;
WHERE 课程号="01" AND 学号 NOT IN ;
( SELECT 学号 FROM SC WHERE 课程号="02")
(4).排序
在SQL SELECT 中使用ORDER BY 短语对查询结果排序,并可以用ASC 按升序排序(默认),用DESC 按降序排序,可以按一列或多列排序。
【例1】先按课程号排序、再按成绩排序检索出全部SC 表中的学生信息。
SELECT * FROM SC ORDER BY 课程号 ASC,成绩 DESC
例题:
1.下列命令中,属于数据查询功能的SQL 语句是_____。
A.CREATE B.SELECT
C.INSERT D.GRANT
[解析] 本题考查的知识点是SQL 中的数据查询命令。在Visual FoxPro 中,数据查询的命令动词是SELECT。CREATE 是数据定义命令之一;INSERT 是数据操纵命令之一;GRANT 是数据控制命令之一。
本题选项A 用于数据定义。选项B 用于数据查询。选项C 用于数据操纵。选项D用于数据控制。
[答案] B
2.在Visual FoxPro 中,简单查询基于________。
A.单个表
B.两个表
C.两个有关联的表
D.多个表
[解析] 本题考查的知识点是SQL 语句中的简单查询。简单查询基于单个表,可以有简单的查询条件。
[答案] A
3.从“学生资料”表中查询所有的姓名,应输入______命令。
A.SELECT 学生资料 FROM 姓名
B.SELECT 姓名 FROM 学生资料
C.SELECT 姓名
D.SELECT 学生资料 WHERE 姓名
[解析]本题考查的知识点是简单查询的使用。简单查询由SELECT 和FROM 短语构成无条件查询,或由SELECT、FROM 和WHERE 短语构成条件查询。选项A 中的“学生资料”和“姓名”顺序颠倒;选项B 格式及命令都正确;选项C 格式错误;选项D 命令错误。
[答案] B
4.从“学生资料”表中查询所有年龄大于22 岁的学生并显示其姓名,应输入_______命令。
A.SELECT 年龄 FROM 学生资料 WHERE 姓名>22
B.SELECT 年龄 FROM 学生资料
C.SELECT 姓名 FROM 学生资料 WHERE 年龄>22
D.SELECT 姓名 FROM 学生资料
[解析] 本题考查的知识点是简单查询命令的使用。本题由SELECT、FROMT WHERE 短语构成条件查询,其中WHERE 指定了查询条件。所以本题先排除B、D。选项A 中“姓名”和“年龄”顺序颠倒,输入该命令,系统会提示操作符与操作命令不匹配的对话框;选项C 中“SELECT 姓名”表示查询姓名, “FROM学生资料”指定从“学生资料”表中查询,WHERE 年龄>22 指定查询条件为22 岁。
因此正确答案为C。
[答案] C
5.联接查询是基于_______的查询。
A.一个表
B.两个表
C.多个关系
D.有一个关联的表
[解析]本题考查的知识点是联接查询。在Visual FoxPro 中,联接查询是一个基于多个关系的查询。由于联接查询要求的索引信息出于多个关系,因此这样的检索肯定是基于多个关系的。因此正确答案为C。
[答案] C
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。