数据库高级数据库学习--上机练习5(Transact-SQL)
上机练习5
启动SQL Server 2008中的 SQL Server Management Studio,恢复数据库ClassDB; 采用Transact-SQL程序设计完成以下练习:
1、 求1到100之间所有能被3整除但不能被5整除的整数和; DECLARE @i int, @sum int SET @i = 1 SET @sum = 0 WHILE @i<=100 BEGIN if ((@i % 3) = 0) AND ((@i % 5) != 0) SET @sum = @sum + @i SET @i = @i + 1 END PRINT '1到之间所有能被整除但不能被整除的整数和为' + str(@sum) 2、 将学号为‘1401’的学生的姓名信息按如下格式显示; 1401【李勇,23】 ALTER TABLE Student ALTER COLUMN Sno CHAR(10); INSERT INTO Student(Sno,Sname,Sage) VALUES('14001','李勇','23') DECLARE @sno int, @sname char(5), @age int SET @sno = (SELECT Sno FROM Student WHERE Sno='14001') SET @sname = (SELECT Sname FROM Student WHERE Sno='14001') SET @age = (SELECT Sage FROM Student WHERE Sno='14001') PRINT ltrim(str(@sno)) + '【'+ rtrim(ltrim(@sname)) + ',' + ltrim(str(@age)) + '】' 3、 查询课程号为“1”的课程上课人数,如果人数超过30人,则显示相应选课人数以及“进行分班上课”,否则显示相应人数以及“人数合理”; DECLARE @record int SELECT @record = COUNT(DISTINCT Sno) FROM Score WHERE Cno = '0001' IF @record>30 BEGIN PRINT '该班有'+LTRIM(STR(@record))+'人' PRINT '进行分班上课' END ELSE BEGIN PRINT '该班有'+LTRIM(STR(@record))+'人' PRINT '人数合理' END 4、 编写程序完成选课成绩表查询:如果”数据库”课程的平均成绩高于80分,则显示“平均分优秀”,否则显示“平均分低”。 DECLARE @agv float(24) SELECT @agv = AVG(CScore) FROM Score WHERE Cno = ( SELECT Cno FROM Course WHERE Cname='数据库技术'); IF @agv>80 BEGIN PRINT '平均分优秀' END ELSE BEGIN PRINT '平均分低' END