SQL练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL练习题
一.上机操作题:用SQL命令完成下列各题功能:
1.检索工资多于1230元的职工号
2.检索有职工工资多于2010元的仓库信息
3.给出在仓库”WH1“或”WH2”工作,并且工资少于2020元的职工号
4.找出工资多于1230元的职工号和他们所在的城市.
5.找出工作在面积大于400的仓库的职工号以及这些职工工作所在的城市。
6.哪些城市至少有一个仓库的职工工资为1250元
7.查询所有职工的工资都多于1210元的仓库的信息。
8.找出和职工E4挣同样工资的所有职工
9.检索出工资在2020元到2050元范围内的职工信息
10.从供应商关系中检索出全部公司的信息。
11.找出不在北京的全部供应商信息
12.按职工的工资值升序检索出全部职工信息
13.先按仓库号排序,再按工资排序并输出全部职工信息
14.找出供应商所在地的数目
15.求所有职工的工资和
16.求北京和上海的仓库职工的工资总和
17.求所有职工的工资都多于2020元的仓库的平均面积
18.求在WH2仓库工作的职工的最高工资值
19.求每个仓库的职工的平均工资
20.求至少有两个职工的每个仓库的平均工资
21.找出尚未确定供应商的订购单(供应商号为空)
22.列出已经确定了供应商的订购单信息
23.列出每个职工经手的具有最高总金额的订购单信息
24.检索那些仓库中还没有职工的仓库的信息
25.检索那些仓库中至少已经有一个职工的仓库的信息
26.检索有职工的工资大于或等于WH1仓库中任意一名职工工资的仓库号
27.检索有职工的工资大于或等于WH1仓库中任何一名职工工资的仓库号
28.检索有职工的工资大于或等于WH1仓库中所有职工工资的仓库号
29.显示工资最高的三位职工的信息
30.显示工资最低的30%职工的信息
31.显示城市为北京和上海的仓库信息。
32.将查询到的职工的信息存放到数组TMP中。
33.将最高工资的前三位职工的信息存放到表V1中。
34.将城市为北京的仓库信息存入到临时表TEMP中。
35.检索北京仓库对应的供应商的名称
36.检索出向供应商S3发过订购单的职工的职工号和仓库号
37.检索出向S4供应商发出订购单的仓库所在的城市
38.检索出由工资多于2020元的职工向北京的供应商发出的订购单号
39.检索出所有仓库的平均面积
40.检索出工资低于本仓库平均工资的职工信息
41.插入一个新的供应商元组(S9,智通公司,沈阳)
42.往订购单表中插入元组(“E7”,”S4”,”OR01”,2001/05/25)
43.往订购单表中插入一条记录:职工号为“E7”,订购单号为“OR01”
44.将职工表中所有记录的工资增加10%
45.北京的仓库面积增加20。
46.删除仓库表中仓库号为“WH2”的记录
47.删除职工表中工资低于2000元的记录
48.删除目前没有任何订购单的供应商
49.删除由在上海仓库工作的职工发出的所有订购单
50.给低于所有职工平均工资的职工提高5%的工资
51.用SQL命令建立一个仓库1表,表结构为:仓库号C(5)设为主索引,城市C(10),面积I,设置字段有效性为面积大于0,信息为:面积应该大于0。
52.用SQL CREATE命令建立职工1表,表结构为:仓库号C(2),职工号C(5)设为主索引,工资I 设字段有效性规则为:工资大于等于1000并小于等于5000,信息为:工资值的范围在1000—5000元之间,默认值为2000。
并与表仓库1建立联系。
53.为职工1表增加一个货币类型的奖金字段,规则为奖金大于0,信息为:奖金应大于0。
54.将仓库1表中的城市字段的宽度改为14。
55.修改或定义职工1表中奖金字段的有效性规则为:资金大于100,信息为:奖金应大于100元。
56.删除奖金字段的有效性规则
57.将职工1中奖金字段名改为加班费。
58.删除加班费字段。
59.定义一个视图V1,它包含职工号,仓库号
60.定义一个视图V2,它只包含北京仓库的信息
61.定义一个视图V3,它包含职工号,职工的工资和职工工作所在城市的信息。
62.定义一个视图V4,它包含职工号、月工资和年工资3个字段。
63.删除视图V2
二、阅读程序:
1.SET TALK OFF
CLEAR
SELECT 仓库号,MAX(工资) AS 最高工资FROM 职工;
GROUP BY 仓库号ORDER BY 仓库号;
INTO DBF GGZ
USE GGZ
仓库号,最高工资
USE
SET TALK ON
RETURN
运行结果:
2. SET TALK OFF
SELECT 城市FROM 仓库WHERE仓库号IN;
(SELECT 仓库号FROM 职工WHERE 工资=1250);
INTO DBF LSB
SELECT COUNT(*) FROM LSB INTO ARRAY A
A(1)
SET TALK ON
RETURN
3.SET TALK OFF
SET HEADING OFF
CLEAR
SELECT * TOP 3 FROM 职工ORDER BY 工资DESC INTO DBF GZB
USE GZB
DISPLAY OFF
USE
SET TALK ON
RETURN
运行结果:
4. SET TALK OFF
CLEAR
SELECT 城市FROM 仓库WHERE 仓库号IN;
(SELECT 仓库号FROM 职工WHERE 工资=1250) ;
INTO DBF CITY
USE CITY
COUNT TO N
N
USE
SET TALK ON
RETURN
运行结果:
5. SET TALK OFF
CLEAR
SET HEADING OFF
SELECT 仓库号,A VG(工资) AS 平均工资FROM 职工; GROUP BY 仓库号ORDER BY 仓库号INTO DBF GZK USE GZK
DISPLAY OFF
SET TALK ON
RETURN
运行结果:
6. SET TALK OFF
SET HEADING OFF
CLEAR
SELECT * FROM 职工INTO DBF LSB
UPDA TE LSB SET 工资=工资+100 WHERE 仓库号="WH2" GO 3
DISPLAY OFF
CLOSE ALL
SET TALK ON
RETURN
7.SET TALK OFF
SET HEADING OFF
CLEAR
SELECT COUNT(*) AS JLS FROM 职工;
GROUP BY 仓库号ORDER BY JLS INTO ARRAY C
C(1),C(2),C(3)
SET TALK ON
RETURN
运行结果:
三、单项选择题:
1. 在SQL的SELECT语句中用于建立多个表之间联系的短语是()。
A.WHERE B. JOIN
C. GROUP BY
D. FROM
2. SQL用于显示部分查询结果的TOP短语,必须与()短语同时使用。
A. ORDER BY
B. FROM
C. WHERE
D. GROUP BY
3. 使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当 ( )
A.使用WHERE子句
B.在GROUP BY 后面使用HAVING子句
C.先使用WHERE子句,再使用HAVING子句
D. 先使用HAVING子句,再使用WHERE子句
4. 查询语句中,()短语用于实现关系的投影运算。
A. WHERE
B. FROM
C. SELECT
D. GROUP BY
5. 使用SQL语句从表STUDENT中查询所有姓王的同学的信息,正确的命令是 ()
A. SELECT * FROM STUDENT WHERE LEFT(姓名,2)=“王”
B. SELECT * FROM STUDENT WHERE RIGHT(姓名,2)=“王”
C. SELECT * FROM STUDENT WHERE TRIM(姓名,2)=“王”
D. SELECT * FROM STUDENT WHERE STR(姓名,2)=“王”
第6~10题使用如下表的数据:
部门表
部门号部门名称
40 家用电器部
10 电视录摄像机部
20 电话手机部
30 计算机部
商品表
部门号商品号商品名称单价数量产地
40 0101 A牌电风扇 200.0 10 广东
40 0104 A牌微波炉 350.00 10 广东
40 0105 B牌微波炉 600.00 10 广东
20 1032 C牌传真机 1000.00 20 上海
40 0107 D牌微波炉CD-A 420.00 10 北京
20 0110 A牌电话机 200.00 50 广东 20 0112 B牌手机 2000.00 10 广东40 0202 A牌电冰箱3000.00 2 广东30 1041 B牌计算机6000.00 10 广东 30 0204 C牌计算机 10000.00 10 上海 6. 有如下SQL语句
SELECT 部门号,MAX(单价*数量) FROM 商品表 GROUP BY 部门号
查询结果有()条记录
A. 1
B. 4
C. 3
D. 10
7. 有如下SQL语句
SELECT 产地,COUNT(*) 提供的商品种类数 FROM 商品表;
WHERE单价>200 GROUP BY 产地 HAVING COUNT(*)>=2;
ORDER BY 2 DESC
查询结果的第一条记录的产地和提供的商品种类数是()
A. 北京,1
B. 上海,2
C. 广东,5
D. 广东,7
8. 有如下SQL语句
SELECT 部门表.部门号,部门名称,SUM(单价*数量);
FROM 部门表,商品表;
WHERE 部门表.部门号=商品表.部门号;
GROUP BY 部门表.部门号
查询结果是()
A. 各部门商品数量合计
B. 各部门商品金额合计
C. 所有商品金额合计
D. 各部门商品金额平均值
9. 有如下SQL语句
SELECT 部门表.部门号,部门名称,商品号,商品名称,单价;FROM 部门表,商品表;
WHERE 部门表.部门号=商品表.部门号;
ORDER BY 部门表.部门号 DESC
查询结果的第一条记录的商品号是()
A. 0101
B. 0202
C. 0110
D. 0112
10. 有如下SQL语句
SELECT 部门名称 FROM 部门表 WHERE 部门号 IN;
(SELECT 部门号FROM 商品表WHERE 单价BETWEEN 420 AND 1000)
查询结果是()
A. 家用电器部、电话手机部
B. 家用电器部、计算机部
C. 电话手机部、电视录摄像机部
D. 家用电器部、电视录摄像机部
11.查询订购单号(字符型,长度为4.尾字符是″1″的错误命令是()
A. SELECT * FROM 订单 WHERE SUBSTR(订购单号,4)= "1"
B. SELECT * FROM 订单 WHERE SUBSTR(订购单号,4,1)= "1"
C. SELECT * FROM 订单 WHERE "1"$订购单号
D. SELECT * FROM 订单 WHERE RIGHT(订购单号,1)= "1"
12. 在SQL语句中,与表达式“仓库号NOT IN("whl","wh2")”功能相同的表达()
A.仓库号="whl" AND 仓库号="wh2"
B.仓库号!="whl" OR 仓库号#"wh2"
C.仓库号<>"whl" OR 仓库号!="wh2"
D.仓库号!="whl" AND 仓库号!="wh2"
13. SQL的核心是()
A. 查询
B. 数据定义
C. 数据操纵
D. 数据控制
14. 在SQL-SELECT语句中用于实现关系的选择运算的短语是()
A. FOR
B. WHILE
C. WHERE
D. CONDITION
15.在SQL语句中,用于检查是否有结果返回的是 ( )
A. WHERE
B. INNER JOIN
C. CONDITION
D. EXISTS/NOT EXISTS
16. SQL语句
SELECT * FROM 职工 ORDER BY 工资 DESC
查询结果的第一条记录的工资字段值为 ( )
A. 1210
B. 1220
C. 1230
D. 1250
17. SQL语句
SELECT 仓库号,MAX(工资) FROM 职工 GROUP BY 仓库号查询结果有( )条记录
A. 1
B. 0
C. 3
D. 5
18.SQL语句
SELECT DISTINCT 工资 FROM 职工
查询结果是( )条记录
A. 1
B. 3
C. 4
D. 5
19. SQL语句
SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资>1210 查询结果有( )条记录
A. 1
B. 3
C. 5
D. 7
20. SQL语句
SELECT 城市 FROM 仓库 WHERE 仓库号 IN; (SELECT ( ) FROM 职工 WHERE 工资=1250)
可以完成查找那些城市至少有一个仓库的职工工资为1250元.
A. 仓库号
B. 城市
C. 面积
D. 职工号。