当前位置:文档之家› sql及查询与视图练习题

sql及查询与视图练习题

sql及查询与视图练习题
sql及查询与视图练习题

一、选择题

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

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

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

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

A)数据表 B)图形 C)报表 D)表单

3、以下关于视图的描述正确的是( D )。

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

C)可以根据数据库表建立视图 D)可以根据数据库表和自由表建立视图

4、视图不能单独存在,它必须依赖于( B )。

A)视图 B)数据库 C)自由表 D)查询

5、查询设计器中包括的选项卡有( A )。

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

C)条件、排序依据、分组依据 D)条件、筛选、杂项

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

A)字段 B)排序依据 C)联接 D)更新条件

7、在“添加表和视图”窗口,“其他”按钮的作用是让用户选择(D )。

A)数据库表 B)数据库 C)查询 D)不属于数据库的表

8、关于视图的正确描述是(D )。

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

C)在视图上不能进行更新操作 D)视图是从一个或多个表或视图导出的虚拟表

9、下面关于查询描述正确的是( C )。

A)可以使用CREATE VIEW打开查询设计器

B)使用查询设计器可以生成所有的SQL查询语句

C)使用查询设计器生成的SQL语句存盘后将存放在扩展名为QPR的文件中

D)使用DO语句执行查询时,可以不带扩展名

10、SQL的核心是( A )。

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

11、SQL语句中条件短语的关键字是(A )。

A)WHERE B)FOR C)WHILE D)CONDITION

12、从dab.dbf表中查询所有的姓名,应输入命令(B )。

A)SELECT dab FROM 姓名 B)SELECT 姓名FROM dab

C)SELECT 姓名 D)SELECT dab WHERE 姓名

13、使用SQL SELECT 可以将查询结果排序,排序的短语是(A )。

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

14、嵌套查询命令中的IN相当于( B)。

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

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

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

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

A)字段 B)联接 C)分组依据 D)排序依据

17、SQL的数据操作语句不包括(D )。

A)INSERT B)UPDATE C)DELETE D)CHANGE

18、SQL语句中建立表结构的命令是(A )。

A)CREATE TABLE B)CREATE DATABASE C)ALTER TABLE D)CREATE

19、SQL语句中的删除表的命令是(A )。

A)DROP TABLE B)DELETE TABLE C)ERASE TABLE D)DELETE DBF

20、向表中插入数据的SQL命令是(B )。

A)INSERT B)INSERT INTO C)INSERT IN D)INSERT BEFORE

21、SQL语句中,用于修改表结构的命令是(B )。

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

22、使用SQL语句进行分组查询时,为了去掉不满足条件的分组,应当(B )。

A)使用WHERE子句

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

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

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

23、下列选项中,不属于数据定义功能的SQL语句是(C )。

A)CREATE B)ALTER C)SELECT D)DROP

24.下列有关SQL的叙述错误的是(D )。

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

B)SQL语言能嵌入到程序设计语言中以程序方式使用

C)SQL语言非常简洁

D)SQL语言是一种高度过程化的语言

25.SQL语句中分组汇总的命令是(C )。

A)TOTAL B)SUM C)GROUP BY D)GATHER

26.下列叙述中,错误的是(C )。

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

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

C)SQL语句不能重新指定列的顺序

D)SQL语句不能省略FROM子句

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

A)如果不包含任何一个短语,则默认为ALL

B)DISTINCT可省略选择字段中包含重复数据的记录

C)TOP n [PERCENT]可指定返回特定数目的记录

D)当查询使用DISTINCT时,可以更新其输出

28.下列叙述中正确的是(A)。

A)HAVING短语只能在使用了GROUP BY短语的情况下使用

B)SELECT字段列表中的字段不一定全部包含在GROUP BY子句中

C)ORDER BY短语的缺省的排列次序是递减排列

D)如果未指定WHERE子句,则查询将不会返回任何记录

29.下列关于联接的叙述中,错误的是( D )。

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

开始的两个表中的全部记录,即使在第一个(左边)表中并没有匹配值的记录C)使用INNER JOIN运算创建的查询只包含在联接字段中含有相同数据的记录

D)在INNER JOIN之中可以写一个嵌套的LEFT JOIN或一个RIGHT JOIN,并且在一个LEFT JOIN或一个RIGHT JOIN之中也可以嵌套INNER JOIN

30.下列叙述中错误的是(B )。

A)可以在任何组合、单一的UNION运算中,合并两个或多个查询、表、及SELECT语句的结果

B)所有在一个联合运算中的查询,必须请求相同数目的字段;但是,字段不必大小相同或数据类型相同

C)TOP短语要与ORDER BY短语同时使用才有效

D)并运算的结果可以保存在文件中

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

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

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

A)分类,产品B)分类 INNER JOIN 产品

C)分类 LEFT JOIN 产品D)分类 RIGHT JOIN 产品

32.下面关于SELECT嵌套语句的叙述中,错误的是(D )。

A)首先应对子查询求值

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

C)子查询必须被括在圆括号中

D)子查询的结果会被显示出来

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

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

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

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

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

34.查询得到的结果可以(D )。

A)直接输出到打印机B)保存在文本文件中

C)输出到屏幕上D)以上均可

下面35-43题使用STUDENT表中的数据,该表的具体数据如下:

学号姓名成绩专业

2000602 徐秀娟 588 金融

2000606 宋力萍 639 金融

2000612 李梅 656 金融

2000501 孙红 587 法律

2000508 万福全 559 法律

2000615 左安方 602 金融

2000516 李程碑 546 法律

2000619 朱益群 591 金融

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

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(“2000538”,“王力”,587,“法律”)

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

B)UPDATE STUDENT SET 成绩=成绩+20 WHERE 专业=“法律”

C)UPDATE STUDENT ADD 成绩+20 FOR 专业=“法律”

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

37.若要在STUDENT 表中增加一个宽度为2的“性别”字段,应使用的SQL命令为(A )。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)

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

B)ALTER TABLE STUDENT 姓名 C(10)

C)INSERT TABLE STUDENT ALTER 姓名 C(10)

D)INSERT STUDENT ALTER 姓名 C(10)

39.若要输出STUDENT 表中各专业成绩最高的学生姓名、专业与成绩,应使用的SQL命令为(B )。

A)SELECT 姓名,专业,MAX(成绩) FROM STUDENT GROUP BY “专业”

B)SELECT 姓名,专业,MAX(成绩) FROM STUDENT GROUP BY 专业

C)SELECT 姓名,专业,成绩 FROM STUDENT ORDER BY “成绩”DESC

D)SELECT 姓名,专业,成绩 FROM STUDENT ORDER BY 成绩 DESC

40.若要将STUDENT表中的成绩在600分以上的学生姓名和成绩按成绩由高到低的顺序显示出来,应使用的SQL语句为( C )。

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 成绩/D

41.执行“SELECT * FROM STUDENT INTO DBF CIPX ORDER BY 成绩”的SQL 命令之后,将(B )。

A)会提示命令出错

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

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

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

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

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 专业

43.若要删除STUDENT表中的“性别”字段,应使用的SQL命令为(A )。

A)ALTER TABLE STUDENT DROP 性别

B)ALTER TABLE STUDENT DELETE 性别

C)DELETE TABLE STUDENT DROP 性别

D)DROP STUDENT ALTER ERASE 性别

44.SELECT 工资 FROM 职工 ORDER BY 工资语句的意义是(A )。

A)按职工的工资值的升序检索出他们工资的信息

B)按职工的工资值的降序检索出他们工资的信息

C)按职工的工资值的升序检索出所有字段的信息

D)按职工的工资值的升序检索出所有字段的信息

45.SQL使用的通配符有(D )。

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

以下题使用的数据如下:

当前盘当前目录下有数据库DB_STOCK,其中有表STOCK.DBF,该数据库表的内容是:股票代码股票名称单价交易所600600 青岛啤酒7.48 上海

600601 方正科技15.20 上海

600602 广电电子10.40 上海

600603 兴业房产12.76 上海

600604 二纺机9.96 上海

600605 轻工机械14.59 上海

000001 深发展7.48 深圳

000002 深万科12.50 深圳

46.查询交易所在“深圳”的股票的信息所用的命令是( B )。

A)SELECT ALL FROM STOCK

B)SELECT * FROM STOCK WHERE 交易所=“深圳”

C)SELECT * WHERE 交易所=“深圳”

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

47.查询单价超过10元的股票的所有信息用的命令是(B )。

A)SELECT * FROM STOCK

B)SELECT * FROM STOCK WHERE 单价>10

C)SELECT ALL FROM STOCK WHERE 单价>10

D)LIST ALL

48.在该表中插入一条记录可以使用的命令是(A )。

A)INSERT INTO STOCK VALUES(“000001”,“长江”,12.54,“成都”)

B)INSERT VALUES(“000001”,“长江”,12.54,“成都”)

C)INSERT INTO STOCK SET(“000001”,“长江”,12.54,“成都”)

D)INSERT TO STOCK VALUES(“000001”,“长江”,12.54,“成都”)

49.查询股票名称与“电子”有关的记录应该用(B )。

A)SELECT * FROM STOCK WHERE股票名称=“电子”

B)SELECT * FROM STOCK WHERE股票名称 LIKE “%电子%”

C)SELECT * FROM STOCK WHERE股票名称 LIKE “_电子”

D)SELECT * FROM STOCK WHERE股票名称=“_电子_”

50.按股票的单价值升序检索出全部的股票信息应该用(B )。

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 单价

51.检索出单价在10至15之间的所有股票的信息,应使用的SQL语句是(B )。

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

52.查看股票的最高单价和最低单价相差多少,应该使用的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.建立远程视图必须先建立与远程数据库的连接。

11.查询设计器的筛选项卡用来指定查询的条件。

12.可以用 CREATE VIEW 命令来打开视图设计器。

13.SQL SELECT 语句为了将查询结果存放到临时表中应使用 INTO CURSOR 短语。14.SQL支持集合的并运算,运算符是 UNION 。

15.在SQL SELECT中用于统计的函数有COUNT、 SUM 、 AVG 、MAX和MIN。16.使用SQL语句实现数据查询,设置查询输出的字段,使用 SELECT 短语;设置查询的基表,使用 FROM 短语;设置查询输出记录的条件,使用 WHERE 短语。17.SQL查询中,与查询设计器的连接选项卡对应的短语为JOIN… ON ,与字段选项卡对应的短语为 SELECT ,与筛选选项卡对应的短语为 WHERE 。

18.SQL查询中,短语WHERE用来设置输出记录的条件,短语ORDER BY 用来设置输出记录的顺序,短语GROUP BY 用来设置分组信息。

19.SQL查询中默认查询结果输出到浏览。

20.SQL定义表的命令是 CREATE TABLE 。

21.SQL修改表结构的命令是 ALTER TABLE 。

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

SELECT 姓名,工资 FROM 工人信息 WHERE 工资>1000

24.有如下SQL语句:

SELECT 读者.姓名,读者.职称,图书.书名,借阅.借书日期;

FROM图书管理!读者,图书管理!借阅,图书管理!图书;

WHERE借阅.借书证号=读者.借书证号 AND图书.总编号=借阅.总编号

其中WHERE子句中的“借阅.借书证号=读者.借书证号”对应的关系操作代表的涵义是使两张表按借阅证号字段值相等一一对应_____。

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

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

WHERE 出版单位__=“高等教育出版社” OR _出版单位=“科学出版社”______ 26.如果要查询所藏图书中,各个出版社的图书最高单价、平均单价和册数,请对下面的SQL语句填空。

SELECT 出版单位,MAX(单价), AVG(单价) , COUNT(*) ;

FROM 图书管理!图书 GROUP BY 出版单位

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

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

WHERE 借阅证号 IN

(SELECT 借阅证号 FROM 图书管理!借阅;

GROUP BY 借阅证号 HAVING COUNT(*)>=2)

三、操作题

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

(1)求在2002年8月份,已售货物的销售总数。

SELECT 货物,SUM(数量) FROM 订购;

WHERE 订购日期 BETWEEN {^2002-08-01}AND{^2002-08-31};

GROUP BY 货物

(2)求在2001年订购了货物的客户的信息。

SELECT 客户ID,姓名,城市 FROM 客户;

WHERE 客户ID IN ( SELECT 客户ID FROM 订购;

WHERE 订购日期 BETWEEN {^2001-01-01}AND{^2001-12-31}) (3)求每个货物ID及购买该货物数量最多的客户的ID。

SELECT 货物ID, 客户ID FROM 订购 DG;

WHERE 数量=(SELECT MAX(数量) FROM 订购;

WHERE 货物ID=DG.货物ID)

(4)求购买了货物的客户信息。

SELECT * FROM 客户 WHERE EXIST;

(SELECT * FROM 订购 WHERE 订购.客户ID=客户.客户ID)

(5)在货物表中增加售出量字段(N/3/0),并汇总货物的售出总数。

ALTER TABLE 货物 ADD 售出量 N(3)

UPDATE 货物 SET 售出量=(SELECT SUM(数量) FROM 订购;

WHERE 订购.货物ID=货物.货物ID)

2.用SQL语句完成下列查询工作。

S(供应商),数据项有SNO,SNAME,STATUS,CITY

P(零件),数据项有PNO,PNAME,WEIGHT,COLOR

SP(零件供应记录),数据项有SNO,PNO,QTY,表示某供应商供应拥有某零件的数量为QTY

(1)找出所有S打头的供应商提供的零件清单(须含零件名称、数量)。

SELECT P.PNAME,SP.QTY FROM S,P,SP;

WHERE P.PNO=SP.PNO .AND. S.SNO=SP.SNO;

.AND. S.SNAME LIKE ′S%′

(2)列出所有供应商提供的零件种类数(须含供应商名、零件种类数量)。

SELECT S.SNAME,COUNT(SP.PNO) FROM S,SP;

WHERE S.SNO=SP.SNO GROUP BY SNO

(3)求北京的供应商的数目。

SELECT COUNT(S.SNO) FROM S WHERE S.CITY=′北京′

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

SELECT S.SNAME FROM S,SP;

WHERE S.SNO=SP.SNO .AND. .NOT. EXISTS;

(SELECT * FROM SP WHERE PNO=′P2′ .AND. S.SNO=SP.SNO)

3.参照上题提供的表和数据,使用SQL语句完成下列任务。

(1)把所有供应零件重量超过17(含17)的供应量增加10%。

UPDATE SP SET QTY=QTY*1.1;

WHERE PNO IN (SELECT PNO FROM P,SP;

WHERE SP.PNO=P.PNO .AND. P.WEIGHT>=17)

(2)将零件供应记录中没有的零件从零件表中删除。

DELETE FROM P WHERE PNO .NOT. IN;

(SELECT DISTINCE PNO FROM SP)

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

S(供应商),数据项有SNO,SNAME,STATUS,CITY

P(零件),数据项有PNO,PNAME,WEIGHT,COLOR

J(工程项目),数据项有JNO,JNAME,CITY

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

(1)求所有供应商的所在城市名,要求没有重复信息。

SELECT DISTINCT CITY FROM S

(2)按照零件名的升序和价格的降序(在零件名相同时)显示零件的信息

SELECT PNO,PNAME,COLOR,WEIGHT,PRICE FROM P;

ORDER BY PNAME, PRICE DESC

(3)求供应工程J1零件的单位号码SNO

SELECT SNO FROM SPJ WHERE JNO=′J1′

(4)求供应工程J1零件P1的供应单位号码

SELECT SNO FROM SPJ WHERE JNO=′J1′ .AND. PNO=′P1′

(5)求供应工程J1红色零件的单位号码

SELECT SNO FROM SPJ WHERE JNO= ′J1′ .AND. PNO IN;

(SELECT PNO FROM P WHERE COLOR=′红′)

(6)求没有使用天津单位生产的零件的工程号JNO

SELECT JNO FROM SPJ WHERE NOT EXISTS;

(SELECT * FROM S WHERE S.SNO=SPJ.SNO .AND. CITY=′天津′)

(7)把全部灰色零件的颜色改为黑色

UPDATE P SET COLOR=′黑′ WHERE COLOR=′灰′

(8)由S1供应给J1的零件P1今改为由S2供给,作必要的修改

UPDATE SPJ SET SNO= ′S2′;

WHERE SNO= ′S1′ .AND. JNO= ′J1′ .AND. PNO= ′P1′

(9)求在北京的所有供给商和工程的名字

SELECT SNAME FROM S WHERE CITY=′北京′ UNION;

SELECT JNAME FROM J WHERE CITY=′北京′

(10)删除全部使用蓝色零件的工程供应记录

DELETE FROM SPJ WHERE PNO IN;

(SELECT PNO FROM P WHERE COLOR=′蓝′)

5.用SQL语句完成下列操作(数据表基于例题)。

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

SELECT SNO,G FROM SC WHERE CNO= ′C1′ ORDER BY G DESC

(2)求年龄在20岁与22岁之间(包括20岁和22岁)的学生学号和年龄。

SELECT SNO,SA FROM S WHERE SAGE BETWEEN 20 AND 22

(3)求在下列各系的学生:计算机系、数学系。

SELECT * FROM S WHERE SDEP=′计算机系′ OR SDEP=′数学系′

(4)求缺少学习成绩的学生学号和课程号。

SELECT SNO,CNO FROM SC WHERE G IS NULL

(5)求选修C1课程且成绩为B以上的学生信息及成绩。

SELECT S.SNO,SNAME,SDEP,SA,G FROM S,SC;

WHERE S.SNO=SC.SNO .AND. https://www.doczj.com/doc/ea2521545.html,O=′C1′.AND. (SC.G=′A′.OR. SC=′B′)

(6)求每一课程的间接先行课(即先行课的先行课)。

SELECT https://www.doczj.com/doc/ea2521545.html,O,SECOND.PCNO FROM C FIRST, C SECOND;

WHERE FIRST.PCNO=https://www.doczj.com/doc/ea2521545.html,O

(7)求没有选修C3课程的学生姓名。

SELECT SNAME FROM S WHERE .NOT. EXISTS;

(SELECT * FROM SC WHERE SNO=S.SNO AND CNO=′C3′)

(8)求计算机系的学生以及年龄小于18岁的学生。

SELECT * FROM S WHERE SDEP=′计算机系′ UNION;

SELECT * FROM S WHERE SAGE<18

(9)求课程号及选修该课程的学生人数。

SELECT CNO,COUNT(SNO) FROM SC GROUP BY CNO

(10)求选修课程超过3门的学生学号。

SELECT SNO FROM SC GROUP BY SNO HAVING COUNT(*)>3

6.(1)建立人事数据库,根据下表给出的表结构,使用SQL语言建立数据表职工,定义职工号为主索引,性别默认为“男,工资限制在500~2000”之间。

步骤一:创建数据库

参考命令:CREATE DATABASE

步骤二:打开数据库设计器。

参考命令:MODIFY DATABASE

步骤三:建立职工表。

参考命令:CREATE 职工(职工号C(5)PRIMARY KEY,部门号C(2),姓名C(2) DEFAULT;“男”,职称C(10),出生日期D,婚否L,工资N(8,2)CHECK工资>=500AND工资<=2000,ERROR ;“工资应在500-2000之间”DEFAULT 1000)

(2)建立部门表(部门代号C(2),部门名称C(10),负责人C(8)),部门代码为主索引。参考命令:CREATE TABLE 部门(部门代号C(2) PRIMARY KEY,部门名称C(10),负责人;C(8))

(3)建立工资表,结构如下,其中职工号为主索引。

职工号 C(5),基本工资 N(8,2),津贴 N(7,1),奖金 N(3),会费 N(5,2),公积金 N(3)

参考命令:

CREATE TABLE 工资(职工号 C(5) PRIMARY KEY,基本工资 N(8,2),津贴 N(7,1),;

奖金 N(3),会费 N(5,2),公积金 N(3))

(4)删除职工表的婚否字段,增加年龄 N(8,0),将姓名字段宽度改为6

参考命令:ALTER TABLE 职工 ADD 年龄 N(8,0)ALTER 姓名 C(6) DROP 婚否

(5)职称增加默认值“教授”

参考命令:ALTER TABLE 职工 ALTER 职称 SET DEFAULT “教授”

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

参考命令:

法1:INSERT INTO 部门 VALUES(“22”,”网络教研室”,”李新”)

法2:DIMENSION A(3)

A(1)= “12”

A(2)= “基础教研室”

A(3)= “王雨”

INSERT INTO 部门 PROM ARRAY A

法3:部门代码= “21”

部门名称= “软件教研室”

负责人= “李玛丽”

INSERT INTO部门 PROM MEMVAR

(7)将职工表添加的年龄字段,使用出生日期数据进行更新,工资表中的会费由基本工资的千分之五替换,注意观察表数据的变化。

参考命令:UPDATE 职工 SET 年龄=YEAR(DATE())﹣YEAR(出生日期)

UPDATE工资 SET 会费=0

UPDATE工资 SET 会费=基本工资*0.005

ALTER TABLE 职工 DROP 年龄

(8)删除职工表中男职工的记录。

参考命令:DELETE FROM 职工 WHERE 性别=“男”

(9)查询职工表的职称和年龄情况。

参考命令: SELECT 职称,YEAR(DATE())-YEAR(出生年月)AS年龄 FROM 职工(10)查询部门表信息。

参考命令:SELECT * FROM 部门

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

参考命令:SELECT * FROM 部门 WHERE LEFT(部门代码,1)=“2”

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

参考命令:

法1:SELECT 姓名,工资 FROM 职工 WHERE YEAR(出生日期)<=1970 AND 性别=“男”

法2:SELECT 姓名,工资 FROM 职工 WHERE(出生日期)<={^1970/12/31} AND 性别=“男”法3:SELECT 姓名,工资 FROM 职工 WHERE YEAR(出生日期)<{^1971/01/01}AND 性别;=“男”

(13)查询职工表中1960年到1970年(含1960年和1970年)出生的职工姓名和出生日期。参考命令:SELECT 姓名,出生日期 FROM 职工 WHERE YEAR(出生日期)BETWEEN 1960 AND;1970

(14)统计职工表中记录数和部门数。

参考命令:SELE COUNT(*)AS 记录数,COUNT(DISTINCT 部门号)AS 部门数 FROM 职工(15)统计职工表中工资总和及平均工资。

参考命令:SELECT SUM(工资)工资总和,AVG(工资)平均工资 FROM 职工

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

参考命令:

法1:SELE 部门号, COUNT(*)人数,SUM(工资)工资和,MAX(工资)最高工资;

MIN(工资)最低工资,AVG(工资)平均工资 FROM 职工 GROUP BY 部门号

法2:SELECT 部门号,COUNT(*)人数,SUM(工资)和,MAX(工资)最高工资;

MIN(工资)最低工资,AVG(工资)平均工资 FROM 职工;

GROUP BY 部门号 HAVING 平均工资<1000

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

SELECT * FROM 部门 WHERE 职称 IN (“教授”,“副教授”)ORDER BY 工资 DESC,;出生日期

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

参考命令:

法1:SELECT 职工.姓名,基本工资,津贴,奖金,会费,公积金 FROM 工资,职工; WHERE 工资.职工号=职工.职工号 AND 性别=“男”

法2:SELECT 职工.姓名,基本工资,津贴,奖金,会费,公积金 FROM 职工 JION;工资,ON 工资.职工号=职工.职工号 AND 性别=“男”

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

参考命令:SELECT 姓名,部门名称,基本工资 FROM 部门 JION 职工 JION 工资,;

ON 工资.职工号=职工.职工号 ON 部门.部门代号=职工.部门号

相关主题
文本预览
相关文档 最新文档