当前位置:Gxlcms > 数据库问题 > sql 学习笔记 2

sql 学习笔记 2

时间:2021-07-01 10:21:17 帮助过:9人阅读

---Use stsc Go Create View st_co_sr As Select Student.stno,stname,stsex,Score.cno,cname,grade from Student,Score,Course Where Student.stno=Score.stno and Score.cno=Course.cno; Go Select * From st_co_sr; --上机实验题---2--- Use stsc Go Create View st_computer As Select stname,cname,grade from Student,Course,Score Where Student.stno=Score.stno and Score.cno=Course.cno and specialist=计算机; Go Select * from st_computer; --上机实验题---3--- Go Create View st_av As Select stname,AVG(grade) 平均分 from Student,Score Where Student.stno=Score.stno Group by stname; Go Select * from st_av; --------------第7章------------------- --上机实验题---1--- Use stsc Go --如果存在索引先删除它(没成功) --If Exists(select object_name(object_id) tableName,name,type_desc from sys.indexes where name=tno) --Drop Index Teacher.tno --Else Create Unique Clustered Index itno On Teacher(tno);--唯一聚集索引 --上机实验题---2--- Go Create NonClustered Index icredit On Teacher(credit);--非聚集索引 Go Alter Index icredit On Teacher Rebuild With(Pad_Index=On,FillFactor=90) Go --------------第8章------------------- --上机实验题---1--- Use stsc --Alter table Score drop constraint CK_grade Alter Table Score Add Constraint CK_grade check(grade between 0 and 100); --上机实验题---2--- Use stsc Alter Table Student Add Constraint DF_stsex Default() for stsex; --上机实验题---3--- --删除 Alter table Student drop constraint PK_stno; --添加 Alter table Student add constraint PK_stno Primary Key(stno); --上机实验题---4--- Alter table Score add constraint FK_stno foreign key(stno) references Student(stno); --上机实验题---5---(没做出来) --Declare @credit; --Create Rule credit_rule --As --@credit between 1 and 4; --上机实验题---6--- Alter Table Teacher add constraint school_dft Default(通信学院) for school; --------------第9章------------------- --上机实验题---1--- If Exists(select * from sysobjects where name=Score and type=Table) Drop Table Score; --上机实验题---2---使用游标解决 Use stsc Declare @stn char(8),@gr int,@cn char(16) Declare CR_Rank Cursor For (select stname,grade,cname From Student,Score,Course Where Student.stno=Score.stno and Score.cno=Course.cno group by stname,grade,cname) Open CR_Rank Fetch Next From CR_Rank Into @stn,@gr,@cn print 姓名 分数 课程名 print ---------------------------------------------- While @@FETCH_STATUS=0--代表执行成功 Begin if(@gr<60) print @stn+cast(@gr as char(8))+@cn+不及格 else if(@gr<70) print @stn+cast(@gr as char(8))+@cn+D else if(@gr<80) print @stn+cast(@gr as char(8))+@cn+C else if(@gr<90) print @stn+cast(@gr as char(8))+@cn+B else print @stn+cast(@gr as char(8))+@cn+A--非字符型要转换成字符型 Fetch Next From CR_Rank Into @stn,@gr,@cn End Close CR_RAnk Deallocate CR_Rank; --上机实验题---3--- Use stsc GO Create Function allcourse_Avg(@_tname char(8)) Returns @tn Table ( _tname char(8), _cname char(16), average float ) As Begin Insert @tn Select tname,cname,AVG(grade) From Teacher,Course,Score Where Teacher.tno=Course.tno and Course.cno=Score.cno and tname=@_tname Group By tname,cname,grade Return End GO Select * From allcourse_Avg(刘林卓);

 

sql 学习笔记 2

标签:

人气教程排行