题干本题共包含 11 个小题

根据下面所给的AAA数据库,写出下列每条查询语句的执行结果,或者写出下列每条语句或程序段的功能。 假设存在名为AAA的数据库,包括Students(学号char(8),姓名varchar(8),年龄int,专业varchar(20),入学日期DateTime)和Score(学号char(8),课程名varchar(10),成绩numeric(5,2))两张表。

简答题1

SELECT CEILING(888.33),CEILING(-888.32)

正确答案

889-888

答案解析

简答题2

SELECT FLOOR(888.33),FLOOE(-888.33)

正确答案

888-889

答案解析

简答题3

SELECT SUBSTRING(‘I am a student’,8,7)

正确答案

student

答案解析

简答题4

SELECT’学生号’,’课程号’,ISNULL(null,0)

正确答案

学生号课程号0

答案解析

简答题5

DECLARE @MyNO CHAR(8) SET @MyNO="20030001" IF (SELECT专业 FROM Students WHERE 学号=@MyNO)="计算机软件" BEGIN SELECT AVG(成绩) AS 平均成绩 FROM Score WHERE学号=@MyNO END ELSE PRINT "学号为" +@MyNO+"的学生不存在或不属于软件专业" GO

正确答案

首先定义一个名为@MyNo的局部变量,并给它赋初值,如果@MyNo属于计算机软件专业,则显示出平均成绩,否则显示“学号为@MyNo的学生不存在或不属于软件专业”。

答案解析

简答题6

declare @a numeric(5,2),@b numeric(5,2) set @a=(select max(成绩) from score) set @b=(select min(成绩) from score) print @a-@b

正确答案

求出score表中最高成绩与最低成绩的分数之差。

答案解析

简答题7

declare @a char(8) set @a="计算机" select计算机专业人数=count(*) from students where left(专业,3)=@a

正确答案

从students表中统计出专业名开头为@a的值(即“计算机”)的所有学生人数。

答案解析

简答题8

select month(入学日期) as 入学月份,count(*) as 人数 from students group by month(入学日期)

正确答案

从students表中分组统计出每个月份入学的学生人数。

答案解析

简答题9

create procedure xxk1 as begin select * from students x,score y where x.学号=y.学号 end

正确答案

显示出AAA库中所有学生的记录信息及选课成绩

答案解析

简答题10

create procedure xxk3 as begin select学号,avg(成绩) as 平均成绩 from score group by学号 end

正确答案

显示出AAA库中每个学生的平均成绩

答案解析

简答题11

create procedure xxk5 ( @a char(8),@b varchar(10),@c numeric(5,2) ) as begin insert into score values(@a,@b,@c) end

正确答案

向score表中插入学号为@a的值、课程名为@b的值、成绩为@c的值的学生成绩记录。

答案解析