您的位置:首页 > 其它

添加约束及打印五角星及查询

2016-04-06 21:29 267 查看
USE MySchool
--添加主键约束
alter table Student
add constraint PK_StudentNo primary key (StudentNo)

--添加唯一约束
alter table Student
add constraint UQ_IdentityCard unique (IdentityCard)

--添加默认约束
alter table Student
add constraint DF_Address default('地址不详') for Address

--添加检查约束
alter table Student
add constraint CK_BornDate check (BornDate>='1980-01-01')

--添加外键约束
alter table Student
add constraint FK_StudentNO foreign key(StudentNo) references Student(StudentNo)

declare @x int ,@a int,@z varchar(100),@y nvarchar
set @x =0
set @a=5
set @y='★'
set @z=''
while @x<5
begin
set @x=@x+1
set @a=@a-1
set @z=REPLICATE (@y,@x)+REPLICATE('',@a)
print @z
end

--求符合条件的人数
--if me ,I'll do this
--01.定义一个int类型的变量,保存课程名称为"oop"对应的课程编号
--declare @subid int
--select @subid=subjectid
--from Subject
--where SubjectName='oop'
--print @subid

declare @subid int
select @subid =subjectid
from Subject
where SubjectName='oop'
declare @Maxdate datetime
select @Maxdate=MAX(examdate)
from Result
where SubjectId=@subid
declare @totaCount int
select @totaCount=COUNT (*)
from Result
where SubjectId=@subid
and ExamDate =@Maxdate
and StudentResult<80

select @totalCount=COUNT(*)
from Result
where SubjectId=@subid
and ExamDate=@Maxdate
and StudentResult<80

--02.第二个限定条件   最近一次  携带  课程编号
--max() min() sum() count() avg()
--定义一个Datetime类型的变量,保存最近一次考试时间
declare @Maxdate datetime
select @Maxdate=MAX(examdate)
from Result
where SubjectId=@subid

--select * from Result

--easy  总人数
--03.定义一个保存总人数的变量
declare @totalCount int

select @totalCount=COUNT(*)
from Result
where SubjectId=@subid
and ExamDate=@Maxdate
and StudentResult<80

--56
--判定人数>0

--循环
while(@totalCount>0)
begin
--有不及格的,提分+2  高于95,不提
update Result set StudentResult=StudentResult+2
where  SubjectId=@subid
and ExamDate=@Maxdate
and StudentResult<95

select @totalCount=COUNT(*)
from Result
where SubjectId=@subid
and ExamDate=@Maxdate
and StudentResult<80

end

--代码

declare @subid int
select @subid =subjectID from Subject
where SubjectName='oop'
declare @examDate datetime
select @examDate=MAX(examdate)from
Result where SubjectId=@subid

declare @num int
select @num=COUNT(*)from Result
where SubjectId =@subid
and ExamDate=@examDate
and StudentResult<60
while (@num>0)
begin
update Result
set StudentResult+=2
where SubjectId=@subid and ExamDate=@examDate
and StudentResult<95
select @num=count(*)from Result
where subjectid =@subid
and ExamDate=@examDate
and studentResult<60
end

--查询学生姓名和成绩
declare @subid int
select @subid=subjectid
from Subject
where SubjectName='oop'
declare @Maxdate datetime
select @Maxdate=MAX(examdate)
from Result
where SubjectId=@subid
case
where SubjectResult>=90 then  'A'
where SubjectResult>=80 then  'B'
where SubjectResult>=70 then  'C'
where SubjectResult>=60 then  'D'
else 'E'

end
from Result ,subject
where result.subjectId=subject.subjectId
and subjectName

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: