2.5查询与视图及SQL查询语言

更新时间:2024-03-19 11:13:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2.5 查询与视图及SQL查询语言

2.5.1例题分析

一、选择题

1.在VFP的查询设计器中“筛选”选项卡对应的SQL短语是()。

A) SELECT B) FOR C) WHERE D) JOIN

例题分析:查询设计器是SQL的界面方式,通过查询设计器可以构造一条SQL语句,因此,查询设计器的各选项卡都与SQL短语对应,其中“筛选” 选项卡对应WHERE短语,“字段”选项卡对应SELECT 短语,“连接”选项卡对应JOIN ON 短语,“排序依据”选项卡对应ORDER

BY 短语,“分组依据”选项卡对应GROUP BY 短语,“杂项”选项卡中无“重复记录” 复选框对应DISTINT 短语,“列在前面的记录”对应TOP 短语。 参考答案:C 2.在SQL的查询语句中,实现关系运算的投影操作的短语为()。

A) SELECT B)FROM

C) WHERE D) JOIN ON

例题分析:关系的基本操作包括选择、投影和连接,在SQL查询中都有短语具体实现,其中WHERE实现的是选择,SELECT 实现的是投影,JOIN ON 实现的是连接。 参考答案:A

3.下列哪条命令执行后不能产生磁盘文件()。

A) CREATE TABLE B) CREATE VIEW

C) CREATE QUERY D) CREATE DATABASE

例题分析:命令CREATE TABLE 建立扩展名为.DBF的表文件,命令CREATE QUERY 建立扩展名为.QPR的查询文件,命令CREATE DATABASE 建立扩展名为.DBC.的数据库文件,而命令CREATE VIEW 建立的是一个视图,它不是一个独立的磁盘文件,而是存储于数据库中的虚拟表。 参考答案:B

4.VFP 系统中,使用查询设计器生成的查询文件中保存的是()。

A) 查询的命令 B) 与查询有关的基表 C) 查询的结果 D) 查询的条件

例题分析:使用查询设计器生成的查询文件中保存的是一条SQL命令,并非查询出来的结果,这个命令中包含了查询的基表、查询的条件等信息。当运行查询时,系统会执行这个保存的命令,并在默认的浏览窗口显示查询的结果。 参考答案:A

5.查询设计器中,系统默认的查询结果的输出去向是()。

A)表 B) 临时表

C) 浏览 D) 报表 例题分析:使用查询设计器进行查询,默认的查询去向为浏览窗口,此外可以使用查询表单或查询设计器工具栏的“查询去向”设置查询结果去向,可以将查询结果输出到表(对应短语INTO TABLE)、临时表(对应使用短语 INTO CURSOR)、报表(REPORT)等。

参考答案:C

6.运行查询文件CXL.QPR的命令是()。

A) CREATE QUERY XI B) DO QUERY CXI C) DO CXI.QRY D) DO CXI 例题分析: 命令CREATE QUERY XI 是建立查询文件的命令,运行查询使用命令字DO 引导,后面直接跟查询文件的名称,不用短语 QUERY ,而且不能省略扩展名,因为如果不加扩展名,系统默认执行扩展名为.PQG 的文件。 参考答案:C

7.SQL 命令中WHERE 短语的功能是()。

A)设置输出字段 B)设置输出记录的条件 C)设置连接条件 D) 设置分组条件

例题分析:SQL命令中WHERE 短语的功能是设置输出记录的条件,设置分组条件使用

HAVING 短语,设置连接条件使用JOIN ON 短语,设置输出的字段使用SELECT 短语。 参考答案:B 8.SQL 的核心是()。

A)数据定义 B)数据修改

C)数据查询 D)数据控制

例题分析: SQL具有数据定义、数据修改、数据查询和数据控制的功能,但其核心为数据查询,这一点由SQL本身的含义也可以看出,SQL 是结构化查询语言的英文单词“STRUTURED QUERY LANGUAGE”的缩写。 参考答案:C

9.使用SQL语句修改字段的值,应使用命令()。

A) REPLACE B)UPDATE C) DELETE D)INSERT 例题分析:使用SQL 语句修改字段的值,应使用命令 UPDATE 。REPLACE 是VFP 的修改命令,DELETE 是删除记录的命令,INSERT是插入记录的命令。 参考答案:B

10.求选修了课程号为C4的学生的学号和姓名。

本题基于如下所示数据表,其中SNO表示学生的学号,SNAME表示学生的姓名,SDEP表示学生所在的系,SAGE表示学生的年龄,CNO表示课程号,G表示学生成绩的等级,CNAME表示课程名,PCNO表示先修课:

S(学生) SNO SNAME SDEP S1 黎明 计算机系 S2 陈俊 计算机系 S3 罗云 计算机系 S4 韦林 数学系 S5 王菱 数学系 S6 程雯 物理系 SAGE 18 19 18 20 19 21 C(课程) SC(学生成绩) SNO CNO G S1 C1 S1 C2 A S1 C4 B S2 C2 C S2 C3 B S2 C5 B S3 C4 A S3 C5 S4 C1 C S4 C2 B S4 C4 B S5 C2 A S5 C4 A S6 C1 B S6 C2 A 例题分析:每个子查询在上一级查询处理之前求解,及嵌套查询是由里向外处理的,这样外层查询可以利用内层查询的结果。本例中内层查询的结果为S1,S3,S4,S5,原查询可等价于:

CNO C1 C2 C3 C4 C5 CNAME 高等代数 线性代数 离散数学 常微分 数据库原理 PCNO -- C1 C1 C1 C3 SELECT SNO,SNAME FROM S WHERE SNO IN (′S1′, ′S3′, ′S4′, ′S5′) 最后得到结果:

SNO S1

S3 S4 S5

SNAME

黎明 罗云 韦林 王菱

参考答案:

SELECT SNO,SNAME FROM S WHERE SNO IN (SELECT SNO FROM SC WHERE CNO=′C4′) 二、填空题

1.主名为CX的查询文件,其扩展名为_______,其中保存的是查询的_______,运行这个查询的命令为_______,得到查询的_______。

例题分析:查询文件的扩展名为.QPR ,其中保存的事实现查询的SQL命令,而非查询的结果,当使用DO CX .QPR运行这个查询文件时,方能得到查询的结果。

参考答案:QPR ; 命令 ; DO CX .QPR ; 结果

2.在VFP中,使用_______命令创建查询,使用_______命令创建视图,创建视图前需要事先打开_______。 例题分析:在VFP中,创建查询的命令是CREATE QUERY,创建视图的命令是CREATE VIEW ,由于视图是建筑在数据库基础之上的,因此创建视图前需要事先打开数据库,否则无法创建。 参考答案:CREATE QUERY ; CREATE VIEW ; 数据库

3.查询设计器默认的输出去向为______,使用查询菜单或查询设计器工具栏的_____命令或按钮,可以改变默认的输出去向,其中与SQL对应的输出去向包括______。 例题分析:查询设计器默认的输出去向为浏览,使用查询菜单或查询设计器工具栏的查询去向命令或按钮,可以改变默认查询的输出去向,其中与SQL对应的输出去向包括表(短语为INTO TABLE)和临时表(短语为INTO CURSOR),此外还可以输出至图形、屏幕、报表和标签。

参考答案:浏览 ; 查询去向 ; 表和临时表

4.与表达式职称=\教授\职称=\副教授\等价的SQL表达式为职称______(\教授\,\副教授\或职称_______\教授\例题分析:SQL有几个特殊的运算符BETWEEN、IN、LIKE,这些运算符VFP命令不能识别,但有等价的表达式。在若干值之间取值,SQL可以使用IN;包含运算,SQL可以使用LIKE,并且在表达式中使用通配符%或_代表任意一串字符和任意一个字符,在两值范围内,SQL使

用BETWEEN?AND。

参考答案:IN ; LIKE

5.库中含有两个表:商品表和销售表,结构如下:

商品:商品编号 C(6),商品名称 C(20),进货价 N(12,2),销售价 N(12,2),

备注 M

销售:流水号 C(6),销售日期 D,商品编号 C(6),销售数量 N(8,2)

用SQL命令实现查询2006年5月20日所销售的各种商品的名称、销售量和销售总额,并按销售量从小到大排序的语句是:

SELECT 商品名称,SUM(销售数量)AS 销售量,SUM(_______)AS 销售总额 FROM;

商品,销售 WHERE 商品.商品编号=销售.销售编号______销售日期={^2006/05/20}; GROUP BY 商品名称 ORDER BY _______

例题分析:本题第一个空时填入用函数SUM计算销售总额的参数,应为销售价格与销售数量的乘积。第二空应填入连接条件与筛选条件之间的逻辑关系,这里要求两个条件同时成立,应使用逻辑AND。第三个空应填入排序依据,按要求可以使用前面定义的列名销售量,也可以使用列号2。

参考答案:销售价*销售数量 ; AND ; 2(或者销售量) 2.5.2 习题

一、选择题

1.以下关于查询的描述正确的是( )。

A)不能根据自由表建立查询 B)只能根据自由表建立查询

C)只能根据数据库表建立查询 D)可以根据数据库表和自由表建立查询

2.下述选项中( )不是查询的输出形式。

A)数据表 B)图形 C)报表 D)表单 3.以下关于视图的描述正确的是( )。

A)可以根据自由表建立视图 B)可以根据查询建立视图

C)可以根据数据库表建立视图 D)可以根据数据库表和自由表建立视图 4.视图不能单独存在,它必须依赖于( )。 A)视图 B)数据库 C)自由表 D)查询 5.查询设计器中包括的选项卡有( )。

A)字段、筛选、排序依据 B)字段、条件、分组依据

C)条件、排序依据、分组依据 D)条件、筛选、杂项 6.查询设计器是否能生成SQL查询语句( )。

A)不能 B)部分 C)全部 D)由实际问题来决定

7.视图设计器的选项卡与查询设计器中的选项卡几乎一样,只是视图设计器中的选项卡比查询设计器中的选项卡多一个( )。

A)字段 B)排序依据 C)联接 D)更新条件 8.关于视图的正确描述是( )。

A)视图与数据库表相同,用来存储数据 B)视图不能同数据库表进行连接操作

C)在视图上不能进行更新操作 D)视图是从一个或多个数据库表导出的虚拟表 9.SQL的核心是( )。

A)数据查询 B)数据操作 C)数据定义 D)数据控制

10.SQL语句中条件短语的关键字是( )。

A)WHERE B)FOR C)WHILE D)CONDITION 11.从dab.dbf表中查询所有的姓名,应输入命令( )。

A)SELECT dab FROM 姓名 B)SELECT 姓名FROM dab C)SELECT 姓名 D)SELECT dab WHERE 姓名 12.使用SQL SELECT 可以将查询结果排序,排序的短语是( )。

A)ORDER BY B)ORDER C)GROUP BY D)COUNT

13.嵌套查询命令中的IN相当于( )。

A)等号= B)集合运算符? C)加号+ D)减号-

14.在xkcjb.dbf表中查询成绩在90分到95分的学生信息,应输入命令( )。

A)SELECT * FROM xkcjb WHERE 成绩 BETWEEN 90 AND 95 B)SELECT 信息 FROM xkcjb WHERE 成绩 BETWEEN 90 AND 95 C)SELECT * FROM xkcjb WHERE 成绩 BETWEEN 90 到 95

D)SELECT 成绩 WHERE 成绩 BETWEEN 90 到 95 FROM xkcjb

15.SQL SELECT 语句中的GROUP BY 和HAVING 短语对应查询设计器上的选项卡是( )。

A)字段 B)联接 C)分组依据 D)排序依据 16.SQL的数据操作语句不包括( )。

A)INSERT B)UPDATE C)DELETE D)CHANGE 17.SQL语句中建立表结构的命令是( )。

A)CREATE TABLE B)CREATE DATABASE C)ALTER TABLE D)CREATE 18.SQL语句中的删除表的命令是( )。 A)DROP TABLE B)DELETE TABLE C)ERASE TABLE D)DELETE DBF 19.向表中插入数据的SQL命令是( )。

A)INSERT B)INSERT INTO C)INSERT IN D)INSERT BEFORE 20.SQL语句中,用于修改表结构的命令是( )。 A)ALTER STRUCTURE B)MODIFY STRUCTURE C)ALTER TABLE D)MODIFY TABLE 21.使用SQL语句进行分组查询时,为了去掉不满足条件的分组,应当( )。

A)使用WHERE子句

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

C)先使用WHERE 子句,再使用HAVING子句 D)先使用HAVING子句,再使用WHERE子句

22.下列选项中,不属于数据定义功能的SQL语句是( )。 A)CREATE B)ALTER C)SELECT D)DROP 23.下列有关SQL的叙述错误的是( )。

A)SQL包括了数据定义、数据查询、数据操纵和数据控制等方面的功能

B)SQL语言能嵌入到程序设计语言中以程序方式使用 C)SQL语言非常简洁

D)SQL语言是一种高度过程化的语言 24.下列叙述中,错误的是( )。

A)SQL语句可以为输出的字段重新命名

B)SQL语句可以为输出的记录进行排序

C)SQL语句不能重新指定列的顺序 D)SQL语句不能省略FROM子句

25.下列关于ALL、DISTINCT、TOP n [PERCENT]叙述中错误的是( )。

A)如果不包含任何一个短语,则默认为ALL B)DISTINCT可省略选择字段中包含重复数据的记录 C)TOP n [PERCENT]可指定返回特定数目的记录 D)当查询使用DISTINCT时,可以更新其输出 26.下列关于联接的叙述中,错误的是( )。

A)LEFT JOIN运算可创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录

B)RIGHT JOIN运算可创建一个右边外部联接。右边外部联接将包含了从第二个(右边)开始的两个表中的全部记录,即使在第一个(左边)表中并没有匹配值的记录

C)使用INNER JOIN运算创建的查询只包含在联接字段中含有相同数据的记录 D)在INNER JOIN之中可以写一个嵌套的LEFT JOIN或一个RIGHT JOIN,并且在一个LEFT JOIN或一个RIGHT JOIN之中也可以嵌套INNER JOIN

27.下列SQL语句的功能是显示出产品名和相应的类名包含那些没有产品的种类,请完成该语句。( )

SELECT 分类.类名, 产品.产品名 FROM _______________ ;

ON 分类.类标号= 产品.类标号

A)分类,产品 B)分类 INNER JOIN 产品 C)分类 LEFT JOIN 产品 D)分类 RIGHT JOIN 产品 28.下面关于SELECT嵌套语句的叙述中,错误的是( )。

A)首先应对子查询求值

B)外部查询依赖于子查询的求值结果

C)子查询必须被括在圆括号中 D)子查询的结果会被显示出来

29.下列SQL语句的功能是向学生信息表中插入一条新记录,请完成该语句。( )

INSERT INTO 学生信息 ______________

A)(姓名,性别,学号) (′陈明′,′男′,′2001102211′)

B)VALUE (′陈明′,′男′,′2001102211′) (姓名,性别,学号) C)(姓名,性别,学号) VALUE (′陈明′,′男′,′2001102211′) D)(′陈明′,′男′,′2001102211′) (姓名,性别,学号) 30.下列命令中不属于数据查询命令的是( )。 A)INSERT B)SELECT 31.查询得到的结果可以( )。

A)直接输出到打印机

C)输出到屏幕上

C)GROUP BY

D)WHERE

B)保存在文本文件中 D)以上均可

下面32-40题使用STUDENT表中的数据,该表的具体数据如下: 学号 姓名 成绩 专业 2000602 徐秀娟 588 金融 2000606 宋力萍 639 金融 2000612 李梅 656 金融 2000501 孙红 587 法律 2000508 万福全 559 法律 2000615 左安方 602 金融 2000516 李程碑 546 法律 2000619 朱益群 591 金融

32.若要在STUDENT 表中增加一条记录,其学号是2000538,姓名为王力、成绩为587,专业为法律,应使用的SQl 命令为( )

A)ALTER TABLE ADD STUDENT (学号,姓名,成绩,专业); VALUES(2000538,王力,587,法律)

B) ALTER TABLE INSERT STUDENT (学号,姓名,成绩,专业); VALUES(2000538,王力,587,法律)

C)INSERT INTO STUDENT (学号,姓名,成绩,专业); VALUES(2000538,王力,587,法律)

D)INSERT INTO STUDENT (学号,姓名,成绩,专业); VALUES(\,\王力\,587,\法律\)

33.若要在STUDENT表中给所有法律专业学生的成绩增加20分,应使用的SQL命令为( )。 A)UPDATE STUDENT SET 成绩=成绩+20 FOR 专业=\法律\B)UPDATE STUDENT SET 成绩=成绩+20 WHERE 专业=\法律\C)UPDATE STUDENT ADD 成绩+20 FOR 专业=\法律\

D)UPDATE STUDENT ADD 成绩=成绩+20 WHERE 专业=\法律\

34.若要在STUDENT 表中增加一个宽度为2的“性别”字段,应使用的SQL命令为( )。 A)ALTER TABLE STUDENT ADD 性别 C(2)

B)ALTER TABLE STUDENT ADD 性别 WITH C(2) C)INSERT TABLE STUDENT ADD 性别 C(2)

D)INSERT STUDENT ALTER ADD 性别 WITH C(2)

35.若要将STUDENT 表中“姓名”字段的宽度由8改为10,应使用的SQL命令为( )。 A)ALTER TABLE STUDENT 姓名 WITH C(10) B)ALTER TABLE STUDENT 姓名 ALTER C(10) C)INSERT TABLE STUDENT ALTER 姓名 C(10) D)INSERT STUDENT ALTER 姓名 C(10)

36.若要输出STUDENT 表中各专业成绩最高的学生姓名、专业与成绩,应使用的SQL命令为( )。 A)SELECT 姓名,专业,MAX(成绩),FROM STUDENT GROUP BY \专业\B)SELECT 姓名,专业,MAX(成绩) FROM STUDENT GROUP BY 专业 C)SELECT 姓名,专业,成绩 FROM STUDENT ORDER BY \成绩\

D)SELECT 姓名,专业,成绩 FROM STUDENT ORDER BY 成绩 DESC 37.若要将STUDENT表中的成绩在600分以上的学生姓名和成绩按成绩由高到低的顺序显示出来,应使用的SQL命令为( )。

A)SELECT 姓名,成绩 FROM STUDENT WHERE 成绩>=600 ORDER BY 成绩 B)SELECT 姓名,成绩 FROM STUDENT WHERE 成绩>=600 ORDER BY 成绩 ASC C)SELECT 姓名,成绩 FROM STUDENT WHERE 成绩>=600 ORDER BY 成绩 DESC D)SELECT 姓名,成绩 FROM STUDENT WHERE 成绩>=600 ORDER BY 成绩

38.执行“SELECT * FROM STUDENT INTO DBF CIPX ORDER BY 成绩”的SQL 命令之后,将( )。 A)会提示命令出错

B)会生成一个按“成绩”升序排序的表文件

C)会生成一个按“成绩”降序排序的表文件

D)在屏幕的浏览窗口中显示一个按“成绩”排序的结果

39.分别求 STUDENT 表中每个专业的学生的平均成绩的SQL命令是( )。

A)SELECT 专业 ,AVG(成绩) FROM STUDENT GROUP BY 成绩

B)SELECT 专业 ,AVG(成绩) FROM STUDENT ORDER BY 成绩 C)SELECT 专业 ,AVG(成绩) FROM STUDENT ORDER BY 专业 D)SELECT 专业 ,AVG(成绩) FROM STUDENT GROUP BY 专业

40.若要删除STUDENT表中的“性别”字段,应使用的SQL命令为( )。 A)ALTER TABLE STUDENT DROP 性别 B)ALTER TABLE STUDENT DELETE 性别 C)DELETE TABLE STUDENT DROP 性别 D)DROP STUDENT ALTER ERASE 性别

41.“SELECT 工资 FROM 职工 ORDER BY 工资”语句的 意义是( )。 A)按职工的工资值的升序检索出他们工资的信息 B)按职工的工资值的降序检索出他们工资的信息 C)按职工的工资值的升序检索出所有字段的信息 D)按职工的工资值的降序检索出所有字段的信息 42.SQL使用的通配符有( )。

A)* B)% C)下划线 D)B和C

以下题使用的数据表如下:

当前盘当前目录下有数据库DB_STOCK.DBC,其中有表STOCK.DBF,该数据库表的内容是: 股票代码 600600 600601 600602 600603 600604 600605 000001 股票名称 青岛啤酒 方正科技 广电电子 兴业房产 二纺机 轻工机械 深发展 单价 7.48 15.20 10.40 12.76 9.96 14.59 7.48 交易所 上海 上海 上海 上海 上海 上海 深圳 深圳 000002 深万科 12.50 43.查询交易所在“深圳”的股票的信息所用的命令是( )。 A)SELECT ALL FROM STOCK

B)SELECT * FROM STOCK WHERE 交易所= \深圳\C)SELECT * WHERE 交易所= \深圳\

D)SELECT ALL FROM STOCK WHERE 交易所= \深圳\

44.查询单价超过10元的股票的所有信息用的命令是( )。 A)SELECT * FROM STOCK

B)SELECT * FROM STOCK WHERE 单价>10 C)SELECT ALL FROM STOCK WHERE 单价>10 D)LIST ALL

45.在该表中插入一条记录应使用的命令是( )。

A)INSERT INTO STOCK VALUES(\,\长江\,12.54,\成都\) B)INSERT VALUES(\,\长江\,12.54,\成都\)

C)INSERT INTO STOCK SET(\,\长江\,12.54,\成都\) D)INSERT TO STOCK VALUES(\,\长江\,12.54,\成都\) 46.查询股票名称与“电子”有关的记录应该用( )。 A)SELECT * FROM STOCK WHERE股票名称=\电子\

B)SELECT * FROM STOCK WHERE股票名称 LIKE \电子%\C)SELECT * FROM STOCK WHERE股票名称 LIKE \电子\D)SELECT * FROM STOCK WHERE股票名称=\电子_\

47.按股票的单价值升序检索出全部的股票信息应该用( )。 A)SELECT * FROM STOCK WHERE ALL

B)SELECT * FROM STOCK ORDER BY 单价

C)SELECT * FROM STOCK ORDER BY 单价 DESC

D)SELECT * FROM STOCK GROUP BY 单价

48.检索出单价在10至15之间的所有股票的信息,应使用的SQL语句是( )。 A)SELECT * FROM STOCK WHERE 10<单价<15

B)SELECT * FROM STOCK WHERE单价 BETWEEN 10 AND 15 C)SELECT * FROM STOCK WHERE单价>10 OR 单价<15

D)SELECT * WHERE单价 BETWEEN 10 AND 15

49.察看股票的最高单价和最低单价相差多少,应该使用的SQL语句是( )。 A)SELECT * FROM STOCK WHERE BETWEEN MAX(单价) AND MIN(单价) B)SELECT MAX(单价)-MIN(单价) FROM STOCK

C)SELECT * FROM STOCK WHERE MAX(单价)-MIN(单价) D)MAX(单价)-MIN(单价) SELECT * FROM STOCK 二、填空题

1.用视图 修改数据表中数据。

2.视图可分为 、 两种。 3.查询 更新数据表中的数据。

4.由多个本地数据表创建的视图为 。 5.创建视图时,相应的数据库必须是 状态。

6.视图既具有 的特点,又具有 的特点。 7.建立远程视图必须先建立与远程数据库的 。 8.查询设计器的“筛选”选项卡用来指定查询的 。 9.可以用 命令来打开视图设计器。

10.SQL SELECT 语句为了将查询结果存放到临时表中应使用 短语。

11.在SQL SELECT中用于计算查询的函数有COUNT、 、 、MAX和MIN。 12.使用SQL语句实现数据查询,设置查询输出的字段,使用 短语;设置查询的基表,使用 短语;设置查询输出记录的条件,使用 短语。

13.SQL查询中,与查询设计器的“连接”选项卡对应的短语为JOIN? ,与“字段”选项卡对应的短语为 ,与“筛选”选项卡对应的短语为 。

14.SQL查询中,短语WHERE用来设置输出记录的 ,短语ORDER BY 用来设置输出记录的 ,短语GROUP BY 用来设置 。 15.SQL查询中默认查询结果输出到 。 16.SQL修改表结构的命令是 。

17.与SQL表达式“成绩 IN (60,100)”等价的逻辑表达式为 。 18.完成以下SQL语句,使其可选择工资超过1,000 的所有雇员。

SELECT 姓名,工资 FROM 工人信息

19.如果要在藏书中查询“高等教育出版社”和“科学出版社”的图书,请对下面的SQL

语句填空。

SELECT 书名,作者,出版单位 FROM 图书管理!图书; WHERE 出版单位 _____

20.如果要查询所藏图书中,各个出版社的图书最高单价、平均单价和册数,请对下面的SQL语句填空。

SELECT 出版单位,MAX(单价), , ; FROM 图书管理!图书 出版单位

21.如果要查询借阅了两本及两本以上图书的读者姓名和单位,请对下面的SQL语句填空。

SELECT 姓名,单位 FROM 图书管理!读者;

WHERE 借阅证号 IN

(SELECT FROM 图书管理!借阅; GROUP BY 借阅证号 COUNT(*)>=2) 三、操作题

1. 用SQL语句完成下列操作。

订购 客户ID 订购日期 10101 10315 10329 10315 10315 10101 10101 10330 10330 10329 10101 10330 10101 10315 10101 客户 货物ID 数量 5 2 1 6 4 8 客户ID 姓名 10101 10299 10315 10325 10329 10330 黎明 陈俊 罗云 韦林 王菱 柳琴 货物 城市 北京 广州 广州 上海 深圳 上海 09-01-2004 1015 09-18-2004 1015 10-28-2004 1017 11-01-2004 1029 11-02-2004 1017 12-15-2004 1028 12-22-2004 1017 06-01-2005 1001 06-18-2005 1029 06-30-2005 1029 07-08-2005 1008 07-19-2005 1028 08-13-2005 1001 08-14-2005 1001 08-18-2005 1009 3 4 3 2 2 3 1 3 1 货物ID 货物名 单价 1001 1008 1009 1015 1017 1028 1029 睡袋 帐篷 罗盘 军刀 手套 雪靴 568.00 768.00 26.00 58.00 38.00 298.00 充气垫 898.00

(1)求在2005年8月份,已售货物的销售总数。 (2)求在2004年订购了货物的客户的信息。

(3)求每个货物ID及购买该货物数量最多的客户ID。 (4)求购买了货物的客户信息。

(5)在货物表中增加售出量字段(N/3/0),并汇总货物的售出总数。 2. 用SQL语句完成下列查询工作。

S.DBF(供应商),数据项有SNO(供应商代号),SNAME(供应商名称),CITY(供应商所在城市)

P.DBF(零件),数据项有PNO(零件编号),PNAME(零件名称),WEIGHT(零件重量), COLOR(零件颜色)

SP.DBF(零件供应),数据项有SNO,PNO,QTY(某供应商供应拥有某零件的数量)

S(供应商) SNO S1 S2 S3 SP(零件供应记录) SNO S1 S1 S1 S2 S2 COLOR 红 灰 蓝 褐 S3 SNAME 精益 盛行 东方红 CITY 天津 北京 北京 P(零件) PNO P1 P2 P3 P1 P2 P2 QTY 300 200 400 300 400 200 PNO P1 P2 P3 P4 PNAME 螺母 螺栓 螺丝刀 螺丝刀 WEIGHT 12 17 14 14 (1) 列出所有供应商提供的零件种类数(须含供应商名、零件种类数量)。 (2) 求北京的供应商的数目。

(3) 求不供应P2商品的供应商名字。

(4) 所有供应零件重量超过17(含17)的供应量增加10%。 (5) 将零件供应记录中没有的零件从零件表中删除。 3. 用SQL语句完成下列操作。

S.DBF(供应商),数据项有SNO(供应商代号),SNAME(供应商名称),CITY(供应商所在城市)

P.DBF(零件),数据项有PNO(零件编号),PNAME(零件名称),WEIGHT(零件重量),COLOR(零件颜色),PRICE(零件价格), J.DBF(工程项目),数据项有JNO(项目编号),JNAME(项目名称),CITY(项目作在城市)

SPJ.DBF(零件供应表)数据项有SNO,PNO,JNO,QTY(表示某供应商供应某零件给某工程项目的数量)

S(供应商) SPJ(零件供应表) SNO S1 S2 S3 S4 S5 SNAME 精益 盛行 东方红 丰奉 菱庆 CITY 天津 北京 北京 天津 上海 SNO S1 S1 S1 S1 S2 S2 S2 S2 S2 S2 S3 S3 S4 S4 S4 S5 S5 S5 PRICE 0.05 0.10 1.50 1.20 5.00 7.30 S5 PNO P1 P1 P1 P2 P3 P3 P3 P3 P5 P5 P1 P3 P5 P6 P6 P2 P3 P6 P6 JNO J1 J3 J4 J2 J1 J2 J4 J5 J1 J2 J1 J1 J1 J3 J4 J4 J1 J2 J4 QTY 200 100 700 100 400 200 500 400 400 100 200 200 100 300 200 100 200 200 500 J(工程项目) JNO J1 J2 J3 J4 J5 J6 J7 JNAME 三建 一汽 弹簧厂 造船厂 机车厂 无线电厂 半导体厂 CITY 北京 长春 天津 天津 唐山 南京 上海 P(零件) PNO P1 P2 P3 P4 P5 P6 PNAME 螺母 WEIGHT COLOR 12 红 灰 蓝 褐 蓝 灰 螺栓 17 螺丝刀 14 螺丝刀 14 凸轮 40 齿轮 30 (1) 求所有供应商的所在城市名,要求没有重复信息。

(2) 按照零件名称的升序和价格的降序(在零件名称相同时)显示零件的信息 (3) 求供应工程J1零件的单位号码SNO (4) 求供应工程J1零件P1的供应单位号码 (5) 求供应工程J1红色零件的单位号码

(6) 求没有使用天津单位生产的零件的工程号JNO (7) 把全部灰色零件的颜色改为黑色

(8) 由S1供应给J1的零件P1今改为由S2供给,作必要的修改 (9) 求在北京的所有供给商和工程的名字 (10)删除全部使用蓝色零件的工程供应记录 4.用SQL语句完成下列操作(数据表基于例题10)。

(1) 求选修C1课程的学生学号和得分,结果按分数降序排列。

(2) 求年龄在20岁与22岁之间(包括20岁和22岁)的学生学号和年龄。 (3) 求在下列各系的学生:计算机系、数学系。 (4) 求缺少学习成绩的学生学号和课程号。

(5) 求选修C1课程且成绩为B以上的学生信息及成绩。 (6) 求每一课程的间接先行课(即先行课的先行课)。 (7) 求没有选修C3课程的学生姓名。

(8) 求计算机系的学生以及年龄小于18岁的学生。 (9) 求课程号及选修该课程的学生人数。 (10)求选修课程超过3门(含3门)的学生学号。

5.(1)在已经打开的人事数据库中,根据下表给出的表结构,使用SQL语言建立数据表“职工”,定义职工号为主索引,性别默认为“男”。

职工表结构:职工号/C/5,部门号/C/2,姓名/C/8,性别/C/2,职称/C/10,出生日期/D,婚否/L,工资/N/8/2

(2)建立部门表(部门号/C/2,部门名称/C/10,负责人/C/8,部门号为主索引。 (3)建立工资表,结构如下,其中职工号为主索引。

职工号/C/5,基本工资/N/8/2,津贴/N/7/1,奖金/N/3,会费/N/5/2,公积金/N/3 (4)删除职工表的婚否字段,增加年龄/N/3,将姓名字段宽度改为6 (5)职称增加默认值“教授”

(6)使用SQL的INSERT在各张表中输入一些数据。

(7)将职工表添加的年龄字段,使用出生日期数据进行更新,工资表中的会费由基本工资的千分之五替换,注意观察表数据的变化。 (8)删除职工表中男职工的记录。 (9)查询职工表的职称和年龄情况。 (10)查询部门表信息。

(11)查询部门代码第一个字符为2的部门信息。

(12)查询职工表中70年(含70年)以前出生的男职工的姓名和工资。

(13)查询职工表中1960年到1970年(含1960年和1970年)出生的职工姓名和出生日期。 (14)统计职工表中记录数和部门数。 (15)统计职工表中工资总和及平均工资。

(16)按部门统计各部门的人数、工资和、最高工资、最低工资、平均工资。

(17)查询职工表中副教授以上的记录,并按工资降序排序,工资相同时按出生日期升序排列。

(18)查询男职工的姓名和工资信息。

(19)查询所有职工的姓名、所在部门名称和基本工资。

本文来源:https://www.bwwdw.com/article/djt8.html

Top