您现在的位置是:主页 > news > 做微信h5的网站/营销型企业网站诊断
做微信h5的网站/营销型企业网站诊断
admin2025/5/11 15:57:03【news】
简介做微信h5的网站,营销型企业网站诊断,深圳app开发公司哪家靠谱,网站建网站建设企业电话程序填空题(每空2分,共10分) 根据下面某教学管理数据库的表结构,完成下面的程序填空题。 教师(职工号,姓名,学历,职称) 课程(课程号,课程名称&a…
- 程序填空题(每空2分,共10分)
根据下面某教学管理数据库的表结构,完成下面的程序填空题。
教师(职工号,姓名,学历,职称)
课程(课程号,课程名称,课程类别)
任课(职工号,课程号,周课时)
1.补填下面的存储过程的定义,使其被调用时,能根据调用程序提供的教师姓名使用输出参数返回该教师任课的课程数。
CREATE PROCEDURE 按教师姓名查询任课课程数
@姓名 VARCHAR(10),
@课程数 INT ________ OUTPUT______
AS
SELECT _________@课程数 = COUNT(*)________
FROM 教师 JOIN 任课 ON 教师.职工号 = 任课.职工号
WHERE __________姓名 = @姓名_______
2.完成下面的触发器的定义,当向任课表中插入记录时,触发器能判断若插入的记录使该教师的任课周课时总计超过20,则回滚插入操作。
CREATE TRIGGER 添加教学任务
ON 任课
AFTER INSERT
AS
DECLARE @总课时 INT
SELECT @总课时 = SUM(任课.周课时)
FROM 任课 JOIN ____ INSERTED ON任课.职工号 = INSERTED.职工号 ____
IF @总课时 > 20
____________ ROLLBACK TRANSACTION_______
- 程序填空题(每空2分,共10分)
说明:为了管理学生的成绩,现建有学生管理数据库SCDB,以下各程序题以该数据库为操作对象。SCDB数据库包括student(学生表)、course(课程表)、sc(成绩表),表结构如下:
表1 student
字段名 | 数据类型 | 长度 | 是否允许为空 | 说明 |
Studentid | varchar | 10 | 否 | 学号 |
Name | varchar | 8 | 否 | 姓名 |
Sex | varchar | 2 | 是 | 性别 |
表2 course
字段名 | 数据类型 | 长度 | 是否允许为空 | 说明 |
CourseID | Varchar | 10 | 否 | 课程编号 |
CourseName | Varchar | 40 | 否 | 课程名称 |
Teacher | Varchar | 10 | 是 | 任课教师 |
表3 sc
字段名 | 数据类型 | 长度 | 是否允许为空 | 说明 |
Studentid | varchar | 10 | 否 | 学号 |
CourseID | Varchar | 10 | 否 | 课程编号 |
Grade | Float | 是 | 成绩 |
1.补填下面的存储过程的定义,使其被调用时,能够根据学生的姓名,使用输出参数返回他的成绩的平均分。
USE SCDB
GO
CREATE PROCEDURE avgStudent
@Name varchar(50),@AVGScore _____ float OUTPUT _________
AS
SELECT _______@AVGScore=AVG(Grade)__________
FROM SC,Student
WHERE __________Student.StudentID=SC.StudentID AND Name=@Name______
2.完成下面的触发器的定义,实现当修改sc成绩表的时候,判断成绩是否及格,如果及格就输出“该学生成绩合格”,否则输出“该学生成绩不合格”
Use SCDB
Go
Create trigger t_1
On sc
___________ For update ______
As
Declare @grade int
Select @grade=_________ grade from inserted _________
If @grade<60
Print ’ 该学生成绩不合格’
Else
Print ’ 该学生成绩合格’
- 程序填空题(每空2分,共10分)
说明:为了管理学生的成绩,现建有学生管理数据库SCDB,以下各程序题以该数据库为操作对象。SCDB数据库包括student(学生表)、course(课程表)、sc(成绩表),表结构如下:
表1 student
字段名 | 数据类型 | 长度 | 是否允许为空 | 说明 |
Studentid | varchar | 10 | 否 | 学号 |
Name | varchar | 8 | 否 | 姓名 |
Sex | varchar | 2 | 是 | 性别 |
表2 course
字段名 | 数据类型 | 长度 | 是否允许为空 | 说明 |
CourseID | Varchar | 10 | 否 | 课程编号 |
CourseName | Varchar | 40 | 否 | 课程名称 |
Teacher | Varchar | 10 | 是 | 任课教师 |
表3 sc
字段名 | 数据类型 | 长度 | 是否允许为空 | 说明 |
Studentid | varchar | 10 | 否 | 学号 |
CourseID | Varchar | 10 | 否 | 课程编号 |
Grade | Float | 是 | 成绩 |
1.补填下面的存储过程的定义,使其被调用时,能够根据学生的学号,使用输出参数返回他选的课程成绩总分。
Create proc CountStudent
@id varchar(10),@Score______ int output ________
As
Select __________@score=sum(grade)_______
From sc
Where _________ studentid=@id ________
2.完成下面的触发器的定义,创建触发器update_id,当修改student表中的学号字段后,自动修改sc成绩表中相应的学号。
USE SCDB
GO
Create trigger update_id
ON Student
For update
AS
If update(studentid)
begin
update sc
set Studentid=________(select Studentid from Inserted)_________
where studentid=________(select studentid from deleted)_________
end
- 程序填空题(每空2分,共10分)
根据下面学生管理数据库的表结构,完成下面的程序填空题。
student_info(stud_id,stud_name)
course_info(course_id,course_name)
student_grade(stud_id,course_id,grade)
1.补填下面的存储过程的定义,使其被调用时,能够根据输入的课程号判断该课程有没有参加考试,如果参加考试了,则输出考试的人数和平均分,如果没有举行考试,则输出未参加考试。
CREATE PROCEDURE proc_1
@cid char(10)
AS
BEGIN
DECLARE @grade numeric(5,2)
DECLARE @mans int
SELECT @mans=_____ COUNT(*)
_____,@grade=____ AVG(grade)___ FROM student_grade
WHERE course_id=@cid
IF (_________@grade IS NULL或@mans=0_______)
PRINT N'该课程没有举行考试!'
ELSE
PRINT N'该课程有'+CONVERT(nvarchar(10),@mans)+
N'名学生参加考试,平均成绩为'+CONVERT(nvarchar(10),@grade)+N'分。'
END
GO
2.完成下面的触发器的定义,当向学生情况表中插入记录时,触发器把该学生所在的班级人数增加1人。
CREATE TRIGGER t_1
ON student_info
FOR _____ INSERT _____
AS
BEGIN
DECLARE @class_id char(6)
SELECT @class_id = class_id
FROM inserted
UPDATE class_info
SET _____ student_num = student_num + 1_______
WHERE class_id = @class_id
END
GO
- 程序填空题(每空2分,共10分)
根据下面某学生管理数据库的表结构,完成下面的程序填空题。
student_info(stud_id,stud_name)
course_info(course_id,course_name)
student_grade(stud_id,course_id,grade)
1.补填下面的存储过程的定义,要求实现输入学生学号,根据该学生所选课程的平均成绩显示提示信息,即如果平均成绩在60分以上,显示“此学生综合成绩合格!”,否则显示“此学生综合成绩不合格!”。
CREATE PROCEDURE 判断学生成绩是否合格
___@sid ____ char(10)
AS
BEGIN
DECLARE @grade numeric(5,2)
SELECT @grade=____ AVG(grade)______ FROM student_grade
WHERE stud_id=@sid
IF (_____@grade>=60_______)
PRINT N'合格'
ELSE
PRINT N'不合格'
END
GO
2.完成下面的触发器的定义,当向成绩表中插入记录时,触发器能判断若插入的成绩是否0-100,如果不符合则回滚插入操作。
CREATE TRIGGER t_2
ON student_grade
FOR INSERT
AS
BEGIN
DECLARE @score int
SELECT @score = score
FROM _____ inserted _______
IF(_______@score < 0 or @score > 100_________)
BEGIN
PRINT N'分数不正确,不允许添加'
ROLLBACK TRANSACTION
END
ELSE
PRINT N'成功删除'
END
GO
- 程序填空题(每空2分,共10分)
有一个存储过程 PFind,在表TWord中查找任意一个单词的解释,并返回该值(FChinese对应的内容),请补填该存储过程的定义。
create procedure PFind
__ as ___
declare @i int
declare @w nvarchar(10)
set @i=0
declare Cur1 ___ cursor ___ for select 单词 from TWord order by 单词
___ open ___ Cur1
L1:
set @i=@i+1
___ fetch ___next from cur1 into @W
___ insert into ___TWords(序号,单词) values (@i,@W)
if @@fetch_status=0 goto l1
close Cur1
deallocate Cur1
- 程序填空题(每空2分,共10分)
填写出下列触发器中缺少的关键字,使下面语句完整:
if update([lcostprice])
update [b_drug_data] set [scostprice] = ((select [lcostprice]
from inserted
___ GROUP BY
___ [codno],[lcostprice],[scostprice]
___ HAVING ___ {b_drug_data.codno} = [inserted.codno])/
(select [fsco] from [b_drug_data]
____ GROUP BY
____ [codno],[fsco]
____ HAVING _____ [b_drug_data.codno] =
(select [codno] from inserted group by [codno]))) where [b_drug_data.codno] ____ IN _____
(select [codno] from inserted)
- 程序填空题(每空2分,共10分)
根据下面某教学管理数据库的表结构,完成下面的程序填空题。
教师(职工号,姓名,学历,职称)
课程(课程号,课程名称,课程类别)
任课(职工号,课程号,周课时)
1.补填下面的用户自定义函数,使其被调用时,能根据调用程序提供的教师职工号返回该教师任课的课程号和周课时。
CREATE FUNCTION 按教师职工号查询任课号和周课时( @职工号 CHAR(9))
RETURNS________ TABLE _________
AS
RETURN(
SELECT 课程号,周课时
FROM教师 JOIN 任课 ON 教师.职工号 = 任课.职工号
WHERE_________任课.职工号=@职工号或教师.职工号=@职工号________
)
2.完成下面的触发器的定义,当向教师表中插入记录时,触发器能检查新添加的教师职称是否有效(助教,讲师,教授之一),如果无效则拒绝添加该数据。
CREATE TRIGGER 检查教师职称
ON 教师
AFTER INSERT
AS
IF(SELECT 职称 FROM________ INSERTED ________)
________ NOT IN _________ ('助教','讲师','教授')
BEGIN
PRINT ‘教师的职称无效,请核对!’
ROLLBACK TRANSCATION
END
- 程序填空题(每空2分,共10分)
假设学生成绩管理系统中有如下表结构,完成下面的程序填空题。
student_grade(course_id,stud_id,grade,stud_credit, term, form)
说明:成绩表,每列的含义为课程编号、学生学号、成绩、获得的学分、考试所在的学期、考试形式。
1.补填下面的存储过程的定义,使其被调用时,能根据调用程序提供的课程编号返回该课程的考试人数和该课程的平均分。
Create proc proc_1
(@course_id char(8))
as
Begin
declare @num int
declare @avg Decimal(6,2)
select @num= Count(*) ,@avg= Avg(grade)
from student_grade
where course_id=@course_id
End
2.完成下面的触发器的定义,当向学生成绩表中插入记录时, 触发器能判断若考试成绩超过100分时,则回滚插入操作。
CREATE TRIGGER trig_1
ON student_grade
AFTER INSERT
AS
DECLARE @score INT
SELECT @score = grade
From Inserted
IF @score > 100
Rollback
- 程序填空题(每空2分,共10分)
根据上面程序阅读题给出的某学生选课成绩管理数据库(StuSelectCourse)的表结构,完成下面的程序填空题。
1.补填下面的存储过程(studystate)的定义,使其被调用时,能根据调用程序输出某一指定学号同学的姓名、系及所有选课课程的课程成绩(含课程名和课程成绩)。
USE StuSelectCourse
IF EXISTS (SELECT name FROM sysobjects WHERE name='studystate' and type=______‘P’_____)
DROP PROCEDURE studystate
GO
create PROCEDURE studystate
@Ssno float
As
Select A.Sno,A.Sdept,C.Cname,B.Grade
From Student as A inner join SC as B ON A.Sno=B.Sno INNER JOIN Course as C ON
______ B. Cno =C. Cno _____
Where ______ A. Sno =@Ssno _____
go
2. 修改上面已创建的存储过程studystate,要求对此存储过程进行加密,并对此存储过程进行调用测试,测试的学号为20150000001。
(1)修改已创建的存储过程proc_studentinfo,要求对此存储过程进行加密,其他要求不变。
alter studystate
@Ssno float
______ With encryption _____ ---加密
As
Select A.Sno,A.Sdept,C.Cname,B.Grade
From Student as A inner join SC as B ON A.Sno=B.Sno INNER JOIN Course as C ON
___________ B. Cno =C. Cno
Where __________ A. Sno =@Ssno
go
------------调用存储过程
Exec ______ studystate 20150000001_____