60.将兑换表中,美元和英镑的基准价上调0.05%,下列SQL语句正确的是
A)UPDATE 兑换FOR 基准价=基准价*1.05
WHERE 外币名称=\美元\外币名称=\英镑\B)UPDATE 兑换SET 基准价=基准价*1.05;
WHERE 外币名称=\美元\外币名称=\英镑\C)UPDATE兑换SET 基准价=基准价*1.05;
WHERE 外币名称=\美元\外币名称=\英镑\D)UPDATE 兑换FOR 基准价=基准价*1.05;
WHERE 外币名称=\美元\外币名称=\英镑\二、填空题
1.SQL是一种高度非过程化的语言,它可直接以 方式使用,也可以 方式使用。 2.当前目录下有\课程表\文件,要查找选修了\W1\,又选修了\W2\的学生号,则语句为:
SELECT A.学生号 FROM 选课表 A, ;
WHERE A.学生号=B.学生号 AND A.学生号=\ 3.当前目录下有\工资表\文件,现要将\职称\为\工程师\的工资增加30元,则语句为:
UPDATE 工资表 WHERE 职称=\工程师\4. SQL SELECT语句中的 用于实现关系的选择操作。 5.在SQL SELECT中,字符串匹配运算符用 表示, 可用来表示0个或多个字符。 6.在成绩表中,只显示分数最高的前10名学生的记录,SQL语句为:
SELECT * 10 FROM 成绩表 总分 DESC
7.要求按成绩降序排序,输出\文学系\学生选修了\计算机\课程的学生姓名和成绩。请将
下面的SQL语句填写完整。
SELECT 姓名,成绩 FROM 学生表,选课表; WHERE AND AND ; ORDER BY 成绩 DESC
8.利用SQL语句统计选修了\计算机\课程的学生人数。请将下面的语句补充完整。
SELECT FROM 选课表 WHERE 9.利用SQL语句删除当前文件夹中一个名为temp的自由表文件为: temp。
10.在成绩表中,检索选修3门以上课程的学生的及格学科的总成绩。成绩表中包含学号、姓名、课程名和成绩4个字段。请将下面的SQL语句补充完整。
SELECT 学号,SUM(成绩) FROM WHERE 成绩>=60 GROUP BY学号 COUNT(*)>=3 11.在\职工表\中删除\年龄\字段的有效性规则,应使用命令
ALTER TABLE 职工表 ALTER 年龄 12.设有选课表,表中包含的字段有:学号C(3),课程号C(3),成绩N(3)。查询每门
课程的学生人数,要求显示课程号和学生人数,对应的SQL语句为:
SELECT 课程号, AS 学生人数FROM 选课表 GROUP BY 13.为\学生\表增加一个\平均成绩\字段的正确命令是 ALTER TABLE学生ADD 平均成绩N(5,2)。 14.SQL是 语言,其核心是 。
15.检索学生表中,\籍贯\为\北京\的学生记录,将结果保存到表temp中,SQL语句为:
SELECT * FROM 学生表 WHERE 籍贯=\北京\ temp 16.在SQL语句中,为了避免查询到重复记录,可用 短语。 17.检索当前\职工表\中,全部姓\李\的职工记录,SQL语句为:
SELECT * FROM 职工表 WHERE 姓名 \李*\
26
18.在SQL语句中,要删除仓库表中仓库号的字段值是WH1的记录,可利用命令: FROM 仓库WHERE 仓库号= \
19.当前目录下有\学生表\文件,表中有字段\学号C(2)\,现要将\学号\字段的宽度由2
改为4,则语句为:ALTER TABLE 学生表
20.Visual FoxPro在SQL方面支持数据查询、 和 3种功能。
21.利用SQL语句的定义功能,建立一个职工表文件,其中为职工号建立主索引,工资的默 认值为1200,语句格式为:
CREATE TABLE 职工(仓库号C(5) ,职工号C(5),工资 I 1200)
22.在SQL-SELECT语句中,用来定义一个区间范围的特殊运算符是 ,检查一个属性值是否属于一组给定的值中的特殊运算符是 。
23.查询\学生成绩\表中,所有姓\张\的学生记录,完成下列SQL语句:
SELECT * FROM WHERE 姓名 \张*\
24.当前目录下有student和coure两个表文件,要求查找同时选修了课程号为\0001\和\0002\
的学生姓名,语句为:
SELECT 姓名 FROM student,coure WHERE student.学号=coure.学号 AND 课程号=\姓名 (SELECT 姓名 FROM ;
WHERE AND 课程号=\
25.设有学生表(姓名,班级名称),用SQL语句检索每个班级的学生人数的语句是:
SELECT 班级名称, AS 人数 FROM 学生表 26.SQL语句中,修改表中数据的短语是 ,修改表结构的短语是 。
27.检索学生表中,\籍贯\为\上海\的学生记录,将结果保存到文本文件temp中,SQL语句为:SELECT * FROM 学生表 WHERE 籍贯=\上海\ temp 28.SQL语句中,修改列的短语是 ,增加列的短语是 。 29.在工资表中,显示工资最少的3名职工记录,SQL语句为:
SELECT * 3 FROM 工资表 ORDER BY 工资 。 30.在SQL的嵌套查询中,量词ANY的同义词是________。
答案和解析
一、选择题 1.D 解析: Visual FoxPro在SQL方面支持数据定义、数据查询和数据操纵功能。由于Visual FoxPro自身在安全控制方面的缺陷,它没有提供数据控制功能。 2.C 解析: SELECT查询语句最基本的格式为SELECT-FROM-WHERE。选项A)缺少FROM短语,选项B)和D)中条件短语错误。
3.D 解析: 选项A)中缺少查询的\仓库\表,且查询条件联接有误;选项B)中同样缺少查询的\仓库\表;选项C)中查询条件错误,应使用AND进行条件联接,而不是OR。 4.D 解析: 利用EXISTS或NOT EXISTS,可用来检查在子查询中是否有结果返回。利用运算符IN来表示,可写成如下格式:SELECT * FROM 仓库表 WHERE 仓库 IN; (SELECT 仓库号 FROM 职工表)
5.C 解析: 结构化查询语言(Structured Query Language,简称SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。 6.D 解析: SELECT查询最基本的格式通常为:SELECT-FROM-WHERE。其中,SELECT用于选择查询结果要显示的目标列表,FROM用于列出查询要用到的所有表文件,WHERE则用于指定查询结果的筛选条件。 7.B 解析: 在SQL语句中,为表增加字段应使用关键字ADD,而不是ADD FIELDS。ALTER
27
是用来修改已有的字段,不能用来新增一个字段。
8.A 解析: SQL语句中,利用UPDATE更新语句可以修改表中的记录。语句基本格式为: UPDATE TableName SET Column_Name1=eExpression1[,Column_Name1=eExpression1...] WHERE Condition
9.A 解析: 本题SQL语句的功能是根据设备的使用部门分组计算各个部门中,使用非进口设备的设备总金额。
10.C 解析: 在SQL的查询语句中,其结果可存放到数组、临时表、永久性表或文本文件中,但是不能存放到视图中,视图是从基本表中派生出来的一个\虚表\,不能用来存放SQL的查询结果。
11.C 解析: 在使用SQL语句的删除命令时,根据WHERE短语删除满足指定条件的记录,如果不使用WHERE短语,则表示删除表中的所有记录。此处是对表中的记录进行逻辑删除,如果要物理删除表中记录,还需要加上PACK命令。
12. A 解析: 选项A)用来查询数据,属于SQL的查询功能。选项B)用来创建表,选项C)用来修改表结构,选项D)用来删除表文件,都属于SQL的定义功能。
13.B 解析: 嵌套查询命令中,IN相当于集合运算符∈,选项A),C),D)只是用来迷惑读者。
14.C 解析: SQL的超联接运算符中\*=\代表左联接,\=*\代表右联接。但在Visual FoxPro中,不支持超联接运算符\*=\和\=*\,它有专门的联接运算语法格式,分别用LEFT JOIN和RIGHT JOIN表示。
15.C 解析: 本题中,通过仓库号字段将仓库表和职工表进行联接,查询仓库所在地是\广州\的记录。
16. C 解析: 本题SQL查询语句的功能是统计在北京和上海仓库工作的职工的工资总和。 17. B 解析: 本题利用SQL分组查询的功能,计算至少有两个职工的每个仓库的平均工资,利用HAVING子句可以对分组条件做进一步限定。
18. D 解析: 本题查询的是职工的工资大于或等于A1仓库中所有职工工资的仓库号。在SQL语句中可以使用ANY,ALL等量词进行查询。其中ANY在进行比较运算时,只要子查询中有一行能使结果为真,则结果就为真;而ALL则要求子查询中的所有行都使结果为真时,结果才为真。
19. D 解析: 在SQL的定义功能中,所定义的新数据表结构的内容和在表设计器中定义一个新表的内容一样,可以完成其所有功能,包括主索引、域完整性约束、字段有效性规则等。但对于自由表的定义和在表设计器中一样,都不能定义自由表的主索引、域完整约束、字段有效性规则等,只能进行一些最基本的操作,如定义字段名、宽度和类型等。
20.C 解析: SQL的数据定义功能中,可以定义数据表结构、删除表和修改表结构,修改表结构的命令格式有3种,其中只有一种格式才能对表中的字段名进行修改和删除。 21. B 解析: SQL的数据定义功能中,可以对视图进行定义,语句格式为: CREATE VIEW view_name[(column_name[,column_name]...)]AS select_statement。 22.C 解析: 该SQL语句是查找每个班中籍贯为上海的女生记录,查询结果按班级名称降序排列,要求显示该生的班级名称、姓名和性别。
23. B 解析: 此命令是将班级人数字段值中的最大数保存到数组中,数组元素的上标和下标都是从1开始的。
24. B 解析: 该SQL语句的功能是查找学生表中姓\刘\的学生记录,要求显示该生的班级名称、姓名和性别,并按班级号升序排序。这里的LIKE是字符串匹配运算符,通配符\*\表示0个或多个字符。
25.C 解析: 该SQL语句的功能是查找还没有学生记录的班级名称。在学生表中暂时还
28
没有\03计算机三班\学生的记录,所以查询结果为\03计算机三班\。
26.A 解析: SQL语句中凡创建都用CREATE,删除都用DROP,改变用ALTER,再跟类型和名字,附加子句。
27.D 解析: 选项A)中缺少查询的\班级\表,且查询条件不全;选项B)中同样缺少查询的\成绩\表;选项C)中查询条件错误,应使用AND进行条件连接,而不是OR。
28.D 解析:在SQL语句中,查询结果存放到新表的表名不能与原表表名相同,否则提示出错信息。
29.B 解析: 查询仓库号为H1或H2的仓库信息,UNION是用来合并单独的查询结果。 30.C 解析: 在SQL的数据定义功能中,可以定义数据表结构、删除表和修改表结构,修改表结构的命令格式有三种,利用ALTER TABLE TableName ADD FieldName1 FieldType命令可以为表增加一个新字段。
31.D 解析: SQL语句中,利用UPDATE更新语句可以修改表中的记录。语句基本格式为: UPDATE TableName SET Column_Name1=eExpression1[,Column_Name1=eExpression1...]
WHERE Condition
32.A 解析: 本题中SQL语句查询的是工资小于等于3000且大于等于2000的职工记录,与SQL中特殊运算符BETWEEN...EDN...等价,意思是在\?和?之间\。 33.B 解析:定义和修改表的有效性规则和错误信息提示,可使用如下命令格式: ALTER TABLE TableName1 ALTER[COLUMN]FieldName2[NULL|NOT NULL] [SET CHECK lExpression2[ERROR cMessageText2]] 34.A 解析: 本题SQL语句的含义是检索有教师工资大于或等于系号为\02\的所有教师工资的系号。
35.D 解析:在SQL的数据定义功能中,可以对视图进行定义,语句格式为:
CREATE VIEW view_name[(column_name[,column_name]...)]AS select_statement 在选项B)中,用于指定分组的条件设置错误,教师表中不存在\系名\字段,选项A)和C)都存在语法错误。
36.B 解析: SQL语句中,删除视图的命令格式是DROP VIEW <视图名>。
37.D 解析: 本题中SQL语句的含义是分组统计\教师\表中\主讲课程\记录个数。 38.A 解析: 本题中SQL语句的含义是分组统计\教师\表中\主讲课程\记录个数,通过AS短语为查询结果的COUNT(*)字段指定一个新的字段名\人数\,并将结果按人数降序排列。
39.C 解析: 本题SQL语句的含义是统计每个系的教师人数各有多少人,通过AS短语可以为查询统计结果指定一个新的字段名\教师人数\。\教师\和\学院\表是通过\系号\字段进行连接的。利用JOIN短语进行连接的语法格式为:
SELECT FROM Table JOIN Table ON JoinCondition WHERE...
40.A 解析: 本题SQL语句的含义是检索有教师工资大于或等于系号为\02\的所有教师工资的系号。ALL、ANY和SOME都是SQL语句中的量词,在进行比较运算时只要子查询中有一行能使结果为真,则结果为真,而ALL则要求子查询中的所有行都使结果为真时,结果才为真,因此在子查询中要使用MAX()函数求出\02\系的教师最高工资,其他系中只要有教师工资高于此函数值,结果便为真。
41.D 解析:数据完整性一般包括实体完整性、域完整性和参照完整性等。通过字段的有效性规则,可进一步保证域完整性。
42.D 解析: 在SQL语句中,显示满足条件的几项记录的关键字是TOP,排序短语是ORDER BY,且TOP短语要与ORDER BY短语同时使用才有效。
43.C 解析: 默认情况下,UNION检查组合的结果并删除重复行,要组合多个UNION子
29
句,可使用括号。ALL防止UNION删除组合结果中的重复行,但在SQL语句中不能用UNION来组合子查询,两个SELECT命令的查询结果中的列数必须相同,且对应列必须有相同的数据类型和宽度。
44.A 解析: 函数SUBSTR()是从源字符串取子字符串函数,需要指明位置和个数,如果不指明个数则取到最后;RIGHT()是从源字符串右侧取指定个数的子字符串;$是字符串包含测试运算符。
45. D 解析: 使用SQL SELECT可以对查询结果进行排序,排序的短语是ORDER BY。选项A)和B)属于语法错误,选项C)中的GROUP BY短语的功能是对查询结果进行分组。使用SELECT-SQL可以实现显示部分结果,需结合TOP短语。
46.C 解析: 进行空值查询时,要使用\IS NULL\,而\=NULL\是无效的,因为空值不是一个确定的值,所以不能使用\=\这样的运算符进行比较。
47.C 解析: 求平均分需要使用AVG函数。由于查询每门课程的平均分,所以需要对课程进行分组,由于课程名可能出现重名,因此分组依据为课程编号。使用AS短语,可将\成绩\字段名重新命名为\平均分\作为新的字段名,用于显示查询结果。
48.D 解析: 利用GROUP BY短语根据课程名字段,分组统计选修课程在2门以下(包括2门)的学生记录,显示课程名、开课院系和选修人数。其中HAVING字句用于选课门数的判断。
49.D 解析: 定义和修改表的有效性规则和错误信息提示,可使用如下命令格式: ALTER TABLE TableName1 ALTER[COLUMN]FieldName2[NULL|NOT NULL] [SET CHECK lExpression2[ERROR cMessageText2]]
50.D 解析: 在SQL的数据定义功能中,可以对视图进行定义,语句格式为: CREATE VIEW view_name[(column_name[,column_name]...)] AS select_statement 51.B 解析: SQL是一种高度非过程化的语言,选项A),C),D)都属于SQL语言的重要特点。
52.A 解析: 在SQL查询语句中,利用ORDER BY短语可以对查询的结果进行排序。包括升序(ASC)和降序(DESC)两种,系统默认的为升序排列,如果要降序排列,必须加参数\DESC\。
53. B 解析: BETWEEN...AND...是SQL查询语句中的一个特殊运算,意思为\?和?之间\,相当与逻辑与运算中的(A>=AND>=B ,其中A>B)。 54.C 解析:SELECT用于实现关系的投影操作,使用时将所选的字段名放在SELECT之后,多个字段名间用逗号隔开。WHERE用于实现关系的选择操作,FROM指定查询数据的来源,GROUP BY用于实现分组。
55.B 解析:SQL中的INSERT命令每次只能在表末尾插入一条记录,相当于APPEND BLANK命令一样,在表末尾追加一条记录,只不过APPEND BLANK只能追加一条空记录,而INSERT可以将记录值同时追加到表中。 56.A 解析:BETWEEN...AND...是SQL查询语句中的一个特殊运算符,意思为\?和?之间\,相当与逻辑运算中的(A>= AND >=B,其中A>B),选项B)中数值放置错误,选项C)和选项D)为语法错误。
57.D 解析:在SQL语句中,查询结果不管是输入到临时表或永久性表中,用于存放查询输出的新表表名不能与原表表名相同,否则提示出错信息。
58.B 解析:本该SQL语句是查找外币持有数量大于1500的人员姓名、外币名称和持有数量的信息,并按持有数量降序排列,当持有数相同时,按姓名升序排列。查询结果中,张三、刘剑和王芳的持有数都是1500,再按姓名升序排列,最后一条记录应为选项B)
59.A 解析:本小题中数值求和需要利用MAX( )函数,COUNT( )是统计函数,只
30