文档库 最新最全的文档下载
当前位置:文档库 › 数据库例题

数据库例题

数据库例题
数据库例题

SQL 练习题答案

一、补充作业一、

设有三个关系:

S(SNO, SNAME, AGE, SEX,Sdept)

SC(SNO, CNO, GRADE)

C(CNO, CNAME, TEACHER)

试用关系代数表达式表示下列查询:

1、查询学号为S3学生所学课程的课程名与任课教师名。

)(('3',C SC S SNO TEACH ER CNAME =σπ

2、查询至少选修LIU 老师所教课程中一门课的女生姓名。

))((''''C SC S LIU TEACH ER SEX snam e =∧=女σπ

3、查询WANG 同学不学的课程的课程号。

))(()(''SC S SC WANG SNAME CNO CNO =-σππ

4、查询至少选修两门课程的学生学号。

)((52412,1SC SC S ?<>∧=σπ

5、查询选修课程中包含LIU 老师所教全部课程的学生学号。

))(()('',C SC LIU TEACH ER CNO CNO SNO =÷σππ

补充作业二、

三个关系同上,试用SQL 语言表示下列查询:

1、 查询门门课程都及格的学生的学号

方法1:

提示:根据学号分组,就得到每个学生所有的课程成绩,在某个学生这一组成绩里,如果他所有的课程成绩都大于60分则输出该组学生的学号

Select sno frome sc group by sno having(min(grade)>=60)

2、查询既有课程大于90分又有课程不及格的学生的学号

自身连接:

Select sno from sc where grade >90 and sno in (select sno from sc where grade<60)

3、查询平均分不及格的课程号和平均成绩

Select cno , avg(GRADE) from sc group by cno having avg(grade)<60

查询平均分及格的课程号和课程名

Select https://www.wendangku.net/doc/8f4452604.html,o , Cname from SC,C where https://www.wendangku.net/doc/8f4452604.html,o=https://www.wendangku.net/doc/8f4452604.html,o group by https://www.wendangku.net/doc/8f4452604.html,o having avg(grade)>=60

4、找出至少选修了2号学生选修过的全部课程的学生号

提示:不存在这样的课程y,学生2选修了y,而学生x没有选。

SELECT DISTINCT Sno

FROM SC as SCX

WHERE NOT EXISTS

(SELECT *

FROM SC as SCY

WHERE SCY.Sno =‘2’AND NOT EXISTS

(SELECT *

FROM SC SCZ

WHERE SCZ.Sno=SCX.Sno AND https://www.wendangku.net/doc/8f4452604.html,o=https://www.wendangku.net/doc/8f4452604.html,o))

5、求各门课程去掉一个最高分和最低分后的平均分

第一步,求所有成绩的平均分(去掉一个最高分和最低分)

select avg(GRADE) from SC

where GRADE not in (select top 1 GRADE from SC

order by GRADE)

and GRADE not in (select top 1 GRADE from SC

order by GRADE desc)

第二步,将所有成绩按各门课程的课程号CNO分组

SELECT CNO avg(GRADE) from SC

where GRADE not in (select top 1 GRADE from SC

order by GRADE)

and GRADE not in (select top 1 GRADE from SC

order by GRADE desc) group by CNO

1、查询7号课程没有考试成绩的学生学号。

Select sno from sc where cno='7' and grade is null

2、查询7号课程成绩在90分以上或60分以下的学生学号。

Select sno from sc where cno='7' and grade not between 60 and 90

3、查询课程名以“数据”两个字开头的所有课程的课程号和课程名。

Select cno,cname from c where cname like '数据%'

4、查询每个学生所有课程的平均成绩,输出学生学号和平均成绩。

Select sno,avg(grade) from sc group by sno

5、查询每门课程的选修人数,输出课程号和选修人数。

Select cno,count(*) from sc group by cno

6、查询选修7号课程的学生的学号、姓名、性别。

Select s.sno,sname,ssex from s,sc where s.sno=sc.sno and cno='7'

或: Select sno,sname,ssex from s where sno in

( Select sno from sc where cno='7' )

7、查询选修7号课程的学生的平均年龄。

Select avg(sage) from s,sc where s.sno=sc.sno and cno='7'

或: Select avg(sage) from s where sno in

( Select sno from sc where cno='7' )

8、查询有30名以上学生选修的课程号。

Select cno from sc group by cno having count(*)>30

9、查询至今没有考试不及格的学生学号。

Select distinct sno from sc where sno not in

( Select sno from sc where grade<60 )

或: Select sno from sc group by sno having min(grade)>=60

10、查询所有考试成绩的平均分相同的学生学号分组

二、

1、找出选修课程号为C2的学生学号与成绩。

Select sno,grade from sc where cno='C2'

2、找出选修课程号为C4的学生学号与姓名。

Select s.sno,sname from s,sc where s.sno=sc.sno and cno='C4' 注意本题也可以用嵌套做

思考本题改为“找出选修课程号为C4的学生学号、姓名与成绩”后还能用嵌套做吗?

3、找出选修课程名为 Maths 的学生学号与姓名。

Select s.sno,sname from s,sc,c

where s.sno=sc.sno and https://www.wendangku.net/doc/8f4452604.html,o=https://www.wendangku.net/doc/8f4452604.html,o and cname='Maths'

注意本题也可以用嵌套做

4、找出选修课程号为C2或C4的学生学号。

Select distinct sno from sc where cno in ('C2','C4')

或: Select distinct sno from sc where cno='C2' or cno='C4'

5、找出选修课程号为C2和C4的学生学号。

Select sno from sc where cno='C2' and sno in

( Select sno from sc where cno='C4' )

注意本题也可以用连接做

思考:Select distinct sno from sc where cno='C2' and cno='C4'正确吗?

6、找出不学C2课程的学生姓名和年龄。

Select sname,sage from s where sno not in

( Select sno from sc where cno='C2' )

或: Select sname,sage from s where not exists

( Select * from sc where sno=s.sno and cno='C2' )

7、找出选修了数据库课程的所有学生姓名。(同3)

Select sname from s,sc,c

where s.sno=sc.sno and https://www.wendangku.net/doc/8f4452604.html,o=https://www.wendangku.net/doc/8f4452604.html,o and cname='数据库'

8、找出数据库课程不及格的女生姓名。

连接:Select sname from s,sc,c

where s.sno=sc.sno and https://www.wendangku.net/doc/8f4452604.html,o=https://www.wendangku.net/doc/8f4452604.html,o and cname='数据库'

and grade<60 and ssex='女'

嵌套:Select sname from s where ssex='女' and sno in

( Select sno from sc where grade<60 and cno in

( Select cno from c where cname='数据库' )

)

9、找出各门课程的平均成绩,输出课程名和平均成绩。

Select cname,avg(grade) from sc,c

where https://www.wendangku.net/doc/8f4452604.html,o=https://www.wendangku.net/doc/8f4452604.html,o group by https://www.wendangku.net/doc/8f4452604.html,o,cname

思考本题也可以用嵌套做吗?

10、找出各个学生的平均成绩,输出学生姓名和平均成绩。

Select sname,avg(grade) from s,sc

where s.sno=sc.sno group by s.sno,sname

思考本题也可以用嵌套做吗?

11、找出至少有30个学生选修的课程名。

Select cname from c where cno in

( Select cno from sc group by cno having count(*)>=30 ) 注意本题也可以用连接做

12、找出选修了不少于3门课程的学生姓名。

Select sname from s where sno in

( Select sno from sc group by sno having count(*)>=3 ) 注意本题也可以用连接做

13、找出各门课程的成绩均不低于90分的学生姓名。

Select sname from s,sc where s.sno=sc.sno

group by s.sno,sname having min(grade)>=90

方法二:

Select sname from s where sno not in

( Select sno from sc where grade<90 )

只要有一门不小于90分就会输出该学生学号

14、找出数据库课程成绩不低于该门课程平均分的学生姓名。

Select sname from s,sc,c

where s.sno=sc.sno and https://www.wendangku.net/doc/8f4452604.html,o=https://www.wendangku.net/doc/8f4452604.html,o and cname='数据库' and grade> ( Select avg(grade) from sc,c

where https://www.wendangku.net/doc/8f4452604.html,o=https://www.wendangku.net/doc/8f4452604.html,o and cname='数据库'

)

15、找出各个系科男女学生的平均年龄和人数。

Select sdept,ssex,avg(sage),count(*) from s group by sdept,ssex 16、找出计算机系(JSJ)课程平均分最高的学生学号和姓名。

Select s.sno,sname from s,sc where s.sno=sc.sno and sdept='JSJ' group by s.sno,sname

having avg(grade) >=ALL

( Select avg(grade) from s,sc

where s.sno=sc.sno and sdept='JSJ'

group by s.sno

)

17、(补充)查询每门课程的及格率。

本题可以分三步做:

第1步:得到每门课的选修人数

create view v_all(cno,cnt)

as select cno, count(*) from sc group by cno

第2步:得到每门课及格人数

create view v_pass(cno,cnt_pass)

as select cno, count(*) from sc where grade>=60 group by cno 第3步:每门课的及格人数/每门课选修人数

select v_https://www.wendangku.net/doc/8f4452604.html,o, cnt_pass*100/cnt from v_all, v_pass

where v_https://www.wendangku.net/doc/8f4452604.html,o = v_https://www.wendangku.net/doc/8f4452604.html,o

18、查询平均分不及格的学生的学号,姓名,平均分。

Select sc.sno,sname,avg(grade) from student,sc

where student.sno=sc.sno

group by sc.sno,sname

having avg(grade)<60

思考本题也可以用嵌套做吗?

19、查询平均分不及格的学生人数。

Select count(*) from student

where sno in

( select sno from sc group by sno having avg(grade)<60 ) 下面是一个典型的错误

Select count(*) from sc group by sno having avg(grade)<60

这是每个学生有几门不及格的数目

三、

1、查询工资在1000到3000元之间的男性业务员的姓名和办公室编号。

Select Yname,Ono from YWY

where Salary between 1000 and 3000 and Ysex='男'

2、查询各个办公室的业务员人数,输出办公室编号和对应的人数。

Select Ono,count(*) from YWY group by Ono

3、查询每个客户在2002年5月购买的总金额,输出客户号和相应的总金额。

Select Kno,sum(Fmoney) from FP

where Fdate between '2002.5.1' and '2002.5.31'

group by Kno

4、查询2002年5月购买次数超过5次的所有客户号,且按客户号升序排序。

Select Kno from FP

where Fdate between '2002.5.1' and '2002.5.31'

group by Kno

having count(*)>5

order by Kno ASC

5、查询各办公室男性和女性业务员的平均工资。

Select Ono,Ysex,avg(Salary) from YWY group by Ono,Ysex

6、查询2002年5月曾经在王海亮业务员手中购买过商品的客户号、

客户姓名和联系电话。

Select Kno,Kname,Phone from KH where Kno in

( Select Kno from FP

where Fdate between '2002.5.1' and '2002.5.31' and Yno in

( Select Yno from YWY where Yname='王海亮' )

)

注意本题也可以用连接做

7、查询所有工资比1538号业务员高的业务员的编号、姓名和工资。

Select Yno,Yname,Salary from YWY where Salary >

( Select Salary from YWY where Yno='1538' )

8、查询所有与1538号业务员在同一个办公室的其他业务员的编号和姓名。

Select Yno,Yname from YWY where Yno!='1538' and Ono in

( Select Ono from YWY where Yno='1538' )

9、查询销售总金额最高的业务员的编号。

Select Yno from FP group by Yno having sum(Fmoney) >=ALL

( Select sum(Fmoney) from FP group by Yno )

10、查询所有业务员的编号、姓名、工资以及工资比他高的其他业务员的平均工资。

利用自连接

Select Y1.Yno,Y1.Yname,Y1.Salary,avg(Y2.Salary)

from YWY Y1, YWY Y2

where Y1.Salary < Y2.Salary

group by Y1.Yno

四、

1、找出每个班级的班级代码、学生人数、平均成绩。

Select BJDM,count(*),avg(CJ) from SC group by BJDM

2、找出每个学生的班级代码、学生姓名、考试科目数、总成绩。

Select BJDM,XSXM,count(*),sum(CJ) from SC

group by BJDM,BNXH,XSXM

3、输出一张表格,每位学生对应一条记录,包括字段:

班级代码、学生姓名、语文成绩、数学成绩、外语成绩。

Select SC1.BJDM,SC1.XSXM,SC1.CJ,SC2.CJ,SC3.CJ

from SC SC1, SC SC2, SC SC3

where SC1.BJDM=SC2.BJDM and SC1.BNXH=SC2.BNXH and

SC2.BJDM=SC3.BJDM and SC2.BNXH=SC3.BNXH and

SC1.KM='语文' and SC2.KM='数学' and SC3.KM='外语'

4、输出一张表格,有成绩低于60分的每位学生对应一条记录,包括字段:

班级代码、学生姓名、最低成绩。

Select BJDM,XSXM,min(CJ) from SC

where CJ<60 group by BJDM,BNXH,XSXM

或: Select BJDM,XSXM,min(CJ) from SC

group by BJDM,BNXH,XSXM

having min(CJ)<60

5、输出一张表格,有成绩低于60分的每位学生对应一条记录,包括字段:

班级代码、学生姓名、最高成绩、平均成绩。

Select BJDM,XSXM,max(CJ) from SC

group by BJDM,BNXH,XSXM

having min(CJ)<60

请思考下列做法是否正确:

Select BJDM,XSXM,max(CJ),avg(CJ) from SC

where CJ<60 group by BJDM,BNXH,XSXM

6、输出一张表格,所有成绩都不低于60分的每位学生对应一条记录,包括字段:

班级代码、学生姓名、平均成绩。

Select BJDM,XSXM,avg(CJ) from SC

group by BJDM,BNXH,XSXM

having min(CJ)>=60

7、输出一张表格,每一位学生对应一条记录,包括字段:

班级代码、学生姓名、去掉一个最低分后的平均成绩。

Select BJDM,XSXM,(sum(CJ)-min(CJ))/(count(*)-1) from SC

group by BJDM,BNXH,XSXM

8、输出一张表格,每门科目对应一条记录,包括字段:

科目、去掉一个最低分后的平均成绩。

Select KM,(sum(CJ)-min(CJ))/(count(*)-1) from SC

group by KM

实验指导中“八 SQL查询语句” 的答案

1、查询年龄在19至21岁之间的女生的学号,姓名,年龄,按年龄从大到小排列。 Select sno,sname,sage from student

where sage between 19 and 21 and ssex='女'

order by sage desc

2、查询姓名中有“明”字的学生人数。

Select count(*) from student

where sname like "%明%"

3、查询1001课程没有成绩的学生的学号。

Select sno from sc where cno='1001' and grade is null

4、查询JSJ、SX、WL系的学生学号,姓名,结果按系及学号排列。

Select sno,sname,sdept from student

where sdept in ( 'JSJ', 'SX', 'WL' )

order by sdept,sno

5、计算每一门课的总分、平均分,最高分、最低分。

Select cno,sum(grade),avg(grade),max(grade),min(grade)

from sc

group by cno

6、查询平均分大于90分的男学生学号及平均分。

连接:

select sc.sno,avg(grade) from student,sc

where student.sno=sc.sno and ssex=’男’

group by sc.sno

having avg(grade)>90

嵌套:

select sno,avg(grade) from sc

where sno in ( select sno from student where ssex='男' )

group by sno

having avg(grade)>90

7、查询选修课程超过2门的学生姓名。

select sname from student,sc

where student.sno=sc.sno

group by sc.sno,sname

having count(*)>2

本题也可以用嵌套做

8、查询 JSJ 系的学生选修的课程号。

Select distinct cno from student,sc

where student.sno=sc.sno and sdept='JSJ'

本题也可以用嵌套做

9、查询选修1002课程的学生的学生姓名(用连接和嵌套2种方法)

连接:Select sname from student,sc

where student.sno=sc.sno and cno='1002'

嵌套:Select sname from student where sno in

( select sno from sc where cno='1002' )

10、查询学生姓名以及他选修课程的课程号及成绩。

Select sname,cno,grade from student,sc

where student.sno=sc.sno

思考本题也可以用嵌套做吗?

11、查询选修“数据库原理”课且成绩 80 以上的学生姓名(用连接和嵌套2种方法)

连接:Select sname from student,sc,course

where student.sno=sc.sno and https://www.wendangku.net/doc/8f4452604.html,o=https://www.wendangku.net/doc/8f4452604.html,o and

cname='数据库原理' and grade>80

嵌套:Select sname from student where sno in

( select sno from sc where grade>80 and cno in

( select cno from course where cname='数据库原理' ) )

14、查询没有选修1002课程的学生的学生姓名。

Select sname from student

where sno not in ( select sno from sc where cno='1002') 或: select sname from student

where not exists

( select * from sc where cno='1002' and sno=student.sno) 思考本题也可以用一般的连接做吗?

15、查询平均分最高的学生学号及平均分。

Select sno,avg(grade)

from sc

group by sno

having avg(grade) >=ALL ( Select avg(grade)

from sc

group by sno

)

16、查询每门课程成绩都高于该门课程平均分的学生学号。

可以先计算每门课程平均分

create view c_avg(cno,avg_grade)

as select cno,avg(grade) from sc group by cno

再查询

Select distinct sno from sc

where sno not in ( Select sno from sc,c_avg

where https://www.wendangku.net/doc/8f4452604.html,o=c_https://www.wendangku.net/doc/8f4452604.html,o and grade

)

===========================================

SELECT DISTINCT Sno

FROM SC SC1

WHERE SC1.Sno NOT IN

( SELECT SC2.Sno

FROM SC SC2

WHERE SC2.Grade <=

( SELECT AVG(SC3.Grade)

FROM SC SC3

WHERE https://www.wendangku.net/doc/8f4452604.html,o=https://www.wendangku.net/doc/8f4452604.html,o

)

)

或:

SELECT DISTINCT Sno

FROM SC SC1

WHERE NOT EXISTS

( SELECT *

FROM SC SC2

WHERE SC2.Sno=SC1.Sno AND SC2.Grade <=

( SELECT AVG(SC3.Grade)

FROM SC SC3

WHERE https://www.wendangku.net/doc/8f4452604.html,o=https://www.wendangku.net/doc/8f4452604.html,o) )

(3)检索至少选修LIU老师所授课程中一门课程的女学生姓名。

SELECT SNAME

FROM S

WHERE SEX=…F? AND S# IN

(SELECT S#

FROM SC

WHERE C# IN

(SELECT C#

FROM C

WHERE TEACHER=…LIU?)

NOTICE:有多种写法,比如联接查询写法:

SELECT SNAME

FROM S,SC,C

WHERE SEX=…F? AND SC.S#=S.S#

AND SC.C#=C.C#

AND TEACHER='LIU'

但上一种写法更好一些。

(4)检索WANG同学不学的课程的课程号。

SELECT C#

FROM C

WHERE C# NOT IN

(SELECT C#

FROM SC

WHERE S# IN

(SELECT S#

FROM S

WHERE SNAME='WANG'))

(5)检索至少选修两门课程的学生学号。

SELECT DISTINCT X.SNO

FROM SC X,SC Y

WHERE X.SNO=Y.SNO AND https://www.wendangku.net/doc/8f4452604.html,O<>https://www.wendangku.net/doc/8f4452604.html,O

Notice:对表SC进行自连接,X,Y是SC的两个别名。

(6)检索全部学生都选修的课程的课程号与课程名。

SELECT C#,CNAME

FROM C

WHERE NOT EXISTS

(SELECT *

FROM S

WHERE S# NOT IN

(SELECT *

FROM SC

WHERE SC.C#=C.C#))

要从语义上分解:(1)选择课程的课程号与课程名,不存在不选这门课的同学。其中,“不选这门课的同学”可以表示为:

SELECT *

FROM S

WHERE S# NOT IN

(SELECT *

FROM SC

WHERE SC.C#=C. C#) 或

SELECT *

FROM S

WHERE NOT

EXISTS

(SELECT *

FROM SC

WHERE

S.S#=C.S# AND

SC.C#=C.C# )

(7)检索选修课程包含LIU老师所授课的学生学号。

SELECT DISTINCT S#

FROM SC

WHERE C# IN

(SELECT C#

FROM C

WHERE TEACHER='LIU'))

3.3设有两个基本表R(A,B,C)和S(D,E,F),试用SQL查询语句表达下列关系代数表达式:

(1)πA(R)(2)σB='17'(R) (3)R×S(4))πA,F(σC=D(R×S))

(1)SELECT A FROM R

(2)SELECT * FROM R WHERE B='17'

(3)SELECT A,B,C,D,E,F FROM R,S

(4)SELECT A,F FROM R,S WHERE R.C=S.D

3.4 3.4设有两个基本表R(A,B,C)和S(A,B,C)试用SQL查询语句表达下列关系代数表达式:

(1)R∪S(2)R∩S(3)R-S(4)πA,B(R)πB,C(S)

(1)SELECT A,B,C

FROM R

UNION

SELECT A,B,C

FROM S

(2)SELECT A,B,C

FROM R

INTERSECT

SELECT A,B,C

FROM S

(3)SELECT A,B,C

FROM R

WHERE NOT EXISTS

(SELECT A,B,C

FROM S

WHERE R.A=S.A AND R.B=S.B AND R.C=S.C)

(4)SELECT R.A,R.B,S.C

FROM R,S

WHERE R.B=S.B

3.5试叙述SQL语言的关系代数特点和元组演算特点。

(P61-62)

3.6试用SQL查询语句表达下列对教学数据库中三个基本表S、SC、C的查询:(1)统计有学生选修的课程门数。

SELECT COUNT(DISTINCT C#) FROM SC

(2)求选修C4课程的学生的平均年龄。

SELECT AVG(AGE)

FROM S

WHERE S# IN

(SELECT S#

FROM SC

WHERE C#='C4')

或者,

SELECT AVG(AGE)

FROM S,SC

WHERE S.S#=SC.S# AND C#='004'

(3)求LIU老师所授课程的每门课程的学生平均成绩。

SELECT CNAME,AVG(GRADE)

FROM SC ,C

WHERE SC.C#=C.C# AND TEACHER='LIU'

GROUP BY C#

(4)统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。

SELECT DISTINCT C#,COUNT(S#)

FROM SC

GROUP BY C#

HAVING COUNT(S#)>10

ORDER BY 2 DESC, C# ASC

(5)检索学号比WANG同学大,而年龄比他小的学生姓名。

SELECT X.SNAME

FROM S AS X, S AS Y

WHERE Y.SNAME='WANG' AND X.S#>Y.S# AND X.AGE

(6)检索姓名以WANG打头的所有学生的姓名和年龄。

SELECT SNAME,AGE

FROM S

WHERE SNAME LIKE 'WANG%'

(7)在SC中检索成绩为空值的学生学号和课程号。

SELECT S#,C#

FROM SC

WHERE GRADE IS NULL

(8)求年龄大于女同学平均年龄的男学生姓名和年龄。

SELECT SNAME,AGE

FROM S AS X

WHERE X.SEX='男' AND X.AGE>(SELECT AVG(AGE) FROM S AS Y WHERE Y.SEX='女')

(9)求年龄大于所有女同学年龄的男学生姓名和年龄。

SELECT SNAME,AGE

FROM S AS X

WHERE X.SEX='男' AND X.AGE>ALL (SELECT AGE FROM S AS Y WHERE Y.SEX='女')

除法运算

3.7试用SQL更新语句表达对教学数据库中三个基本表S、SC、C的各个更新

操作:

1)往基本表S中插入一个学生元组(…S9?,…WU?,18)。

INSERT INTO S(S#,SNAME,AGE)

VALUES('59','WU',18)

(2)在基本表S中检索每一门课程成绩都大于等于80分的学生学号、姓名

和性别,并把检索到的值送往另一个已存在的基本表STUDENT(S#,

SANME,SEX)。

INSERT INTO STUDENT(S#,SNAME,SEX)

SELECT S#,SNAME,SEX

FROM S WHERE NOT EXISTS

(SELECT * FROM SC WHERE

GRADE<80 AND S.S#=SC.S#) (3)在基本表SC中删除尚无成绩的选课元组。

DELETE FROM SC

WHERE GRADE IS NULL

(4)把WANG同学的学习选课和成绩全部删去。

DELETE FROM SC

WHERE S# IN

(SELECT S#

FROM S

WHERE SNAME='WANG')

(5)把选修MATHS课不及格的成绩全改为空值。

UPDATE SC

SET GRADE=NULL

WHERE GRADE<60 AND C# IN

(SELECT C#

FROM C

WHERE CNAME='MATHS')

(6)把低于总平均成绩的女同学成绩提高5%。

UPDATE SC

SET GRADE=GRADE*1.05

WHERE GRADE<(SELECT AVG(GRADE)

FROM SC) AND S# IN (SELECT S# FROM S

WHERE SEX='F')

(7)在基本表SC中修改C4课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。

UPDATE SC

SET GRADE=GRADE*1.05

WHERE C#='C4' AND GRADE<=75

UPDATE SC

SET GRADE=GRADE*1.04

WHERE C#='C4' AND GRADE>75

3.8在第1章例1.4中提到“仓库管理”关系模型有五个关系模式:

零件PART(P#,PNAME,COLOR,WEIGHT)

项目PROJECT(J#,JNAME,DATE)

供应商SUPPLIER(S#,SNAME,SADDR)

供应P_P(J#,P#,TOTOAL)

采购P_S(P#,S#,QUANTITY)

(1)试用SQL DDL语句定义上述五个基本表,并说明主键和外键。

CREATE TABLE PART

(P# CHAR(4) NOT NULL,PNAME CHAR(12) NOT NULL,

COLOR CHAR(10),WEIGHT REAL,

PRIMARY KEY(P#))

CREATE TABLE PROJECT

(J# CHAR(4) NOT NULL,JNAME CHAR(12) NOT NULL,

DATE DATE,

PRIMARY KEY(J#))

CREATE TABLE SUPLIER

(S# CHAR(4) NOT NULL,SNAME CHAR(12),SADDR VARCHAR(20),

PRIMARY KEY(S#))

CREATE TABLE P_P

(J# CHAR(4),P# CHAR(4),TOTAL INTEGER,

PRIMARY KEY(J#,P#),

FOREIGN KEY(J#) REFERENCE PROJECT(J#),

FOREIGN KEY(P#) REFERENCE PART(P#))

CREATE TABLE P_S

(P# CHAR(4),S# CHAR(4),QUANTITY INTEGER,

PRIMARY KEY(P#,S#),

FOREIGN KEY(P#) REFERENCE PART(P#),

FOREIGN KEY(S#) REFERENCE SUPLIER(S#))

(2)试将PROGECT、P_P、PART三个基本表的自然联接定义为一个视图VIEW1,PART、P_S、SUPPLIER 三个基本表的自然联接定义为一个视图VIEW2。

CREATE VIEW

VIEW1(J#,JNAME,DATE,P#,PNAME,COLOR,WEIGHT,TOTAL)

AS SELECT

PROJECT.J#,JNAME,DATE,PART.P#,PNAME,COLOR,WEIGHT,TOTAL

FROM PROJECT,PART,P_P

WHERE PART.P#=P_P.P# AND P_P.J#=PROJECT.J#

CREATE VIEW

VIEW2(P#,PNAME,COLOR,WEIGHT,S#,SNAME,SADDR,QUANTITY)

AS SELECT

PART.P#,PNAME,COLOR,WEIGHT,SUPPLIER.S#,SNAME,SADDR,QUAN TITY

FROM PART,P_S,SUPPLIER

WHERE PART.P#=P_S.P# AND

P_S.S#=SUPPLIER.S#

(3)试在上述两个视图的基础上进行数据查询:

1)检索上海的供应商所供应的零件的编号和名字。

SELECT P#,PNAME FROM VIEW2 WHERE SADDR='SHANGHAI'

2)检索项目J4所用零件的供应商编号和名字。

SELECT S#,SNAME FROM VIEW2 WHERE P# IN(SELECT P# FROM VIEW1 WHERE J#='J4')

3.9对于教学数据库中基本表SC,已建立下列视图:

CREATE VIEW S_GRADE(S#,C_NUM,AVG_GRADE)

AS SELECT S#,COUNT(C#),AVG(GRADE)

FROM SC

GROUP BY S#

试判断下列查询和更新是否允许执行。若允许,写出转换到基本表SC上的相应操作。

(1)SELECT*

FROM S_GRADE

允许

SELECT S#,COUNT(C#),AVG(GRADE) FROM SC GROUP BY S#

(2)SELECT S#,C_NUM

FROM S_GRADE

WHERE AVG_GRADE>80

允许

SELECT S#,COUNT(C#) FROM SC WHERE AVG(GRADE)>80

(3)SELECT S#,AVG_GRADE

FROM S_GRADE

WHERE C_NUM>(SELECT C_NUM

FROM S_GRADE

WHERE S#=…S4?)

允许

SELECT S#,AVG(GRADE)

FROM SC AS X

WHERE COUNT(X.C#)>(SELECT COUNT(Y.C#) FROM SC AS Y WHERE Y.S#='S4')

GROUP BY S#

(4)UPDATE S_GRADE

SET C_NUM=C_NUM+1

WHERE S#= (4)

不允许

(5)DELETE FROM S_GRADE

WHERE C_NUM>4

不允许

3.10预处理方式对于嵌入式SQL的实现有什么重要意义?

预处理方式是先用预处理程序对源程序进行扫描,识别出SQL语句,并处理成宿主语言的函数调用形式;然后再用宿主语言的编译程序把源程序编译成目标程序。这样,不用扩充宿主语言的编译程序,就能处理SQL语句。

3.11 在宿主语言的程序中使用SQL语句有哪些规定?

在宿主语言的程序中使用SLQ语句有以下规定:

(1)在程序中要区分SQL语句与宿主语言语句

(2)允许嵌入的SQL语句引用宿主语言的程序变量(称为共享变量),但有两条规定:

1)引用时,这些变量前必须加“:”作为前缀标识,以示与数据库中变量有区别。

2)这些变量由宿主语言的程序定义,并用SQL的DECLARE语句说明。(3)SQL的集合处理方式与宿主语言单记录处理方式之间要协调。需要采用游标机制,把集合操作转换成单记录处理方式。

3.12SQL的集合处理方式与宿主语言单记录处理方式之间如何协调?

由于SQL语句处理的是记录集合,而宿主语言语句一次只能处理一个记录,因此需要用游标(cousor)机制,把集合操作转换成单记录处理方式。

2.13 嵌入式SQL语句何时不必涉及到游标?何时必须涉及到游标?

(1)INSERT、DELETE、UPDATE语句,查询结果肯定是单元组时的SELECT

语句,都可直接嵌入在主程序中使用,不必涉及到游标。

(2)当SELECT语句查询结果是多个元组时,此时宿主语言程序无法使用,一

定要用游标机制把多个元组一次一个地传送给宿主语言处理。

(电商)数据库原理及应用_模拟考核试题及参考答案

一、单选(每空1分,共10分)

1.在Access数据库中,数据保存在()对象中。

A.窗体B.查询C.报表D.表

2.如果某一字段数据型为文本型,字段大小为8,该字段中最多可输入()个汉字。

A.8 B.4 C.16 D.32 3.文本型字段最多可以存放()个字符。

A.250 B.252 C.254 D.255

4.Access用户操作界面由()部分组成。

A.4 B.5 C.3 D.6

5.下列()图标是Access中表对象的标志。

A.B.C.D.

6.在设计Access数据表时,“索引”属性有()取值。

A.1 B.2 C.3 D.4 7.Access中包含有()种数据类型。

A.9 B.10C.7 D.8 8.在一个宏中要打开一个报表,应该使用的操作是()。

A.OpenForm B.OpenReport C.OpenTable D.OpenQuery 9.可以通过Internet进行数据发布的对象是()。

A.窗体B.报表C.查询D.数据访问页10.模块窗口由()个部分组成。

A.2 B.3 C.4 D.5

二、填空(每空1分,共20分)

1.在人工管理和文件管理阶段,程序设计__依赖于___数据表示。

2.在文件系统中,存取数据的基本单位为___记录____,在数据库系统中,存取数据的基本单位为___数据项_____。

3.若实体A和B是多对多的联系,实体B和C是1对1的联系,则实体A和C是___多_____对___多_____的联系。

4.在一个关系中不允许出现重复的____元组____,也不允许出现具有相同名字的___属性_____。

5.数据库系统中的四类用户分别为____数据库管理员、数据库设计员、应用程序员、终端用户_____。

6.在存取数据库的数据的过程中,使用了两个数据缓冲区,分别为___系统_____缓冲区和____用户____缓冲区。

7.学生关系中的班级号属性与班级关系中的班级号主码属性相对应,则____班级号____为学生关系中的___外码___。

8.设一个关系A具有a1个属性和a2个元组,关系B具有b1个属性和b2个元组,则关系A?B具有___ a1+b1____个属性和____ a2?b2 ____个元组。

9.设一个学生关系为S(学生号,姓名),课程关系为C(课程号,课程名),选课关系为X(学生号,课程号,成绩),求出所有选课的学生信息的运算表达式为_____∏学生号(X)______与____S ____的自然连接。

10.在一个关系R中,若存在X→Y和X→Z,则存在_____ X→(Y,Z)_______,称此为函数依赖的合并性规则。

三、填空(每空1分,共20分)

1.若一个关系的任何非主属性都不部分依赖依赖于任何候选码,则称该关系达到____第二____范式。

2.在SQL中,列级完整性约束分为__6__种情况,表级完整性约束分为__4__种情况。

3. 在SQL中,每个视图中的列可以来自不同的___表___,它是在原有表的基础上____建立____的逻辑意义上的新关系。

4. 在SQL的查询语句中,group by选项实现____分组统计______功能,order by选项实现对结果表的____排序_____功能。

5.对于较复杂的系统,概念设计阶段的主要任务是:首先根据系统的各个局部应用画出各自对应的____局部ER图______,然后再进行综合和整体设计,画出_____整体ER图_____。

6.机器实现阶段的目标是在计算机系统中得到一个满足______设计要求、功能完善、操作方便___的数据库应用系统。

7.Access的用户操作界面由标题栏、菜单栏、工作区、工具栏、状态栏等五个部分组成。

8.Access“表”结构设计窗口中上半部分的“表设计器”是由字段名称、数据类型、说明等三列组成。

9.Access中的窗体由页眉、主体和页脚等三个部分组成。

四、填空(每空1分,共20分)

1. 设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={A→B,A→C,(C,D)→E},则该关系的候选码为_____(A,D)___,候选码函数决定E是___伪传递___性。

2.设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={A→B,A→C,(A,D)→E},该关系只满足___第一_____范式,若要规范化为高一级的范式,则将得到____2____个关系。

3.在实际的数据库管理系统中,对数据库的操作方式有_____命令交互、程序执行、窗口界面______等三种。

4.在SQL中,主码约束的关键字为____ primary key________,外码约束的关键字为______foreign key ______。

5.基本表属于全局模式中的表,它是____实表____,而视图则属于局部模式中的表,它是____虚表____。

6. 在SQL新版的查询语句中,select选项实现投影运算,from选项实现____连接____运算,where选项实现____选择___运算。

7.数据字典是对系统工作流程中____数据____和____处理____的描述。

8.关系数据库系统中的全局模式由若干个基本表所组成,表与表之间的联系是通过定

数据库模拟试题2(含答案)

模拟试题2 一.单项选择题(本大题共15小题,每小题2分,共30分) 1.对现实世界进行第二层抽象的模型是[ ] A.概念数据模型B.用户数据模型 C.结构数据模型D.物理数据模型 2.数据库在磁盘上的基本组织形式是[ ] A.DB B.文件 C.二维表 D.系统目录 3.在关系模型中,起导航数据作用的是[ ] A.指针 B.关键码 C.DD D.索引 4.查询优化策略中,正确的策略是[ ] A.尽可能早地执行笛卡尔积操作B.尽可能早地执行并操作 C.尽可能早地执行差操作D.尽可能早地执行选择操作 5.SQL中,“DELETE FROM 表名”表示[ ] A.从基本表中删除所有元组B.从基本表中删除所有属性 C.从数据库中撤消这个基本表D.从基本表中删除重复元组 6.设关系模式R(A,B,C),F是R上成立的FD集,F={A→B,C→B},ρ={AB,AC}是R的一个分解,那么分解ρ[ ] A.保持函数依赖集F B.丢失了A→B C.丢失了C→B D.丢失了B→C 7.在关系模式R分解成数据库模式ρ时,谈论无损联接的先决条件是[ ] A.数据库模式ρ中的关系模式之间有公共属性B.保持FD集 C.关系模式R中不存在局部依赖和传递依赖D.存在泛关系8.在关系数据库设计中,子模式设计是在__________阶段进行。[ ] A.物理设计 B.逻辑设计 C.概念设计 D.程序设计 9.如果有9个不同的实体集,它们之间存在着12个不同的二元联系(二元联系是指两个实体集之间的联系),其中4个1:1联系,4个1:N联系,4个M:N 联系,那么根据ER模型转换成关系模型的规则,这个ER结构转换成的关系模式个数为[ ] A.9个 B.13个 C.17个 D.21个 10.在DB技术,未提交的随后被撤消了的数据,称为[ ] A.报废的数据 B.过时的数据 C.撤消的数据 D.脏数据11.SQL中的“断言”机制属于DBS的[ ] A.完整性措施 B.安全性措施 C.物理安全措施 D.恢复措施12. ORDB中,同类元素的无序集合,并且允许一个成员可多次出现,称为[ ] A.结构类型 B.集合类型 C.数组类型 D.多集类型 13.在OODB中,包含其他对象的对象,称为[ ] A.强对象 B.超对象 C.复合对象 D.持久对象 14.在DDBS中,数据传输量是衡量查询时间的一个主要指标,导致数据传输量大的主要原因是[ ] A.场地间距离过大B.数据库的数据量大 C.不同场地间的联接操作D.在CPU上处理通信的代价高

数据库实验3答案

实验三:交互式SQL语句的使用 1、实验目的 (1)掌握数据库对象的操作过程,包括创建、修改、删除 (2)熟悉表的各种操作,包括插入、修改、删除、查询 (3)熟练掌握常用SQL语句的基本语法 2、实验平台 使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。 3 实验容及要求 选择如下一个应用背景之一: ●学生选课系统 ●习题3、4、和5中使用的数据库 ●其它你熟悉的应用 (1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。 (2)要求认真进行实验,记录各实验用例及执行结果。 (3)深入了解各个操作的功能。 实验要求包括如下方面的容: 3.1 数据定义 1.基本表的创建、修改及删除 2.索引的创建 3.视图的创建 3.2 数据操作 完成各类更新操作包括: 1.插入数据

2.修改数据 3. 删除数据 3.3 数据查询操作 完成各类查询操作 1.单表查询 2.分组统计 3. 连接查询 4. 嵌套查询 5. 集合查询 3.4 数据操作 1.创建视图 2.视图查询 参考示例: 建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。 一、数据定义 创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表: 表1. Student表结构 表2. Course表结构

表3. SC表结构 1.创建、修改及删除基本表 (1)创建Student表 CREATE TABLE Student (Sno CHAR(8)PRIMARY KEY, Sname CHAR(8), Ssex CHAR(2)NOT NULL, Sage INT, Sdept CHAR(20) ); (2)创建Course表 CREATE TABLE Course (Cno CHAR(4)PRIMARY KEY, Cname CHAR(40)NOT NULL, Cpno CHAR(4), Ccredit SMALLINT, ); (3)创建SC表 CREATE TABLE SC (Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno), Cno CHAR(4), Grade SMALLINT, ); (4)创建员工表Employee

数据库习题与答案

一.选择题: 1、数据库分析与设计中,其设计对象称客观世界的( ) A、逻辑对象 B、目标对象 C、实体对象 D、需求对象 答案:B (150) 2、数据库物理设计完成后,进入数据库实施阶段,下列各项中不属于实施阶段的工作就是 ( ) A、建立库结构 B、扩充功能 C、加载数据 D、系统调试 答案:B (150) 3、通常用以下的顺序来完成数据库的设计工作( ) A、概念设计、物理设计、逻辑设计 B、逻辑设计、概念设计、物理设计 C、概念设计、逻辑设计、物理设计 D、物理设计、逻辑设计、概念设计 答案:C (150) 4、在数据库设计中,在概念设计阶段可用E-R方法,其设计出的图称为( ) A、实物示意图 B、实用概念图 C、实体表示图 D、实体联系图 答案:D (153) 5、 E-R图就是数据库设计的工具之一,它适用于建立数据库的( ) A、概念模型 B、逻辑模型 C、结构模型 D、物理模型 答案:A (155) 6、在关系数据库设计中,完成设计关系模式的任务就是属于( ) A、需求分析阶段 B、概念设计阶段 C、逻辑设计阶段 D、物理设计阶段 答案:C (157) 7、数据库逻辑设计的主要任务就是( ) A、建立E-R图与说明书 B、创建数据库说明 C、建立数据流图 D、把数据送入数据库 答案:B (158) 二.填空题 1、数据库概念设计就是在数据需求分析基础上进行的,其目的就是分析数据间的内在语义 关联,在此基础上建立一个数据的______________。 答案:抽象模型(152) 2、数据库的逻辑设计的基本方法就是将E-R图转换成指定RDBMS中的______________, 此外还包括关系的规范化以及性能调整,最后就是约束条件设置。 答案:关系模式(156) 3、数据库的逻辑设计的基本方法就是将E-R图转换成指定RDBMS中的关系模式,此外还 包括______________以及性能调整,最后就是约束条件设置。 答案:关系的规范化(156) 4、数据库的逻辑设计的基本方法就是将E-R图转换成指定RDBMS中的关系模式,此外还

数据库SQL查询例题及解答

1 实验目的 1.熟悉数据库的交互式SQL工具。 2.熟悉通过SQL对数据库进行操作。 3.完成作业的上机练习。 2 实验工具sql server 利用Sql server及其交互式查询工具-查询分析器来熟悉SQL。 3 实验内容和要求 1)实验内容: 创建数据库boat,包括Sailors,Boats,Reserves三个表,表结构如下: Sailors(sid: integer, sname: string, rating: integer, age: real) 船员(船员编号,姓名,级别,年龄) Boats(bid: integer, bname: string, color: string) 船(船编号,名称,颜色) Reserves(sid: integer, bid: integer, day: date) 租赁(船员编号,船编号,日期) (注:下划线表示主键),并插入一定数据。 2)完成下列要求:

(1)查询所有船员的信息 (2)查询所有姓王的船员的信息 (3)查询租用过103号船的船员姓名 (4)查找租用过船只的船员编号 (5)查找rating>7且年龄>25的水手编号 (6)查找租用过红船和绿船的水手名字 (7)查找租用过红船或绿船的水手编号 (8)查找最年长的水手的年龄和名字 (9)在18岁以上水手中,对于每个rating级别中最少有两个水手以上的组中最年轻水手的年龄 (10)查找每条红色船只被租用的次数 (11)把30岁以上船员的级别调高一级 (12)删除所有年龄超过40岁的船员信息 (13)建立年龄超过25岁的船员的视图 (14)对(13)建立的视图,举一操作的例子(查询、删除、修改均可) 2)要求: a.建立boat数据库的SQL脚本,插入所有数据项的SQL脚本(包括所有的测试数据)。 b.记录完成查询要求的SQL语句脚本。 c.记录完成查询的查询结果。

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

数据库期末考试试题 ━━━━━━━━━━━━━━━ 一、填空共30题(共计30分) ━━━━━━━━━━━━━━━ 第1题(分)题号:2385 ORDER BY 子句实现的是【1】. 答案: =======(答案1)======= 排序 第2题(分)题号:2374 如果列上有约束,要删除该列,应先删除【1】 答案: =======(答案1)======= 相应的约束 第3题(分)题号:2394 在每次访问视图时,视图都是从【1】中提取所包含的行和列. 答案: =======(答案1)======= 基表 第4题(分)题号:2372

1.在增加数据文件时,如果用户没有指明文件组,则系统将该数据文件增加到【1】文件组.答案: =======(答案1)======= 主 第5题(分)题号:2371 查看XSCJ数据库信息的存储过程命令是【1】 答案: =======(答案1)======= sp_helpdb 第6题(分)题号:2392 创建视图定义的T-SQL语句的系统存储过程是【1】. 答案: =======(答案1)======= sp_helptext 第7题(分)题号:2379 1.表的外键约束实现的是数据的【1】完整性. 答案: =======(答案1)======= 参照 第8题(分)题号:2390 要进行模糊匹配查询,需要使用【1】关键字来设置查询条件.

答案: =======(答案1)======= LIKE 第9题(分)题号:2380 定义标识列的关键字是【1】. 答案: =======(答案1)======= identity 第10题(分)题号:2383 在进行多表查询是,必须设置【1】条件. 答案: =======(答案1)======= 连接 第11题(分)题号:2363 联系两个表的关键字称为【1】 答案: =======(答案1)======= 外键 第12题(分)题号:2382 用【1】字句可以实现选择行的运算. 答案:

数据库练习题

一、选择题 1设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C 课程,P 教师, S 学生,G 成绩,T 时间,R 教室,根据语义有如下数据依赖集: D={C->P ,( S,C )->G , ( T , R)->C , (T , P)-> R,( T,S )->R} 关系模式W的一个关键字是( ) A (S ,C ) B ( T, R) C) (T ,P ) D) (T ,S ) 2 设有关系模式W(C,P,S,G,T,R),其中中各属性的 含义是:C课程,P教师,S学生。G成绩,T时间,R教室,根据主义有如下依据赖集:K={C→P,(S,C)→G,(T,R )→C,(T,P)→R,(T,S)→R} 关系模式W的规范化程序最高达到() A 1NF B 2NF C 3NF D BCNF 3规范化理论中分解()主要消除其中多余的数据相关性。A关系运算 B 内模式 C外模式 D 视图 4现有职工关系W(工号,姓名,工程,定额),其中每一个工号(职工可能有同名), 每个职工有一个工程,每个工程有一个定额,则关系W已达到() A 1NF B2NF C3NF D4NF 5现有职工关系W(工号,姓名,工程,定额),其中每一

个职工有一个工号(职工可能有同名),每个职工有一个工程,每个工程有一个定额,则关系W已达到() A1NF B2NF C3NF D4NF 6规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:其每一属性都是() A、互不相关的 B、不可分解的 C、长度可变的 D、互相关联的 7、在一个关系R中,若每个数据项都是不可再分割的,那 么关系R 一定属于() A、1NF B、2NF C、3NF D、BCNF 8、根所关系数据库规范化理论,关系数据库的关系要满足 1NF,下面“部门”关系中,因()属性而使它不满足1NF。 A、部门号 B、部门名 C、部门成员 D、 部门总经理 9、设有关系模式R(S,D,M)。其函数依赖集F={S->D, D->M},则关系R的规范化程序至多达到() A、1NF B、2NF C、3NF D、BCNF 10、下列关于函数依赖的叙述中,()是不正确的 A、由X->Y,X->Z,有X->YZ B\由XY->Z,有 X->Z,Y->Z C、由X->Y,WY->Z,有xw->z D、由X->Y,Y->Z,有

数据库SQL实验题目

实验一数据定义操作 实验目的 1.掌握数据库和表的基础知识 2.掌握使用创建数据库和表的方法 3.掌握数据库和表的修改、查看、删除等基本操作方法 实验内容和要求 一、数据库的创建 在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示: Grademanager数据库参数表 参数参数值参数参数值 存储的数据文件路 径 D:\db\ 存储的日志文件路径D:\db\ 数据文件初始大小5MB 日志文件初始大小2MB 数据文件最大值20MB 日志文件最大值15MB 数据文件增长量原来10% 日志文件增长量2MB 二、表的创建、查看、修改和删除 1.表的创建 在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:(1)Student表的表结构 字段名称数据类型长度精度小数位数是否允许 Null值 说明 Sno Char 10 0 0 否学号,主码 Sname Varchar 8 0 0 是姓名 Ssex Char 2 0 0 是性别,取值:男或女 Sbirthday Date 8 0 0 是出生日期 Sdept Char 16 0 0 是系名 Speciality Varchar 20 0 0 是专业名 特别注意: 为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进行设置。

图1 设置性别的约束 (2)Course表(课程名称表)的表结构 字段名称数据类型长度精度小数位数是否允许Null值说明 Cno Char 5 0 0 否课程号,主码Cname Varchar 20 0 0 否课程名 (3)SC表(成绩表)的表结构 字段名称数据类 型 长 度 精 度 小数位 数 是否允许Null值说明 Sno Char 10 0 0 否学号,外码 Cno Char 5 0 0 否课程号,外码 Degree Decimal 5 5 1 是成绩,0~100之间 特别注意: ①为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100 ②为SC表设置外键Sno和Cno的方法: 右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。按照相同的方法,将属性Sno也设置为外键。

数据库试题及答案_

笔试样卷一 参考答案 一、简答题(25分) 1.数据库阶段数据管理的主要特点是什么? 2.解释DB、DBMS、DBS三个概念? 3.什么是物理数据独立性和逻辑数据独立性? 4.试说明DBMS的主要功能? 5.在ER模型转换为关系模型时,联系类型要根据不同的情况作不同的处理,试说明之。 二、计算题(20分) 1.设有关系R和S R: S: A B C A B C 3 6 7 3 4 5 2 5 7 7 2 3 7 3 4 4 4 3 列表计算R∪S、R-S、R×S、π 3,2(S)、δ B<5 (R)。(5分) 2.设有三个关系 S (SNO, SNAME, AGE, SEX, SDEPT) SC (SNO, CNO, GRANDE) C (CNO, CNAME, CDEPT, TNAME) 试用关系代数表达式表示下列查询

(1)检索LIU老师所授课程的课程号、课程名 (2)检索年龄大于23岁的男学生的学号和姓名 (3)检索学号为S3的学生所学课程的课程名和认课教师姓名 (4)检索WANG同学不学的课程的课程号 (5)检索至少选修了两门课程的学生的学号(10分) 三、设有三个基本表(45分) S (SNO, SNAME, AGE, SEX, SDEPT) SC (SNO, CNO, GRANDE) C (CNO, CNAME, CDEPT, TNAME) 1.试用T-SQL的查询语句表达下列查询 (1)检索LIU老师所授课程的课程号、课程名 (2)检索年龄大于23岁的男学生的学号和姓名 (3)检索学号为S3的学生所学课程的课程名和认课教师姓名 (4)检索WANG同学不学的课程的课程号 (5)检索至少选修了两门课程的学生的学号(10分) 2.试用T-SQL的查询语句表达下列查询 (1)统计有学生选修的课程的门数 (2)求选修C4课程的学生的年龄 (3)求LIU老师所授课程的每门课程的学生的平均成绩 (4)统计每门课程的学生选修人数 (5)求年龄大于所有女同学年龄的男学生的姓名和年龄(10分)3.试用T-SQL更新语句完成下列更新操作 (1)往表S中插入一个学生资料(‘S9’, ‘WU’, 18)

数据库实验题目和答案

按照如下方式重新定义四张表: 定义新的books表,其所拥有的属性与属性类型与原有的books表一致 以列级完整性的方式定义属性bookId为主码,同时在定义的时候必须提供约束名 定义属性category为”非空” ,同时在定义的时候必须提供约束名 create table Books( bookId number(9,0) constraint BooksKey primary key, title varchar(80), author varchar(40), year integer, category varchar(15) constraint B1 not null ); commit; 定义新的customers表,其所拥有的属性与属性类型与原有的customers表一致 以表级完整性的方式定义属性cid为主码 以列级完整性的方式定义属性cname为”唯一”,同时在定义的时候必须提供约束名 create table Customers ( cid number(9,0), cname char(40) constraint C1 unique, age integer, primary key(cid) ); commit; 定义新的purchases表,其所拥有的属性与属性类型与原有的purchases表一致 定义属性cid与bookId为主码,同时在定义的时候必须提供约束名 以列级完整性的方式定义属性bookId为外码,它参照Books表的主码,同时在定义的时候必须提供约束名。当删除Books表中的某一本书时,级联删 除与它相关的购买记录 以表级完整性的方式定义属性cid为外码,它参照customers表,同时在定义的时候必须提供约束名。当删除customers表中的某个顾客时,如果存在 与该客户相关的购买记录,拒绝删除。 create table Purchases( cid number(9,0), bookId number(9,0)

数据库习题及答案(五套)

《数据库》课程模拟试题(一) 一、填空题(30分) 1.数据的独立性包括和。 2.数据的物理独立性是指当数据的改变时,通过系统内部的自动映象功能或转换功能,保持了数据的不变。 3.数据模型由三部分组成:、、 4.一个学生可以同时借阅多本图书,一本图书只能由一个学生借阅,学生和图书之间为 的联系。 5.一个关系模型由若干个组成。 6.在选择运算所得到的结果关系中,所含的元组数不原关系中的元组数。 7.SQL语言具有对数据的等四个方面的功能。 8.设X→Y是关系模式R的一个函数依赖,并且Y是X的子集,则称X→Y是。9.在一个关系模式中,若一个属性或属性组K完全函数决定整个元组,则称K为该关系的一 个。 10.如果一个关系R中的所有非主属性都不传递依赖于任何候选关键字,则称关系R属 于,记作。 11.一个关系模式为Y(X1,X2,X3,X4),假定该关系存在如下函数依赖:X1←→X2,X1→X3,X1→ X4,则该关系属于。 12.假定一个E-R图包含有A实体和B实体,并且从A到B存在着1∶n的联系,则转换成关系模型后,包含有个关系模式。 13.实现系统案例,防止非法破坏数据,所采用的数据保护措施有:用户标识和鉴 定、、、、 14.恢复的实现技术有:和。 15.____ __________是一个逻辑上统一、地域上分布的数据集合。 16.关系中能唯一标识元组,且又不含多余属性称为_______________。 17.在概念结构设计中先,定义全局概念结构的框架,然后逐步细化。这种方法称为_ 18.分布式数据库系统中透明性层次越高,应用程序的编写越。 二、单项选择题(20分) 1、____________是长期存储在计算机内的有组织,可共享的数据集合。 A.数据库管理系统 B.数据库系统C.数据库 D.文件组织 2、数据库系统阶段,数据_______________。 A.具有物理独立性,没有逻辑独立性B.具有物理独立性和逻辑独立性 C.独立性差D.具有高度的物理独立性和一定程度的逻辑独立性 3、一个m:n联系转换为一个关系模式。关系的码为________。 A.某个实体的码B.各实体码的组合C.n端实体的码 D.任意一个实体的码 4、SQL语言中授权的操作是通过________________语句实现的。

数据库题库数据库L-

1.每个数据库有且只有一个()。 A.次要数据文件 B.主要数据文件 C.日志文件 D.索引文件 ↑答案:B 2.当前数据库运行在open状态,LISTENER 也正常运行,此刻一个dba 执行如下命令 LSNRCTL> STOP 下面的描述中那个是正确的? A.会话只能执行查询操作 B.连接的会话不允许做任何操作直到监听启动 C.当前连接的会话不受影响,操作继续 D.会话断掉,并且当前的事物回滚 ↑答案:C

-g act命令是用于显示___ 信息 B.所有线程信息 C.当前活动线程 ↑答案:C 集群中参数DRAUTO设置为2,若此时关闭HDR主机,则___ 备用数据库将转换为主用模式,原HDR主用恢复成备用模式 B.由连接管理器中的FOC切换规则来切换 备用数据库将保持为备用模式,在主用恢复后自动恢复HDR连接 备用数据库将转换为标准模式,在主用恢复后自动转换为备用恢复HDR连接↑答案:A

5.下列关于Oracle支持的锁粒度描述正确的是? A.数据库级、表级、行级、列级 B.数据库级、表级、行级 C.行级、列级 D.列级、表级 ↑答案:A 6.当执行一个存储过程时,服务器到哪里查询该存储过程( )

↑答案:D 7. 作为一个ORACLE DBA,你运行以下的SQL命令查询ASM实例,查询结果的含义是什么? SQL> select group_number, name, state from v$ASM_DISKGROUP; GROUP_NUMBER NAME STATE 0 DGROUP1 DISMOUNTED 2 DGROUP2 MOUNTED 3 DGROUP3 MOUNTED 磁盘组被其他的DBA卸载了 )将在磁盘组中丢失 B.一个多余的磁盘(DGROUP1 状态 C.一个数据文件丢失,原因是DGROUP1磁盘组正在进入DISMOUNTED D.这个查询在ASM实例中没有意义 ↑答案:A 存储中分配给服务器的一个连续的磁盘空间的单位是___

数据库实验五题目答案

实验五 实验5.1 数据查询 1)要求 以School数据库为例,在该数据库中存在四表格,分别为: ●表STUDENTS(sid, sname, email, grade); ●表TEACHERS(tid, tname, email, salary); ●表COURSES(cid, cname, hour); ●表CHOICES(no, sid, tid, cid, score) 在数据库中,存在这样的关系:学生可以选择课程,一个课程对应一个教师。在表CHOICES中保存学生的选课记录。 按以下要求对数据库进行查询操作: (1)查询年级为2001的所有学生的名称并按编号升序排列。 程序:Select sname from students where grade='2001' order by sid asc; (2)查询学生的选课成绩合格的课程成绩。 程序:Select score from choices where score>'59';

(3)查询课时是48或60的课程的名称。 程序:select cname from courses where hour='48'or hour='60'; (4)查询所有课程名称中含有data的课程编号。 程序:select cid from courses where cname like'%data%';

(5)查询所有选课记录的课程号(不重复显示)。 程序:select distinct cid from choices; (6)统计所有教师的平均工资。 程序:select avg(salary) from teachers;

(完整版)专升本数据库练习题及答案

一.关系代数运算 1.选择σ (1)查询年龄小于20岁的学生 σsage<20(student) (2)查询学号为201215122的学生 σsno=201215122(student) 2.投影 (1)查询学生姓名,和所在系 same,sdept(student) (2)查询选修了2号课程的学生学号 sno(σcno=‘2’2(student)) SQL语句 学生-课程数据库 学生表:学生(学号,姓名,性别,年龄,所在系)课程表:课程(课程号,课程名,先行课,学分)学生选课表:选课(学号,课程号,成绩) 二.创建数据库SQL 1.创建数据库 Create database 数据库名 On ( name =逻辑文件名, Filename=’物理文件名’, Size=初始文件大小, Maxsize=最大文件大小, Filegrowth=文件自动增量) Log on ( name =逻辑文件名, Filename=‘物理文件名’, Size=初始文件大小, Maxsize=最大文件大小, Filegrowth=文件自动增量) 例创建‘教务管理数据库’ Create database 教务管理数据库 On ( name =教务管理_dat, Filename=‘E:\SQL\教务管理_dat.mdf’,

Size=2, Filegrowth=1 ) Log on ( name =教务管理.log, Filename=‘E:\SQL\教务管理_log.ldf’, Size=5M, Filegrowth=10% ) 1.查看数据库属性 1)使用sp_helpdb查看数据库信息: sp_helpdb [数据库名] (2)使用sp_databases 查看可使用的数据库信息: sp_databases(显示所有可以使用的数据库名称和大小) (3)使用sp_helpfile查看数据库文件信息 sp_helpfile [文件名] 1.设置数据库选项 Alter database 数据库名 Set 选项 例设置教务管理数据库自动收缩 Alter database 教务管理数据库 Set auto_shrink on (自动收缩) 1.修改数据库大小 Alter database 数据库名 Add file 增加数据文件 Add log file 增加日志文件 Remove file 删除文件 Modify file 修改文件() 例 1.修改教务管理数据库,增加数据文件jwgl_dat1 Alter database 教务管理数据库 Add file ( Name=jwgl_dat1, Filename=‘E:\SQL\jwgl_dat1.ndf’, Size=2MB, Filegrowth=1MB ) 2.修改教务管理数据库 Alter database 教务管理数据库 Modify file (

整理数据库题库_数据库练习题一

数据库 JUNE 2021题库 整理人尼克 知识改变命运

数据库练习题一 一、单项选择 1.下面关于数据库设计方法的说法中错误的有() A. 数据库设计的一种方法是以信息需求为主,兼顾处理需求,这种方法称为面向数据的设计方法 B. 数据库设计的一种方法是以处理需求为主,兼顾信息需求,这种方法称为面向过程的设计方法 C. 面向数据的设计方法可以较好地反映数据的内在联系 D. 面身过程的设计方法不但可以满足当前应用的需要,还可以满足潜在应用的需求 2. 数据库技术中,独立于计算机系统的模型是() A. E/R模模型 B. 层次模型 C. 关系模型 D. 面向对象的模型 3.关于数据库设计步骤的说法中错误的有() A. 数据库设计一般分为4步:需求分析、概念设计、逻辑设计和物理设计 B. 数据库的概念模式是独立于任何数据库管理系统,不能直接用于数据库实现; C. 物理设计阶段对数据库性能影响已经很小了 D. 逻辑设计是在概念设计的基础上进行的。 4. 下面关于数据库概念设计数据模型的说法中错误的有() A. 可以方便地表示各种类型的数据及其相互关系和约束 B. 针对计算机专业人员 C. 组成模型定义严格,无多义性 D. 具有使用图形表昧概念模 5. 数据库的逻辑设计对数据的性能有一定的影响,下面的措施不能明显改善数据性能的有()。

A. 将数据库中的关系进行完全规范化; B. 将大的关系分成多个小的关系 C. 减少连接运算 D. 尽可能地使用快照 6. 一个学生可以同时借阅多本书,一本书只能由一个学生借阅,学生和图书之间为()联系。 A. 一对一 B. 一对多 C. 多对多 D. 多对一 7. 一个仓库可以存放多种零件,每一种零件可以存放在不同的仓库中,仓库和零件之间为()联系。 A. 一对一 B. 一对多 C. 多对多 D. 多对一 8. 一台机器可以加工多种零件,每一种零件可以在多台机器上加工,机器和零件之间为()联系。 A. 一对一 B. 一对多 C. 多对多 D. 多对一 9.一个公司只能有一个经理,一个经理只能在一个公司担任职务,公司和总经理职务之间为()联系。 A. 一对一 B. 一对多 C. 多对多 D. 多对一

数据库试验答案

计算机与信息学院 数据库实验报告 专业班级 学生姓名及学号 课程教学班号 任课教师 实验指导教师 实验地点 2012 ~2013 学年第二学期

实验1 使用向导创建和删除数据库 一、实验目的 1.熟悉SQL Server 中SQL Server Management Studio的环境 2.了解SQL Server 数据库的逻辑结构和物理结构 3.掌握使用向导创建和删除数据库的方法 二、实验要求 1.熟练使用SSMS进行数据库的创建和删除操作。 2.完成实验报告。 三、实验内容 设有一学籍管理系统,其数据库名为“EDUC”。 初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长; 日志文件初始为2MB,最大可增长到5MB,按1MB增长。 数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”。 日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。 四、实验步骤

1.使用SQL Server Management Studio(简称SSMS)创建数据库。 (1)启动SSMS 在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。如果身份验证选择的是“混合模式”,则要输入sa的密码。 (2)建立数据库 在“对象资源管理器”窗口,建立上述数据库EDUC。在数据库节点上右击选择新建。同时建立一个同样属性的数据库EDUC1。

数据库试题及答案

一、单项选择题(每题0.5分,共200题,合计100分) 1. SQL Server 2008是一个( C)的数据库系统。 (A)网状型(B)层次型(C)关系型(D)以上都不是 2.关于主键描述正确的是:( C ) (A)包含一列(B)包含两列 (C)包含一列或者多列(D)以上都不正确 3. SQL Server 2008 采用的身份验证模式有(D )。 (A)仅Windows身份验证模式 (B)仅SQL Server身份验证模式 (C)仅混合模式 (D)Windows身份验证模式和混合模式 4. SQL 语言按照用途可以分为三类,下面选项中哪一种不是的:(C ) (A)DML (B)DCL (C)DQL (D)DDL 5. 在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是(B ) (A) * (B)% (C)- (D)? 6. SQL Server提供的单行注释语句是使用(B )开始的一行内容。 (A)“/*” (B)“--” (C)“{” (D)“/” 7. 以下那种类型不能作为变量的数据类型(C )。 (A)text (B)ntext (C)table (D)image 8. 下面不属于数据定义功能的SQL语句是:(C ) A.CREATE TABLE B.CREATE CURSOR C.UPDATE D.ALTER TABLE 9. 如果希望完全安装SQL Server,则应选择( A)。 A. 典型安装 B. 最小安装 C. 自定义安装 D. 仅连接 10. 在SQL SERVER中局部变量前面的字符为:(D ) (A)* (B)# (C)@@ (D) @ 11. 假如有两个表的连接是这样的: table_1 INNER JOIN table_2 其中table_1和table_2是两个具有公共属性的表,这种连接会生成哪种结果集?(D )(A)包括table_1中的所有行,不包括table_2的不匹配行 (B)包括table_2中的所有行,不包括table_1的不匹配行 (C)包括和两个表的所有行 (D)只包括table_1和table_2满足条件的行 12. 对视图的描述错误的是:(D ) (A)是一张虚拟的表 (B)在存储视图时存储的是视图的定义 (C)在存储视图时存储的是视图中的数据 (D)可以像查询表一样来查询视图 13. 在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是(C )。(A)ALTER (B)UPDATE (C)UPDAET (D)ALLTER 14. SQL Server 2008提供了一整套管理工具和实用程序,其中负责启动、暂停和停止SQL Server的4种服务的是(D )。 (A)企业管理器(B)导入和导出数据(C)事件探察器(D)服务管理器15. 要查询book表中所有书名中以“计算机”开头的书籍的价格,可用(D )

《数据库及SQL Server》项目实训题

《数据库及SQL Server》项目实训题 一、学生成绩管理系统数据库 要求: 1、设计并创建数据库( ),保存与学生及成绩有关的信息,包括:学生基本信息,课程基本信息,学生成绩信息等,设置各表的完整性约束条件(如主键、外键等)。录入以上信息。 2、创建存储过程( ),根据输入学号统计并显示该生成绩信息,包括总分、平均分、不及格门数等。 3、创建存储过程( ),根据输入课程名称统计并显示该课程的考试信息,包括考试人数、最高分、最低分、平均成绩等。 4、创建函数( ),根据学号与课程名得出该生该门课的名次。 二、图书管理系统数据库 要求: 1、设计并创建数据库( ),保存与图书管理有关信息,包括:图书信息,读者信息,借阅信息等,设置各表的完整性约束条件(如主键、外键等)。录入以上信息。 2、创建存储过程( ),根据输入读者号查询统计该读者的借阅信息,包括总借本数、未还本数、未还书的图书信息与借阅日期等。 3、创建存储过程( ),根据输入书号查询该图书的借阅信息,包括借阅者信息与借还日期,并统计该书的借阅人次数、总借阅天数等。 4、创建触发器( ),当借书(添加借阅记录)时,查询该书就是否借出未还,如已借出则不能添加借阅记录,如未借出则正常添加。(提示:可创建替代触发器) 三、职工工资系统数据库 已知某公司工资计算方法为: 实发工资=级别工资+(本月加班天数-缺勤天数)/本月全勤天数×级别工资 如:张明的级别为部长,部长工资就是5000元,2014年11月全勤天数为20天,张明加班2天,缺勤1天,则张明2014年11月的工资就是:5000+(2-1)/20*5000=5250元 要求: 1、设计并创建数据库( ),用于保存与职工工资有关的信息,设置各表的完整性约束条件 (如主键、外键等)。录入职工基本信息、级别工资信息、每月的职工加班天数与缺勤天数。 2、创建视图( ),包括以下信息:年月、职工工号、姓名、级别、加班天数、缺勤天数、实 发工资。试设计各种条件查询该视图。 3、创建函数( ),根据年月与职工工号计算出该职工该月的工资。 4、创建存储过程( ),根据输入的年月计算出该月所有职工的工资,保存并显示。(参考提示:先得到该月全勤天数) 四、超市售货系统数据库 要求: 1、一连锁超市拥有若干分部,设计并创建数据库( ),保存与超市售货有关信息,包括:各分部超市的基本信息,商品信息,每天的销售信息等,设置各表的完整性约束条件(如主键、外键等)。录入以上信息。 2、创建函数( ),根据年月、超市编号、商品号计算出该商品在该超市当月的销售总金额。 3、创建存储过程( ),根据输入年月统计当月销售量排在前五位的商品及销售数量。 4、创建存储过程( ),根据输入年月统计当月销售金额排在前5%的超市信息及销售总金额。(提示:可创建临时表存放中间数据,用完删除)

数据库题库

一、单选题 1、若要将学生张三所在的系从“计算机系”改为“信息系”,正确的语句是 A. UPDATE Student SET sdept = '计算机系' WHERE Sname='张三' AND sdept='信息系' B. UPDATE Student SET sdept = '计算机系' WHERE Sname='张三' C. UPDATE Student SET sdept = '信息系' WHERE Sname='张三' AND sdept='计算机系' D. UPDATE Student SET sdept = 信息系' WHERE Sname='张三' 2、数据库三级模式结构中用于描述表结构的是 A. 外模式 B. 模式 C. 内模式 D. 数据库文件 3、设工资列的数据要求小数点后保留2位,小数点前保留4位,下列类型中最合适的是 A. float B. numeric(7,2) C. float(6,2) D. numeric(6,2) 4、下列查询语句中,能够正确执行的是 A. SELECT Sno,Sname FROM SC GROUP BY Sno B. SELECT Sno FROM SC GROUP BY Sno WHERE COUNT(*) > 3 C. SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) > 3 D. SELECT Sno FROM SC ORDER BY Sno HAVING COUNT(*) > 3 5、语句“SELECT * FROM Student WHERE sage BETWEEN 20 AND 25”的作用是 A. 查询年龄大于20并且小于25的学生 B. 查询年龄大于等于20并且小于等于25的学生 C. 查询年龄大于20并且小于等于25的学生 D. 查询年龄大于等于20并且小于25的学生 6、下述属于SQL数据操作功能的语句是 A. CREATE B. DELETE C. DROP D. ALTER 7、下列属于数据独立性的是 A.概念独立性 B.逻辑独立性 C.安全独立性 D.组织独立性 8、当数据的存储位置或存储结构发生变化时,可以不影响应用程序的特性,这属于数据库的 A.概念独立性 B.逻辑独立性 C.物理独立性 D.组织独立性 9、如果不允许学生转校,则学校和学生之间的联系是 A.一对一 B.一对二 C.一对多 D.多对多 10、下列不属于数据完整性约束的是 A.实体完整性 B.参照完整性 C.数据独立性 D.用户定义的完整性 11、二维表结构是 A. 关系数据库采用的概念层数据模型 B. 关系数据库采用的组织层数据模型 C. 数据库文件对数据的组织方式 D. 内模式采用的数据的组织方式 12、下列关于外键的说法,正确的是 A.外键必须与所引用的列类型相同,但长度可以不一样 B.外键与所引用的列的类型没有关系 C.外键所引用的列可以和外键在同一个表中 D.外键所引用的列必须在另一个表中 13、对于nvarchar数据类型,下列说法正确的是 A. 最多可以存储长度为8000个汉字的数据 B. 最多可以存储长度为4000个汉字的数据

同济大学数据库实验5答案

create proc procA as select* from student exec proca create proc procB @_year char(4) as select* from student where year(birthday )=@_year declare @_year char(4) set @_year ='1994' exec procB@_year create proc procf @_Snum char(30) as select s.snum ,avg(score)as平均成绩,count(https://www.wendangku.net/doc/8f4452604.html,um)as选秀门数,sum(1-score/60)as不及格门数 from student s,course c,sc,sections st where s.snum =sc.snum and sc.secnum =st.secnum and https://www.wendangku.net/doc/8f4452604.html,um =https://www.wendangku.net/doc/8f4452604.html,um and S.Snum =@_Snum group by S.Snum DECLARE @_SUNM char(30) set @_SUNM ='s001' exec procf@_sunm CREATE PROC Procd @_snum char(4),@_avg int out,@_selected_course int out,@_failed_course int out AS SELECT @_avg=AVG(score),@_selected_course=COUNT(cnum),@_failed_course=sum(1-score/60) FROM sc JOIN sections ON sc.secnum =sections.secnum WHERE snum=@_snum

相关文档