文档库 最新最全的文档下载
当前位置:文档库 › 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.

(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。表示某供应商供应某零件给某工程

(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.wendangku.net/doc/e416280457.html,O=′C1′.AND. (SC.G=′A′.OR. SC=′B′)

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

SELECT https://www.wendangku.net/doc/e416280457.html,O,SECOND.PCNO FROM C FIRST, C SECOND;

WHERE FIRST.PCNO=https://www.wendangku.net/doc/e416280457.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 部门.部门代号=职工.部门号

SQLServer数据库试题九及答案

SQL Server数据库试题九及答案 一、选择题(每题2分,共30分) 1、下面不属于数据定义功能的SQL语句是:() A.CREAT TABLE B.CREAT CURSOR C.UPDA TE D.ALTER TABLE 2、SQL数据库中的视图与下列哪项是对应的()。 A.关系模式 B.存储模式 C.子模式 D.以上都不是 3、下列选项中不是数据库复制类型的是()。 A.快照复制 B.差异复制 C.事务复制 D.合并复制 4、下列说法错误的是: ()。 A.一个基本表可以跨一个或多个存储文件 B. 一个存储文件可以跨一个或多个基本表 C.每个存储文件与外部存储器上一个物理文件对应 D.每个基本表与外部存储器上一个物理文件对应 5.显示包含警告信息或其他信息的消息框,应该使用的操作是()。 A.Echo B.Message C.Warn D.MsgBox 6、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是()。 A.聚集索引 B.非聚集索引 C.主键索引 D.唯一索引 7. SQL Server的字符型系统数据类型主要包括()。 A. Int、money、char B. char、varchar、text C. datetime、binary、int D. char、varchar、int 8、以下选项中哪一项不是访问数据库系统的接口()。 A.ODBC B.OLE DB C.API D.ADO 9、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是() A.* B.% C.- D.? 10、SELECT语句中与HA VING子句同时使用的是()子句。 A.ORDER BY B.WHERE C.GROUP BY D.无需配合 11~15题使用如下数据: 当前盘当前目录下有数据库db_stock,其中有表stock的内容是: 股票代码股票名称单价交易所 600600 青岛啤酒7.48 上海 600601 方正科技15.20 上海 600602 广电电子10.40 上海 600603 兴业房产12.76 上海 600604 二纺机9.96 上海 600605 轻工机械14.59 上海 000001 深发展7.48 深圳 000002 深万科12.50 深圳 11、有如下SQL语句 create view stock_view as select * from stock where 交易所=”深圳” 执行该语句后产生的视图包含的记录个数是() A.1 B.2 C.3 D.4 12、有如下SQL语句

SQLServer选择题含答案去原题

第一套选择题 1.下列说法错误的是()。 A.内嵌表值函数没有函数主体,返回的表是单个SELECT语句的结果集B.多语句表值函数的调用与内嵌表值函数的调用方法相同 C.多语句表值函数的功能可以用标量函数来实现 D.在内嵌表值函数的定义中,不使用BEGIN…END块定义函数主体2.以下哪个事件不能激活DML触发器的执行()。 A.SELECT B. UPDATE C. INSERT D. DELETE 3.以下哪个数据库实例不属于系统数据库()。 A.master B.model C.msdb D.temp 4.执行以下语句: DECLARE @n int Set @n=3 WHILE @n<5 Begin IF @n=4 Print ltrim(@n)+‘的平方数为’+ltrim(@n*@n) Set @n=@n+1 End 执行完成后循环次数为()。

A.0次B.1次 C.2次D.死循环 5.利用游标来操纵数据时,所用的FOR UPDATE子句充分利用了事务的哪个特性()。 A.原子性B.一致性 C.永久性D.隔离性 6.关于触发器的描述,下列说法正确的是()。 A.触发器是在数据修改前被触发,约束是在数据修改后被触发 B.触发器是一个能自动执行的特殊的存储过程 C.触发器作为一个独立的对象存在,与数据库中其他对象无关D.inserted表和deleted表是数据库中的物理表 7.关于服务器角色与数据库角色,说法正确的是()。 A.只能将一个登录名添加为某个固定服务器角色的成员 B.只能将一个登录名添加为某个固定数据库角色的成员 C.sysadmin是固定数据库角色 D.db_owner是固定服务器角色 8.关于创建永久备份设备,下列说法错误的是()。 A.执行系统存储过程sp_addumpdevice创建永久备份设备 B.执行系统存储过程sp_dropdevice删除永久备份设备 C.若被删除的“命名备份设备”的类型为磁盘,那么必须指定DELFILE选项D.只须指定该命名备份设备的物理名,无须指定该命名备份设备的逻辑名9.能够将‘java’课的学分赋值给变量的语句是哪一个()。

SQL查询练习题

--练习题01:查找出已修学分低于20分的学生的姓名、性别和班主任。 select 姓名,性别,班主任 from 学生,班级 where 学生.班级编号=班级.班级编号 and 已修学分<20 --练习题02:查找出学生“王林”的班主任。 select 班主任 from 班级 where 班级编号 in(select 班级编号 from 学生 where 姓名='王林') --练习题03:查找出班主任“刘成河”班的全部男生的信息。 select 学生.* from 学生,班级 where 性别='男' and 班主任='刘成河' and 学生.班级编号=班级.班级编号 --练习题04:查找出课程“中国历史”考试及格的全部学生的学号、姓名、班级名称和分数。Select 学生.学号,姓名,班级名称,分数 from 学生,成绩,课程,班级 where 课程名称='中国历史' and 课程.课程编号=成绩.课程编号 and 学生.学号=成绩.学号 and 学生.班级编号=班级.班级编号 and 分数>=60 --练习题05:查找出全部同学的所有考试的姓名、课程名称、分数,查找结果的格式如下:Select 姓名,课程名称,分数 from 学生,课程,成绩 where 课程.课程编号=成绩.课程编号and 学生.学号=成绩.学号 --练习题01:查找出班主任“刘成河”班的全部男生的信息。 Select*from 学生 where 性别='男' and 班级编号 in(select 班级编号 from 班级 where 班主任='刘成河') --练习题02:查找出考试全及格的课程名称。 Select 课程名称 from 课程 where 课程编号 not in (select 课程编号 from 成绩 where 分数<60) select 课程名称 from 课程 where not exists (select * from 成绩 where 成绩.课程编号=课程.课程编号 and 分数<60) --练习题03:查找出所有学生的考试都及格的班级,并排除那些没有学生的班级。 select 班级名称 from 班级 where 总人数>0 and 班级编号 not in (select 班级编号 from 学生 where 学号 in (select 学号 from 成绩 where 分数<60))

2016sql数据库期末考试题及答案

一、单选题(共10 道试题,共50 分。)V 1. SQL Server中,保存着每个数据库对象的信息的系统表是(C)。 A. sysdatabases B. Syscolumns C. Sysobjects D. Syslogs 满分:5 分 2. 在存在下列关键字的SQL语句中,不可能出现Where子句的是(D )。 A. Update B. Delete C. Insert D. Alter 满分:5 分 3. 在查询语句的Where子句中,如果出现了“age Between 30 and 40”,这个表达式等同于(A )。 A. age>=30 and age<=40 B. age>=30 or age<=40 C. age>30 and age<40 D. age>30 or age<40

满分:5 分 4. 如果要在一张管理职工工资的表中限制工资的输入范围,应使用(D )约束。 A. PDRIMARY KEY B. FOREIGN KEY C. unique D. check 满分:5 分 5. 记录数据库事务操作信息的文件是(D )。 A. 数据文件 B. 索引文件 C. 辅助数据文件 D. 日志文件 满分:5 分 6. 要查询XSH数据库CP表中产品名含有“冰箱”的产品情况,可用(C)命令。 A. SELECT * FROM CP WHERE 产品名称LIKE ‘冰箱’ B. SELECT * FROM XSH WHERE 产

品名称LIKE ‘冰箱’ C. SELECT * FROM CP WHERE 产品名称LIKE ‘%冰箱%’ D. SELECT * FROM CP WHERE 产品名称=‘冰箱’ 满分:5 分 7. 储蓄所有多个储户,储户能够在多个储蓄所存取款,储蓄所与储户之间是(D )。 A. 一对一的联系 B. 一对多的联系 C. 多对一的联系 D. 多对多的联系 满分:5 分 8. SQL的聚集函数COUNT、SUM、AVG、MAX、MIN不允许出现在查询语句的(D)子句之中。 A. SELECT B. HAVING C. GROUP BY… HAVING D. WHERE 满分:5 分

sql查询题目及答案

数据库中有如下三个表: 学生表(学号id,姓名name,性别sex,系部depart,年龄age)8个学生记录 选课表(学号id,课程号cid,成绩grade) 12门课程 课程表(课程号cid,课程名cname,学分Ccredit) 6门课程 学生-课程模式 S-T : 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade) 1.从学生表中查询所有同学的所有信息 select*from学生表 2.从学生表中查询所有学生的信息,并分别赋予一个别名 select学号as xuehao,姓名as xingming,性别as xingbie,系部as xibu,年龄as nianling from学生表 3.从学生表中查询姓名是Allen的学生的信息 select*from学生表 where姓名='Allen' 4.从学生表中查询 学号在1101到1199之间的所有学生的信息 select*from学生表 where学号between 1101 and 1199 5.从学生表中查询年龄小于18和大于20的所有学生的学号和姓名 select学号,姓名from学生表 where年龄<18 or年龄>20 6.从学生表中查询计算机系年龄小于20的所有学生的信息 select*from学生表 where系部='computer'and年龄<20 7.从学生表中查询姓名以A开头的学生的信息 select*from学生表 where姓名LIKE'A%'

查询和视图练习题

查询和视图练习题一 一、单项选择题 1.使用菜单操作方法打开一个在当前目录下已经存在的查询文件zgjk.qpr 后,在命令窗口生成的命令是()。 A)Open Query zgjk.qpr B)Modify Query zgjk.qpr C)Do Query zgjk.qpr D)Create Query zgjk.qpr 2.以下关于“查询”的描述正确的是()。 A)查询保存在项目文件中B)查询保存在数据库文件中 C)查询保存在表文件中D)查询保存在查询文件中 3.如果要在屏幕上直接看到查询结果,“查询去向”应该选择。 A)屏幕 B)浏览C)临时表或屏幕 D)浏览或屏幕 4.在Visual FoxPro 中建立查询时,可以从表中提取符合指定条件的一组记录,()。A)但不能修改记录 B)同时又能更新数据 C)但不能设定输出字段 D)同时可以修改数据,但不能将修改的内容写回原数据表 5.关于查询,正确的叙述是()。 A)不能使用自由表建立查询B)不能使用数据库表建立查询 C)只能使用数据库表建立查询D)可以使用数据库表和自由表建立查询 6.运行D:\JSGL\CX_JS.QPR 查询文件的命令是()。 A)Do Form Cx_Js B)Do Cx_Js.Qpr C)Do Cx_Js D)Do .Qpr 7.关于查询向导的叙述,正确的是()。 A)查询向导只能为一个表建立查询 B)查询向导只能为多个表建立查询 C)查询向导可以为一个或多个表建立查询 D)上述说法都不对 8.下面不正确的描述是()。 A)查询是以.qpr 为扩展名的文件 B)查询实际上是一个定义好的SQL Select 语句,可以在不同场合直接使用 C)查询去向设置为“表”用以保存对查询的设置 D)可以使用自由表和数据库表建立查询 9.关于“查询设计器”,正确的描述是()。 A)“联接”选项卡与SQL 语句的Group By 短语对应 B)“筛选”选项卡与SQL 语句的Having 短语对应 C)“排序依据”选项卡与SQL 语句的Order By 短语对应 D)“分组依据”选项卡与SQL 语句的Join On 短语对应10.在Visual FoxPro 中,关于视图的正确叙述是()。 A)视图与数据库表相同,用来存储数据 B)视图不能同数据库表进行连接操作 C)在视图上不能进行更新操作 D)视图是从一个或多个数据库表导出的虚拟表 11.关于视图的运行,错误的叙述是()。 A)在“项目管理器”中选择要运行的视图,单击“运行”按钮 B)在“视图设计器”修改视图时,选择“查询”菜单的“运行查询”命令 C)在“视图设计器”修改视图时,单击工具栏中的“!”按钮 D)在“项目管理器”中选择要运行的视图,单击“浏览”按钮 12.视图是根据数据库表派生出来的“表”,当关闭数据库后,视图()。 A)仍然包含数据B)不再包含数据 C)用户可以决定是否包含数据D)依赖于是否是数据库表 13.以下关于视图叙述不正确的是()。 A)视图依赖于数据库不能独立存在 B)可以使用“浏览”窗口显示或修改视图中的数据 C)可以用Use 命令打开视图 D)可以使用Modify Structure 命令修改视图的结构 14.下列选项中,视图不能完成的是()。 A)指定可更新的表 B)指定可更新的字段C)删除和视图相关的表 D)设置参数15.在Visual FoxPro 中以下叙述正确的是()。 A)利用视图可以修改数据B)利用查询可以修改数据 C)查询和视图具有相同的作用D)视图可以定义输出去向 16.“查询设计器”和“视图设计器”的主要不同表现在于()。 A)查询设计器有“更新条件”选项卡,没有“查询去向”选项 B)查询设计器没有“更新条件”选项卡,有“查询去向”选项 C)视图设计器没有“更新条件”选项卡,有“查询去向”选项 D)视图设计器有“更新条件”选项卡,也有“查询去向”选项 17.如果要使视图显示两张表中满足条件的记录,应选择的联接类型是()。A)内部联接 B)左联接 C)右联接 D)完全联接 18.有关多表查询结果中,说法正确的是()。 A)只可包含其中一个表的字段 B)必须包含查询表的所有字段 C)可包含查询表的所有字段,也可包含查询表的部分字段 D)以上说法均不正确 二、填空题 1.“查询设计器”的“筛选”选项卡用来指定查询的。

sql查询练习题含答案

--(1)查询20号部门的所有员工信息。 select * from emp e where e.deptno=20; --(2)查询奖金(COMM)高于工资(SAL)的员工信息。 select * from emp where comm>sal; --(3)查询奖金高于工资的20%的员工信息。 select * from emp where comm>sal*0.2; --(4)查询10号部门中工种为MANAGER和20号部门中工种为CLERK的员工的信息。select * from emp e where (e.deptno=10 and e.job='MANAGER') or (e.deptno=20 and e.job='CLERK') --(5)查询所有工种不是MANAGER和CLERK, --且工资大于或等于2000的员工的详细信息。 select * from emp where job not in('MANAGER','CLERK') and sal>=2000; --(6)查询有奖金的员工的不同工种。 select * from emp where comm is not null; --(7)查询所有员工工资和奖金的和。 select (e.sal+nvl(https://www.wendangku.net/doc/e416280457.html,m,0)) from emp e; --(8)查询没有奖金或奖金低于100的员工信息。 select * from emp where comm is null or comm<100; --(9)查询员工工龄大于或等于10年的员工信息。 select * from emp where (sysdate-hiredate)/365>=10; --(10)查询员工信息,要求以首字母大写的方式显示所有员工的姓名。 select initcap(ename) from emp; select upper(substr(ename,1,1))||lower(substr(ename,2)) from emp; --(11)显示所有员工的姓名、入职的年份和月份,按入职日期所在的月份排序, --若月份相同则按入职的年份排序。 select ename,to_char(hiredate,'yyyy') year,to_char(hiredate,'MM') month from emp order by month,year; --(12)查询在2月份入职的所有员工信息。 select * from emp where to_char(hiredate,'MM')='02' --(13)查询所有员工入职以来的工作期限,用“**年**月**日”的形式表示。 select e.ename,floor((sysdate-e.hiredate)/365)||'年' ||floor(mod((sysdate-e.hiredate),365)/30)||'月' ||floor(mod(mod((sysdate-e.hiredate),365),30))||'日' from emp e; --(14)查询从事同一种工作但不属于同一部门的员工信息。

查询与视图(4)

单选题:(1.0分) 视图是一组存储在数据库中的特殊的表,当它被打开时,对于本地视图而言,系统将同时在其他工作区所基于的基表打开,这是因为视图包含一条_ __语句 A. SELECT—SQL B. USE C. LOCATE D. SET FILTER TO 解答:A 答题正确 参考答案:A 2. 单选题:(1.0分) 有关查询与视图,下列说法中不正确的是 A. 查询是只读型数据,而视图可以更新数据源 B. 查询可以更新数据源,视图也有此功能 C. 视图具有许多数据库表的属性,利用视图可以创建查询和视图 D. 视图可以更新源表中的数据,存储于数据库中 解答:B 答题正确 参考答案:B 3. 单选题:(1.0分) 不可以作为查询与视图的数据源的是 A. 自由表 B. 数据库表 C. 查询 D. 视图 解答:C 答题正确 参考答案:C 4. 单选题:(1.0分) 不可以作为查询和视图的输出类型 A. 自由表 B. 表单

C. 临时表 D. 数组 解答:D 答题错误 参考答案:B 5. 单选题:(1.0分) 视图与基表的关系是 A. 视图随基表的打开而打开 B. 基表随视图的关闭而关闭 C. 基表随视图的打开而打开 D. 视图随基表的关闭而关闭 解答:A 答题错误 参考答案:C 6. 单选题:(1.0分) 下列关于查询和视图的叙述中,正确的是查询和视图都 A. 保存在数据库中 B. 可以用USE命令打开 C. 可以更新基表 D. 可以作为列表框对象的数据源 解答:D 答题正确 参考答案:D 7. 单选题:(1.0分) “查询”文件的扩展名为 A. .prg B. .fpx C. .qpr D. .qpx 解答:C 答题正确 参考答案:C 8. 单选题:(1.0分)

查询和视图

实验查询和视图 【实验目的】 1.掌握使用SELECT语句查询数据 2.掌握在新建查询窗口中查询数据的方法 【实验内容】 实验表结构如下: 学生表:Student(Sno,Sname,Ssex,Sage,Sdept),其中Sno为主键 课程表:Course(Cno,Cname,Ccredit),其中Cno为主键 学生选课表:Sc(Sno,Cno,Grade),其中Sno ,Cno的组合为主键 要求: 首先创建数据库XSGL,在该数据库中创建以上三个表,在各表中输入一些记录,然后进行下面操作,写出相应命令序列。 1.查询全体学生的学号和姓名。 2.查询全体学生的姓名、学号、所在系。 3.查询全体学生的详细信息。 4.查询全体学生的姓名及其出生年份。 5.查询软件工程系全体学生的名单。 6.查询所有年龄在20岁以下的学生姓名及其年龄。 7.查询考试成绩不及格的学生名单。 8.查询年龄在20-23岁(包括20,23)之间的学生姓名、系别和年龄。 9.查询不在信息系、数学系也不在软件工程系的学生姓名和性别。 10.查询所有姓刘的学生姓名、学号和性别。 11.查询姓“欧阳”且全名为三个字的学生姓名。 12.查询姓名中第二个字为“阳”字的学生的姓名和学号。 13.查询所有不姓刘的学生的姓名、学号。 14.查询缺少成绩的学生的学号以及相应课程号。 15.查询软件工程系年龄在20岁以下的学生姓名。 16.查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。 17.查询全体学生情况,结果按所在系的升序排列,同一个系的按年龄降序排列。 18.统计学生总数。 19.查询选修了课程的学生人数。 20.计算选修了1号课程的学生平均成绩。 21.计算选修了1号课程的学生最高分。 22.求各课程号及其相应的选课人数。 23.查询选修了3门以上课程的学生学号。 24.查询每个学生及其选修课的情况. 25.查询选修2号课程且成绩在90分以上的所有学生。 26.查询每个学生的学号,姓名,选修的课程名和成绩。

SQL server 查询语句 练习题

SQL server 查询语句练习题 用SQL语句创建四个表: create database tongji go use tongji go create table student ( Sno varchar(20) not null primary key ,--学号 Sname varchar(20) not null,--学生姓名 Ssex varchar(20) not null, --学生性别 Sbirthday datetime,--学生出生年月 Class varchar(20)--学生所在班级 ) go create table teacher--老师 ( Tno varchar(20) not null primary key ,--教工编号(主码) Tname varchar(20) not null,--教工姓名 Tsex varchar(20) not null, --教工性别 Tbirthday datetime,--教工出生年月 Prof varchar(20),--职称 Depart varchar(20) not null--教工所在部门 ) go create table Course--课程 ( Cno varchar(20) not null primary key ,--课程号 Cname varchar(20) not null,--课程名称 Tno varchar(20) not null references teacher(Tno), --教工编号(外码)) go create table Score--分数 ( Sno varchar(20) not null references student(Sno), --学号(外码)Cno varchar(20) not null references Course(Cno), --课程号(外码)primary key(Sno,Cno), Degree Decimal(4,1),--成绩 ) 表中数据如下: 表(一)Student

sql考试题及答案

sql考试题及答案 【篇一:sql试题及答案】 题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共10小题,每小题2分,总计20分) 1. ()是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。 a.dbms b.db c.dbs d.dba 2. 下列四项中,不属于sql2005实用程序的是()。 a.对象资源管理器 b.查询分析器 c.服务管理器 d.媒体播放器 3. sql server安装程序创建4个系统数据库,下列哪个不是()系统数据库。 a. master b. model c. pub d. msdb 4. 下列哪个不是sql 数据库文件的后缀。 a..mdf b..ldf c..tif d..ndf 5. sql语言允许使用通配符进行字符串匹配的*作,其中?%?可以表示() a.零个字符 b.1个字符串 c. 多个字符串 d. 以上都是 6. sql语言中,条件年龄 between 15 and 35表示年龄在15至35之间,且( )。 a.包括15岁和35岁 b.不包括15岁和35岁 c.包括15岁但不包括35岁 d.包括35岁但不包括15岁 7. sql的视图是从()中导出的。 a. 基本表 b. 视图 c. 基本表或视图 d. 数据库 8. 在sql语言中,建立存储过程的命令是() a、create procedure b、create rule c、create dure d、create file 9. sql语言中,删除表中数据的命令是( )。 a. delete b. drop

数据库的查询和视图

实验四数据库的查询和视图 T4.1 数据库的查询 1.目的与要求 (1)掌握select语句的基本语法; (2)掌握子查询的表示 (3)掌握连接查询的表示 (4)掌握select语句的group by子句的作用和使用方法 (5)掌握select语句的order by子句的作用和使用方法 2 实验准备 (1)了解SELECT语句的基本语法格式; (2)了解SELECT语句的执行方法; (3)了解子查询的表示方法; (4)了解连接查询的表示; (5)了解SELECT语句的GROUPBY子句的作用和使用方法; (6)了解SELECT语句的ORDER BY子句的作用; 3实验内容 SELECT语句的基本使用。 ①对于实验2给出的数据库表结构,查询每个雇员的所有数据。 新建一个查询,在查询分析器中输入如下语句并执行: USEYGGL GO SELECT* FROMEmployees 【思考与练习】 用SELECT语句查询Departments和Salary表中所有的数据信息。

用SELECT语句查询Employees表中每个雇员的地址和电话。 【思考与练习】 a.用SELECT语句查询Deparments和Salary表的一列或若干列。 b.查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。 c.查询EmployeeID为000001的雇员的地址和电话。

【思考与练习】 a.查询月收入高于2000元的员工号码。 b.查询1970年以后出生的员工的姓名和住址。 c.查询所有财务部的员工的号码和姓名。 d.查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。 【思考与练习】使用SELECT语句进行简单的计算。 ⑦获得员工总数。

SQL SERVER练习题及答案学习资料

S Q L S E R V E R练习题 及答案

题目1: 问题描述: 为管理岗位业务培训信息,建立3个表: S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄 C (C#,CN ) C#,CN 分别代表课程编号、课程名称 SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩 1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名--实现代码: SELECT SN,SD FROM S WHERE [S#] IN( SELECT [S#] FROM C,SC WHERE C.[C#]=SC.[C#] AND CN=N\'税收基础\') 2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位 --实现代码: SELECT S.SN,S.SD FROM S,SC WHERE S.[S#]=SC.[S#] AND SC.[C#]=\'C2\' 3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位--实现代码: SELECT SN,SD FROM S WHERE [S#] NOT IN( SELECT [S#] FROM SC WHERE [C#]=\'C5\') 4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位 --实现代码: SELECT SN,SD FROM S

WHERE [S#] IN( SELECT [S#] FROM SC RIGHT JOIN C ON SC.[C#]=C.[C#] GROUP BY [S#] HAVING COUNT(*)=COUNT([S#])) 5. 查询选修了课程的学员人数 --实现代码: SELECT 学员人数=COUNT(DISTINCT [S#]) FROM SC 6. 查询选修课程超过5门的学员学号和所属单位 --实现代码: SELECT SN,SD FROM S WHERE [S#] IN( SELECT [S#] FROM SC GROUP BY [S#] HAVING COUNT(DISTINCT [C#])>5) 题目2 问题描述: 本题用到下面三个关系表: CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS 班级 BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 BORROW 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期 备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。 要求实现如下15个处理: 1.写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。

实验三数据库的查询和视图

实验三数据库的查询和视图 T4.1 数据库的查询 1、目的和要求 (1)掌握SELECT语句的基本语法。 (2)掌握子查询的表示。 (3)掌握连接查询的表示。 (4)掌握SELECT语句的GROUP BY子句的作用和使用方法。(5)掌握SELECT语句的ORDER BY子句的作用和使用方法。 2、实验准备 (1)了解SELECT语句的基本语法格式。 (2)了解SELECT语句的执行方法。 (3)了解子查询的表示方法。 (4)了解连接查询的表示。 (5)了解SELECT语句的GROUP BY子句的作用和使用方法。(6)了解 SELECT语句的ORDER BY子句的作用。

3、实验内容 (1)SELECT语句的基本使用。 ①对于实验二给出的数据库表结构,查询每个雇员的所有数据。 新建一个查询,在“查询分析器”窗口中输入如下语句并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 【思考与练习】 用SELECT语句查询Departments表和Salary表中所有信息。 新建一个查询,在“查询分析器”窗口中输入如下语句并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 在“消息”中会发现总共有60行受影响。 ② 用SECECT语句查询Employees表中每个雇员的地址和电话号码。 新建一个查询,在“查询分析器”窗口中输入如下代码并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 在“消息”中会发现有12行记录受影响 【思考与练习】 A、用SELECT语句查询Departments表和Salary表的一列或若干行。

利用SELECT语句查询Departments表和Salary表中 EmployeeID为000001的记录,在“查询分析器”中输入以下代码。 执行后在下方会出现所有EmployeeID=000001的记录 B、查询Employees表中部门号和性别,要求使用DISTINCT消除重复行。 对表只选择某些行时,可能会出现重复行。此时就需要使用DISTINCT关键字消除结果中的重复行。此时使用DISTINCT消除在Employees中查询到的部门号和性别的重复行,具体代码如下。 上面代码分别是使用了DISTINCT和没有使用DISTINCT关键字,下面就是两种的结果的对比。 可以从上面的执行结果中看出使用了DISTINCT关键字,结果集中的重复行就被消除了。 ③查询EmployeeID为000001的雇员的地址和电话。 鼠标右键单击在弹出的菜单窗口中选择“执行”,结果中只会出现一行记录,EmployeeID为000001的雇员的地址和电话。 【思考与练习】 A、查询月收入高于2000元的员工号码。 只需要查询员工号码,条件为月收入高于2000元员工,那么至于要Salary表就行。用T-SQL命令在表Salary表中查询月收入高于2000元的员工代码如下。

实验3 数据库的查询和视图

实验3 数据库的查询和视图 实验目的 (1)掌握SELECT语句的基本语法 (2)掌握子查询的表示 (3)掌握连接查询的表示 (4)掌握数据汇总的方法 (5)掌握SELECT语句的GROUP BY子句的作用和使用方法 (6)掌握SELECT语句的ORDER BY子句的作用和使用方法 (7)掌握视图的使用方法 实验准备 (1)了解SELECT语句的基本语法格式和执行方法 (2)了解子查询的表示方法,连接查询和数据汇总的方法 (3)了解SELECT语句的GROUP BY子句的作用和使用方法 (4)了解SELECT语句的ORDER BY子句的作用 (5)了解视图的作用和创建视图的方法 (6)了解视图的使用方法 实验内容 一.SELECT语句的基本使用 1.对于实验2给出的数据库表结构,查询每个雇员的所有数据。在SQL*PLUS 窗口中输入下面语句并执行: Select * from employees 思考与练习:用SELECT语句查询Departments和Salary中的所有记录 2.查询每个雇员的地址和电话。在SQL*PLUS窗口中输入下面语句并执行:Select address,phonenumber from employees; 思考与练习:用SELECT语句查询Departments和Salary表的一列或若干列3.查询employeeID为000001的雇员的地址和电话。在SQL*PLUS窗口中输入如下语句并执行: Select address, phonenumber from employees where employeeID=’000001’ 思考与练习:用SELECT语句查询Departments和Salary表中满足条件的一列或若干列 4.查询employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址,电话。在SQL*PLUS窗口中输入下面语句并执行:Select address as 地址, phonenumber as 电话号码from employees where sex=0; 注意:使用AS子句可指定目标列的标题。 5.计算每个雇员的实际收入。在SQL*PLUS窗口中输入下面语句并执行:Select employeeid,income-outcome as 实际收入from salary 6.找出所有姓王的雇员的部门号。在SQL*PLUS窗口中输入下面语句并执行: Select departmentID from employees where name like ‘王%’

查询与视图 内容

第二章查询与视图 一.复习提问,引入新课: 复习数据表中数据的查找、替换、排序和筛选等操作,引入创建查询和视图的方法和操作。 二.新课教学: 1、查询概述 查询则是对表中的数据进行检索、统计、分析、查看和更改的又一个非常重要的数据库对象.简单来说,表是将数据进行了分割,而查询则是从多个表中查找到满足条件的记录组成一个动态数据表,并以数据表视图的方式显示查询的类型: ●选择查询 ●参数查询 ●交叉表查询 ●操作查询 ● SQL 查询 2、创建选择查询 修改上个查询,使其满足要求:检索高考总分750分以上(含750)

的学生记录,并要求按“性别”升序、“高考总分”降序对查询结果的记录进行排序(即先按“性别”字段值升序排序,当“性别”字段值相同时再按“高考总分”字段值降序排序),并要求显示学号、姓名、班级名称、性别和高考总分五个字段。 交叉表查询 使用交叉表查询可以计算并重新组织数据的结构对“学生”表创建的交叉表查询,计算各班级的男、女学生的人数。 参数查询 参数查询是这样一种查询,它在运行时显示“输入参数值”的对话框,提示用户输入信息,用户可在该对话框中输入不同的条件参数值,即可检索到满足条件的记录内容。 操作查询 操作查询是仅在一个操作中就可以追加、更改或删除许多记录的查询操作查询。 有如下四种类型: 生成表查询 追加查询 更新查询 删除查询

SQL查询 3、创建视图运行和修改 选择查询的功能是从一个或多个表中检索数据,并且在“数据表视图”中显示结果。查询结果仅仅是一个临时的动态数据表。 向导 设计视图 *举例:在“学生管理系统”数据库中,使用“设计视图”创建一个名为“例4-6查询高考总分750分以上的女生”的查询。 三.课堂提问: 1、使用查询的意义? 2、查询主要包含几种方法? 3、SQL是什么? 四.课堂小结: 1、创建查询的各种类型; 2、视图的运行方式方法; 3、多表之间查询的设计过程和运行调试方法。 五.布置作业:

sql语句练习50题

sql语句练习50题 Student(Sid,Sname,Sage,Ssex) 学生表 Course(Cid,Cname,Tid) 课程表 SC(Sid,Cid,score) 成绩表 Teacher(Tid,Tname) 教师表 练习内容: 1.查询“某1”课程比“某2”课程成绩高的所有学生的学号; SELECT a.sid FROM (SELECT sid,score FROM SC WHERE cid=1) a,(SELECT sid,score FROM SC WHERE cid=3) b WHERE a.score>b.score AND a.sid=b.sid; 此题知识点,嵌套查询和给查出来的表起别名 2.查询平均成绩大于60分的同学的学号和平均成绩; SELECT sid,avg(score) FROM sc GROUP BY sid having avg(score) >60; 此题知识点,GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。group by后面不能接where,having代替了where 3.查询所有同学的学号、姓名、选课数、总成绩 SELECT Student.sid,Student.Sname,count(SC.cid),sum(score)FROM Student left Outer JOIN SC on Student.sid=SC.cid GROUP BY Student.sid,Sname 4.查询姓“李”的老师的个数; select count(teacher.tid)from teacher where teacher.tname like'李%' 5.查询没学过“叶平”老师课的同学的学号、姓名; SELECT Student.sid,Student.Sname FROM Student WHERE sid not in (SELECT distinct( SC.sid) FROM SC,Course,Teacher WHERE SC.cid=Course.cid AND Teacher.id=Course.tid AND Teacher.Tname='叶平'); 此题知识点,distinct是去重的作用 6.查询学过“```”并且也学过编号“```”课程的同学的学号、姓名; select a.SID,a.SNAME from (select student.SNAME,student.SID from student,course,sc where cname='c++'and sc.sid=student.sid and sc.cid=course.cid) a, (select student.SNAME,student.SID from student,course,sc where cname='english'and sc.sid=student.sid and sc.cid=course.cid) b where a.sid=b.sid; 标准答案(但是好像不好使)SELECT Student.S#,Student.Sname FROM Student,SC WHERE Student.S#=SC.S# AND SC.C#='001'and exists( SELECT * FROM SC as SC_2 WHERE SC_2.S#=SC.S# AND SC_2.C#='002'); 此题知识点,exists是在集合里找数据,as就是起别名 7.查询学过“叶平”老师所教的所有课的同学的学号、姓名; select a.sid,a.sname from (select student.sid,student.sname from student,teacher,course,sc where teacher.TNAME='杨巍巍' and teacher.tid=course.tid and course.cid=sc.cid and student.sid=sc.sid) a 标准答案:SELECT sid,Sname FROM Student WHERE sid in (SELECT sid FROM SC ,Course ,Teacher WHERE SC.cid=Course.cid AND Teacher.tid=Course.tid AND Teacher.Tname='杨巍巍' GROUP BY sid having count(SC.cid)=(SELECT count(cid) FROM Course,Teacher WHERE Teacher.tid=Course.tid AND Tname='杨巍巍')) 8.查询课程编号“”的成绩比课程编号“”课程低的所有同学的学号、姓名;

相关文档