给出xxgl数据库以及学生表、课程表和选课表。进行以下查询:
Student(sno char(12),sname char(10),ssex char(2),sage tinyint,snat char(8),sdept nchar(20))
Course(cno char(3),cname nchar(20),credit tinyint)
Sc(sno char(12),cno char(3),grade tinyint)
(1)创建整型局部变量@myint1和@myint2,然后分别为其赋值10和20,并在计算机屏幕上显示出来。
(2)定义两个局部变量,分别存放常量16和student表中蒋洪的学号,并在计算机屏幕上显示出来。
(3)统计并显示“C语言程序设计”课程的平均成绩,如果在80分以上,则显示“成绩优秀”,否则显示“成绩一般”。
(4)统计并显示“C语言程序设计”课程的平均成绩,如果在80分以上,则显示“成绩优秀”,如果在60—79之间,则显示“成绩一般”否则显示“成绩不理想”。
(5)将“C语言程序设计”课程的成绩,按A、B、C、D、E五个等级显示成绩。
A级:90分以上;B级:80-89分;C级:70-79分
D级:60-69分;E级:60分以下
(6)求1~100之间的所有数之和,并输出结果。
(7)为确保选修002号课程的学生都能通过考试,制定了如下加分规则:
每人都加5分,看是否都通过,如果没有,则每人再加5分,再看是否都能通过,如此反复加分,直到所有人都能通过为止(超过100,设置100)。
student表
sno |
sname |
ssex |
sage |
snat |
sdept |
S1 |
赵无言 |
男 |
18 |
汉族 |
计算机系 |
S2 |
蒋洪 |
男 |
19 |
回族 |
通信系 |
S3 |
汪艳 |
女 |
18 |
汉族 |
自动化 |
S4 |
张拟 |
女 |
18 |
汉族 |
通信系 |
S5 |
孙瑶 |
男 |
19 |
汉族 |
电子系 |
S6 |
张军军 |
男 |
20 |
回族 |
计算机系 |
course表
cno |
cname |
credit |
001 |
C语言程序设计 |
2 |
002 |
高数 |
3 |
003 |
大学英语 |
2 |
004 |
计算机网络 |
3 |
005 |
数据库原理 |
2 |
sc表
sno |
cno |
grade |
S1 |
001 |
80 |
S1 |
003 |
75 |
S2 |
002 |
54 |
S2 |
003 |
90 |
S3 |
002 |
70 |
S3 |
003 |
30 |
主要代码如下:
create database JXGL1
on
(name=JXGL,
filename='D:\sql\JXGL1.mdf',//选择自己的文件保存位置
size=10MB,
maxsize=30MB,
filegrowth=5MB)
log on
(name=xxgl_log,
filename='D:\sql\JXGL1_log.ldf',
size=4MB,
maxsize=10MB,
filegrowth=2MB)
use JXGL1
go
create table S(sno char(12)primary key,
sname char(10),
sex char(2),
age tinyint,
sdept nchar(20)
)
create table C
(cno char(3)primary key,
cname nchar(20),
Tname varchar(20),
credit tinyint
)
create table SC
(sno char(12)references S(sno),
cno char(3)references C(cno),
grade float,
primary key(sno,cno),
)
insert into S values
('S1','程晓晴','女',21,'CS'),
('S2','吴玉江','男',20,'CS'),
('S3','姜云','女',18,'CS'),
('S4','张峰','男',19,'CS'),
('S5','张丽丽','女',21,'MA'),
('S6','李文','女',25,'MA'),
('S7','李文远','女',19,'MA'),
('S8','张峰名','男',20,'IS'),
('S9','王大力','男',21,'IS'),
('S10','张姗姗','女',22,'IS')
insert into c values
('C1','C语言程序设计','殷老师',4),
('C2','计算机网络','王老师',4),
('C3','数据结构','詹老师',4),
('C4','数据库系统','詹老师',3),
('C5','Jave Web','支老师',3)
insert into SC values
('S1','C1',96),
('S1','C2',55),
('S1','C3',84),
('S1','C5',52),
('S2','C1',84),
('S2','C2',90),
('S2','C4',85),
('S3','C5',73),
('S3','C4',Null),
('S4','C1',50)
use JXGL1
declare @myint1 char(10) ,@myint2 char(20)
select @myint1=16
select @myint2='sno=s3'
print @myint1
print @myint2
if(select AVG(grade)from SC where cno='c1')>80
print'成绩优秀'
else
print'成绩一般'
select avg(grade) as '平均成绩',
case
when avg(grade)>=80 then '成绩优秀'
when avg(grade)>=60 and avg(grade )<=79 then '成绩一般'
when avg(grade)<60 then '成绩不理想'
end as '成绩等级'
from S JOIN SC ON S.SNO=SC.SNO AND CNO='C1'
SELECT SNAME AS '姓名',
CASE
WHEN GRADE>=90 THEN 'A级'
WHEN GRADE>=80 THEN 'B级'
WHEN GRADE>=70 THEN 'C级'
WHEN GRADE>=60 THEN 'D级'
WHEN GRADE<60 THEN 'E级'
END AS '成绩等级'
from S JOIN SC ON S.sno=SC.sno AND cno='C1'
DECLARE @SUM INT,@I INT
SET @SUM=0
SET @I=1
WHILE @I<=100
BEGIN
SET @SUM=@SUM+@I
SET @I=@I+1
END
PRINT @SUM
DECLARE @N INT
WHILE(1=1)
BEGIN
SELECT @N=COUNT(*)
FROM SC
WHERE grade<60
IF(@N>0)
UPDATE SC
SET grade=grade+5
ELSE
BREAK
END
PRINT'加分后的成绩如下:'
SELECT * FROM SC