µ±Ç°Î»ÖãºÊ×Ò³ > SQL Sever 2005 ϰÌâÓë´ð°¸
create default stu_d_df as 'ÐÅϢѧԺ'
sp_bindefault stu_d_df,'student_info.Ժϵ' sp_unbindefault 'student_info.Ժϵ' drop default stu_d_df /* 4.5 */
create table stu_con (ѧºÅchar(4), ÐÕÃûchar(8), ÐÔ±ðchar(2),
³öÉúÈÕÆÚdatetime,
constraint pk_sid primary key (ѧºÅ), constraint uk_name unique (ÐÕÃû),
constraint ck_bday check (³öÉúÈÕÆÚ>'1988-1-1') )
alter table stu_con
add constraint df_sex default 'ÄÐ' for ÐÔ±ð /* 4.6 */
alter table grade
add constraint fk_sid foreign key (ѧºÅ) references student_info(ѧºÅ)
Îå
select ѧºÅ,·ÖÊý,µÈ¼¶= case
when ·ÖÊý>=90 then 'A'
when ·ÖÊý>=80 and ·ÖÊý<90 then 'B' when ·ÖÊý>=70 and ·ÖÊý<80 then 'C' when ·ÖÊý>=60 and ·ÖÊý<70 then 'D' else 'E' end
from grade
declare @a float,@b float,@c float
select @a=max(·ÖÊý),@b=min(·ÖÊý),@c=avg(·ÖÊý)
from grade a inner join curriculum b on a.¿Î³Ì±àºÅ=b.¿Î³Ì±àºÅ where ¿Î³ÌÃû³Æ='¸ßµÈÊýѧ' select @a,@b,@c
declare @n int,@s int set @s=0 set @n=1 while @n<=10 begin
set @s=@s+@n set @n=@n+1 end
print '1+2+3+...+10='+str(@s,2)
declare @i int,@n int,@s int set @i=1 set @n=0 set @s=0
while @i<=100 begin
if @i%7=0 begin
set @n=@n+1 set @s=@s+@i end
set @i=@i+1 end
select @n as ¸öÊý,@s as ×ܺÍ
declare @sex char(2),@n1 int,@n2 int set @n1=0 set @n2=0
declare cur_stu cursor for select ÐÔ±ðfrom student_info open cur_stu
while @@fetch_status=0 begin
if @sex='ÄÐ' set @n1=@n1+1 else
set @n2=@n2+1
fetch next from cur_stu into @sex end
select @n1 as ÄÐ,@n2 as Å® close cur_stu
deallocate cur_stu
Áù
declare @a float,@b float,@c float
select @a=max(·ÖÊý),@b=min(·ÖÊý),@c=avg(·ÖÊý)
from grade a inner join curriculum b on a.¿Î³Ì±àºÅ=b.¿Î³Ì±àºÅ where ¿Î³ÌÃû³Æ='¸ßµÈÊýѧ' select @a,@b,@c
select ѧºÅ,·ÖÊý,µÈ¼¶= case
when ·ÖÊý>=90 then 'A'
when ·ÖÊý>=80 and ·ÖÊý<90 then 'B' when ·ÖÊý>=70 and ·ÖÊý<80 then 'C' when ·ÖÊý>=60 and ·ÖÊý<70 then 'D' else 'E' end
from grade
declare @n int,@s int set @s=0 set @n=1 while @n<=10 begin
set @s=@s+@n set @n=@n+1 end
print '1+2+3+...+10='+str(@s,2)
declare @i int,@n int,@s int set @i=1 set @n=0 set @s=0
while @i<=100 begin
if @i%7=0 begin
set @n=@n+1 set @s=@s+@i end
set @i=@i+1 end
select @n as ¸öÊý,@s as ×ܺÍ
declare @sex char(2),@n1 int,@n2 int set @n1=0 set @n2=0
declare cur_stu cursor for select ÐÔ±ðfrom student_info open cur_stu
while @@fetch_status=0 begin
fetch next from cur_stu into @sex if @sex='ÄÐ'
set @n1=@n1+1 else
set @n2=@n2+1 end
select @n1 as ÄÐ,@n2 as Å® close cur_stu
deallocate cur_stu
create procedure stu_grade as select ÐÕÃû,¿Î³ÌÃû³Æ,·ÖÊý
from student_info s inner join grade g on s.ѧºÅ=g.ѧºÅ inner join curriculum c on g.¿Î³Ì±àºÅ=c.¿Î³Ì±àºÅ where s.ѧºÅ='0001'
execute stu_grade
sp_rename 'stu_grade','stu_g'
create procedure stu_p_g @stu_name char(8) as select ÐÕÃû,¿Î³ÌÃû³Æ,·ÖÊý
from student_info s inner join grade g on s.ѧºÅ=g.ѧºÅ inner join curriculum c on g.¿Î³Ì±àºÅ=c.¿Î³Ì±àºÅ where s.ÐÕÃûlike @stu_name
execute stu_p_g 'ÁõÎÀƽ'
sp_helptext stu_p_g
create procedure stu_g_r @stu_no char(4),@stu_avg float output as
select @stu_avg=avg(·ÖÊý) from grade
where ѧºÅ=@stu_no
declare @avg1 float
execute stu_g_r '0002',@avg1 select @avg1
¹²·ÖÏí92ƪÏà¹ØÎĵµ