(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
6.SQL 语句中删除表的命令是____。
A.DELETE TABLE
B. DROP TABLE
C. ALTER TABLE
D. UPDATE TABLE
[解析]本题考查的知识点是从数据库中删除表的SQL 命令。删除表的SQL 命令是DROP TABLE<表名>。DROP TABLE 命令将直接从磁盘上删除<表名>所对应的.dbf 文件。如果<表名>是数据库中的表并且该数据库又是当前数据库,则会从数据库中删除该表;否则即使从磁盘上删除了.dbf 文件,也不会将记录在数据库.dbc 文件中的信息删除。选项A 命令错误;选项B 命令正确;选项C 中的命令用来修改表结构;选项D 中的命令用来更新表。
[答案] B
7.使用SQL SELECT 可以将查询结果排序,排序的短语是_____。
A.ORDER BY
B.ORDER
C.GROUP BY
D.COUNT
[解析] 本题考查的知识点是SQL 中的排序命令。使用SQL SELECT 排序的短语是ORDERBY。选项A 即是SQL SELECT 中用来排序的短语;选项B 命令语法错误;选项C 是进行分组计算查询的命令;选项D 是计算查询中的计数函数。
[答案] A
8.在Visual FoxPro 中,嵌套查询是基于____的查询。
A.一个表
B.多个表
C.一个关系
D.多个关系
[解析] 本题考查的知识点是嵌套查询。在Visual FoxPro 中,嵌套查询是基于多个关系的查询。因此正确答案为D。
[答案] D
9. 嵌套查询命令中的IN 相当于____。
A.等号=
B.集合运算符∈
C.加号 +
D.减号 -
[解析] 本题考查的知识点是嵌套查询命令中的参数。嵌套查询命令中的IN 相当于集合运算符∈ 。选项A,C,D 错误, 目的是迷惑考生。只有选项B 正确。
[答案] B
10.如果将“考生资料”表中的记录按年龄降序排列,应输入____命令。
[解析]本题考查的知识点是SQL 语句中排序命令的使用。在Visual FoxPro 中,排序短语为ORDER BY。
如果需要将结果按降序排列,只需加上DESC 即可。因此输入的命令为:
SELECT * FROM 考生资料 ORDER BY 年龄 DESC
[答案] SELECT * FROM 考生资料 ORDER BY 年龄 DESC
11.SQL SELECT 语句中INNER JOIN 等价于____, 为____, 在Visual FoxPro 中称为_____。(p128)
[解析] 本题考查的知识点是INNER JOIN 联接。在SQL SELECT 中,INNDR JOIN 等价于JOIN, 为普通的联接,在Visual FoxPro 中称为内部联接。
[答案] JOIN,普通联接,内部联接
12.在SQL 中,除满足联接条件的记录出现在查询结果中外,第一个表中满足联接条件的记录也出现在查询结果中。 这种联接为____,又称为____。
[解析] 本题考查的知识点是左联接的概念,它是指除满足联接条件的记录出现在查询结果中外,第一个表中满足联接条件的记录也出现在查询结果中。
[答案] LEFT JOIN 左联接
13.在ORDER BY 子句中,DESC 表示____; 省略DESC 表示____。
A.升序,降序
B.降序,升序
C.升序,升序
D.降序,降序
[解析] 本题考查的知识点是SQL SELECT 语句中ORDER BY 子句及其中选项的功能。OBDER BY 是用来排序的短语。指定DESC 表示降序,不指定(即省略)DESC 表示升序,或者升序也可以用ASC 来表示。
选项A 中的两个选项正好相反。选项C 第一个空措误,应为降序;选项D 第二个空错误,应为升序。因此正确答案为B。
[答案] B
14. 按出生日期降序显示STUD 表中的学号,姓名,出生日期。
SELECT 学号,姓名,出生日期 ;
FROM STUD ;
ORDER BY 出生日期 DESC
15. 按成绩升序显示SC 表中的学号,课程号,成绩。
SELECT 学号,课程号,成绩 ;
FROM SC ;
ORDER BY 成绩
16.SQL 的操作功能是指____,主要包括数据的____、____、____三个方面的内容。
[解析] 本题考查的知识点是SQL 的操作功能。在Visual FoxPro 中,SQL 的操作功能是指对数据库中数据的操作功能,主要包括数据的插入、更新和删除三个方面的内容。
[答案] 对数据库中数据的操作功能,插入,更新,删除
17.在SQL SELECT 语句中,字符串匹配运算符用____表示;____表示0 个或多个字符;____表示一个字符。
[解析] 本题考查的知识点是SQL SELECT 语句中特殊运算符的LIKE 的应用。在SQL SELECT 语句中,字符串匹配运算符用LIKE 表示;通配符“%”表示0 个或多个字符, “_”表示一个字符。
[答案] LIKE,%,_