sql - 习题

发布时间 : 星期六 文章sql - 习题更新完毕开始阅读

SQL 习题

一.选择

1.SQL语言是 语言,易学习。

A) 过程化 B) 格式化 C) 非过程化 D) 导航式

2.在SQL语句中,与表达式“供应商名LIKE “%北京%” ”功能相同的表达式是 A)LEFT(供应商名,4)=“北京” B)“北京”$供应商名 C)供应商名 IN “%北京%” D)AT(供应商名,”北京”)

3.在SQL语句中,与表达式\工资 BETWEEN 1210 AND 1240\功能相同的表达式是

A)工资>=1210 AND 工资<=1240 B)工资>1210 AND 工资<1240 C)工资<=1210 AND 工资>1240 D)工资>=1210 OR 工资<=1240

4.在SQL语句中,与表达式\仓库号 NOT IN(\)\功能相同的表达式是 。 A)仓库号=\仓库号=\B)仓库号!=\仓库号# \C)仓库号< >\仓库号!=\D)仓库号!=\仓库号!=\

5.不属于数据定义功能的SQL语句是 。 A) CREATE TABLE B) CREATE CURSOR C) UPDATE D) ALTER TABLE 6.SQL语句中修改表结构的命令是 。

A) MODIFY TABLE B) MODIFY STRUCTURE C) ALTER TABLE D) ALTER STRUCTURE

7.为“学院”表增加一个字段“教师人数”的SQL语句是 。

A)CHANGE TABLE 学院 ADD 教师人数 I B)ALTER STRU 学院 ADD 教师人数 I

C)ALTER TABLE 学院 ADD 教师人数 I D)CHANGE TABLE 学院 INSERT 教师人数 I 9.要使”产品”表中所有产品的单价上浮8%,正确的SQL命令是 。 A)UPDATE产品SET单价=单价+单价*8%FOR ALL B)UPDATE产品SET单价=单价*1.08 FOR ALL C)UPDATE产品SET单价=单价+单价*8% D)UPDATE产品SET单价=单价*1.08

10.不能将“学生”表中“刘林”的入学成绩增加10%的SQL语句是 。 A)REPLACE 入学成绩 WITH 入学成绩*1.1 WHERE 姓名=“刘林”

B)UPDATE学生SET入学成绩=入学成绩+入学成绩*0.1 WHEN 姓名=“刘林” C)UPDATE学生 SET入学成绩 WITH入学成绩*110% WHERE姓名=“刘林” D)UPDATE学生SET 入学成绩=入学成绩*1.1 WHERE姓名=“刘林” 11.如果学生表STUDENT是使用下面的SQL语句创建的

CREATE TABLE STUDENT(SNO C(4) PRIMARY KEY NOT NULL,SN C(8), SEX C(2),AGE N(2) CHECK(AGE>15 AND AGE<30) )

下面的SQL语句中可以正确执行的是 。

A)INSERT INTO STUDENT(SNO, SEX, AGE) VALUES (\男\

B)INSERT INTO STUDENT(SN, SEX, AGE) VALUES (\李安琦\男\

1

C)INSERT INTO STUDENT(SEX, AGE) VALUES (\男\

D)INSERT INTO STUDENT(SNO, SN) VALUES (\安琦\

12.从”订单”表中删除签订日期为2004年1月10日之前(含)的订单记录,正确的SQL语句是 。

A)DROP FROM 订单WHERE签订日期<={^2004-l-10} B)DROP FROM 订单 FOR 签订日期<={^2004-l-lO}

C)DELETE FROM 订单 WHERE 签订日期<={^2004-1-10} D)DELETE FROM 订单 FOR 签订日期<={^2004-l-10}

13.要在浏览窗口中显示表js.dbf中所有\教授\和\副教授\的记录,下列命令中错误的是 。 A) USE JS

BROWSE FOR 职称=\教授\职称 =\副教授\B) SELECT * FROM JS WHERE \教授\职称

C) SELECT * FROM JS WHERE 职称 IN(\教授\副教授\D) SELECT * FROM JS WHERE LIKE(\教授\职称)

14.使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当 。 A)使用WHERE子句

B)在GROUP BY后面使用HAVING子句

C)先使用WHERE子句,再使用HAVING子句 D)先使用HAVING子句,再使用WHERE子句 15.假设”订单”表中有订单号、职员号、客户号和金额字段,正确的SQL语句只能是 。 A)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG_金额>200 B)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG(金额)>200 C)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 WHERE AVG(金额)>200 D)SELECT 职员号 FROM 订单 GROUP BY 职员号 WHERE COUNT(*)>3 AND AVG_金额>200 16.只有满足连接条件的记录才包含在查询结果中,这种连接称为 。 A)内连接 B)左连接 C)右连接 D)完全连接 17.有SQL语句: SELECT 学院.系名,COUNT(*)AS 教师人数 FROM教师,学院; WHERE 教师.系号=学院.系号 GROUP BY学院.系名 与如上语句等价的SQL语句是 。

A)SELECT学院.系名,COUNT(*)AS教师人数 FROM教师INNER JOIN学院;

教师.系号=学院.系号 GROUP BY 学院.系名

B)SELECT学院.系名,COUNT(*)AS教师人数 FROM教师INNER JOIN学院;

ON 系号 GROUP BY 学院.系名

C)SELECT学院.系名,COUNT(*)AS教师人数 FROM教师INNER JOIN学院; ON 教师.系号=学院.系号 GROUP BY 学院.系名

D)SELECT学院.系名,COUNT(*)AS教师人数FROM教师INNER JOIN学院; ON 教师.系号=学院.系号

18.使用SELECT-SQL命令建立查询时,若要将查询结果输出到一张临时数据表中,需要选择使用以下哪一个子句 。

A) INTO ARRAY B) INTO CURSOR C) INTO TABLE D) TO FILE 第(21)—(27)题使用如下三个表:

2

职员.DBF:职员号 C(3),姓名 C(6),性别 C(2),组号 N(1),职务 C(10) 客户.DBF:客户号 C(4),客户名 C(36),地址 C(36),所在城市 C(36) 订单.DBF:订单号 C(4),客户号 C(4),职员号 C(3),签订日期 D,金额 N(6.2) 19.查询金额最大的那10%订单的信息。正确的SQL语句是 。 A)SELECT * TOP 10 PERCENT FROM 订单 B)SELECT TOP 10% * FROM 订单 ORDER BY 金额 C)SELECT * TOP 10 PERCENT FROM 订单 ORDER BY 金额 D)SELECT TOP 10 PERCENT * FROM 订单 ORDER BY 金额 DESC

20.查询订单数在3个以上、订单的平均金额在200元以上的职员号。正确的SQL语句是 。 A)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG_金额>200 B)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG(金额)>200 C)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 WHERE AVG(金额)>200 D)SELECT 职员号 FROM 订单 GROUP BY 职员号 WHERE COUNT(*)>3 AND AVG_金额>200 21.查询2005年1月1日后签订的订单,要求显示订单的订单号、客户名以及签订日期。正确的SQL语句是 。

A)SELECT 订单号,客户名,签订日期 FROM 订单 JOIN 客户  ON 订单.客户号=客户.客户号 WHERE 签订日期>{^2005-1-1} B)SELECT 订单号,客户名,签订日期 FROM 订单 JOIN 客户  WHERE 订单.客户号=客户.客户号 AND 签订日期>{^2005-1-1} C)SELECT 订单号,客户名,签订日期 FROM 订单,客户  WHERE 订单.客户号=客户.客户号 AND 签订日期<{^2005-1-1} D)SELECT 订单号,客户名,签订日期 FROM 订单,客户  ON 订单.客户号=客户.客户号 AND 签订日期<{^2005-1-1}

22.从订单表中删除客户号为“1001”的订单记录,正确的SQL语句是 。 A)DROP FROM 订单 WHERE 客户号=\B)DROP FROM 订单 FOR 客户号=\C)DELETE FROM 订单 WHERE 客户号=\D)DELETE FROM 订单 FOR 客户号=\

23.将订单号为“0060”的订单金额改为169元,正确的SQL语句是 。 A)UPDATE 订单 SET 金额=169 WHERE 订单号=\

B)UPDATE 订单 SET 金额 WITH 169 WHERE 订单号=\C)UPDATE FROM 订单 SET 金额=169 WHERE 订单号=\

D)UPDATE FROM 订单 SET 金额 WITH 169 WHERE 订单号=\24.有SQL语句: SELECT 学院.系名,COUNT(*)AS 教师人数 FROM教师,学院; WHERE 教师.系号=学院.系号 GROUP BY学院.系名 与如上语句等价的SQL语句是 。

A)SELECT学院.系名,COUNT(*)AS教师人数 FROM教师INNER JOIN学院;

教师.系号=学院.系号 GROUP BY 学院.系名

B)SELECT学院.系名,COUNT(*)AS教师人数 FROM教师INNER JOIN学院;

ON 系号 GROUP BY 学院.系名

C)SELECT学院.系名,COUNT(*)AS教师人数 FROM教师INNER JOIN学院;

3

ON 教师.系号=学院.系号 GROUP BY 学院.系名

D)SELECT学院.系名,COUNT(*)AS教师人数FROM教师INNER JOIN学院; ON 教师.系号=学院.系号

25.在当前盘当前目录下删除表stock的命令是 。 A)DROP stock B) DELETE TABLE stock C) DROP TABLE stock D) DELETE stock

26.从订单表中删除客户号为“1001”的订单记录,正确的SQL语句是 。

A)DROP FROM 订单 WHERE 客户号=\)DROP FROM 订单 FOR 客户号=\C)DELETE FROM 订单 WHERE 客户号=\)DELETE FROM 订单 FOR 客户号=\

二.填空题

1.在SQL的SELECT语句进行分组计算查询时,可以使用 子句来去掉不满足条件的分组。

2.在Visual FoxPro中,使用SQL的CREATE TABLE语句建立数据库表时,使用 子句说明有效性规则(域完整性规则或字段取值范围)。 3.在Visual FoxPro中,使用SQL的CREATE TABLE语句建立自由表时应使用关键字 。 4.在Visual FoxPro中,使用SQL的ALTER TABLE语句可以修改数据库表结构,若需给某字段增加取值范围的设置,应使用 子句。

5.使用UPDATE命令将学生表(STUDENT.DBF)中05级学生的平时成绩(PSCJ)初始化为0,应该使用的SQL命令是

UPDATE STUDENT PSCJ=0 WHERE =’05’ (注:学生表中学号(XH)字段的前两位表示该生所在年级。)

6.在表SC(学号,课程号,成绩)中查询各门课程的最高分成绩应使用如下SQL语句: SELECT 课程号, AS 最高分 FROM SC 查询选修课程多于3门(含3门)学生的学号和课程门数,应使用如下SQL语句: SELECT 学号,COUNT(*)AS 门数 FROM SC GROUP BY 学号 门数>=3 7.设有表JS(职工号,姓名,职称,年龄,工资,系号)和XB(系号,系名) 使用SQL语句将一条新的记录插入学院表 : INSERT INTO XB(系号,系名) (“04”,“计算机”) 使用SQL语句完成如下操作(将所有教授的工资提高5%) 教师 SET 工资=工资*1.05 WHERE 职称=“教授”

8.设有表SC(学号,课程号,成绩)中,若将所有记录先按课程号升序排列,再按成绩降序排列,则应执行语句:SELECT * FROM SC ORDER BY

9.职工数据库表中有工资字段,从中计算工资合计的SQL语句是: SELECT FROM 职工 10.在SQL的SELECT语句进行分组计算查询时,可以使用 子句来去掉不满足条件的分组。

11.有表SC(学号,课程号,成绩),若查询“03”号课程成绩排在前3名同学的学号和成绩,相应的SQL命令是:

SELECT 学号,成绩 FROM SC WHERE 课程号=”03”ORDER BY 2 DESC

12.SQL语言中集数据定义语言、 、数据查询语言和数据控制语言于一体,能够完成数据库生命周期中的全部活动,功能强大。 13.现有表C(课程号,课程名,学分),查询学分字段为空的课程信息,则SQL语句如下: SELECT 课程号,课程名 FROM C WHERE学分

4

联系合同范文客服:xxxxx#qq.com(#替换为@)