亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

學生成績數據庫設計 三 模擬數據

2024-07-21 02:48:27
字體:
來源:轉載
供稿:網友
學生成績數據庫設計 三 模擬數據

1 基礎數據

 1 /*一 模擬數據說明:從2000年到當年,每年添加100個學生*/ 2 Declare @StuCount int, /*每年添加的數量*/ 3         @StartYear int,/*初始年份*/ 4         @CurYear int    /*當前年份*/ 5 Begin 6     /*設置添加數據的初始值*/ 7     SET @StuCount=100 8     SET @StartYear=2010 9     SET @CurYear=YEAR(GETDATE())10     11     /*1 向學年表添加數據*/12     Declare @XnKaishi INT /*開始年份*/13     SET @XnKaishi=@StartYear14     WHILE(@XnKaishi<=@CurYear)15         BEGIN16             IF NOT EXISTS(SELECT 1 FROM SchoolYear WHERE SyStartYear=@XnKaishi AND SyEndYear=@XnKaishi+1)17                 begin18                     insert into SchoolYear(SyStartYear,SyEndYear) values(@XnKaishi,@XnKaishi+1)19                 end20             SET @XnKaishi=@XnKaishi+121         END22     23     24     /*2 向學生表中添加數據*/25     Declare @temSc int, /*記錄當前的學生ID*/26             @temXueHao NVARCHAR(12),/*當前學生的編號*/27             @temXm nvarchar(20),/*學生的姓名*/28             @temSy int  /*記錄當前的年份*/29     set @temSy=@StartYear30     /*循環年份*/31     WHILE(@temSy<=@CurYear)32         BEGIN33             /*循環添加該年份的學生*/34             set @temSc=135             while(@temSc<=@StuCount)36                 begin37                     set @temXueHao=CONVERT(varchar(4),@temSy)38                                   +'-'39                                   +CONVERT(varchar(4),@temSc)40                     if not exists(select 1 from Student where StuNO=@temXueHao)41                         begin42                             set @temXm='學生'+CONVERT(varchar(4),@temSc)43                             INSERT INTO Student(StuNO,StuName,StuJoinYear) VALUES(@temXueHao,@temXm,@temSy)44                         end45                     set @temSc=@temSc+146                 end47             SET @temSy=@temSy+148         END        49 End50 51 GO52 53 /*二 模擬科目*/54 Declare @KcCount int /*課程數量*/55 BEGIN56     SET @KcCount=2057     DECLARE @i int,58             @kcMc nvarchar(30)59     set @i=160     while(@i<=@KcCount)61         begin62             set @kcMc='課程'+CONVERT(varchar(2),@i)63             if not exists(select 1 from Course where CourseName=@kcMc)64                 begin65                     insert into Course(CourseName) values(@kcMc)66                 end67             set @i=@i+168         end69 END70 GO71 72 /*三 班級模擬:暫定三個年級,每個年級有三個班級*/73 Declare @GradeNo int=1,/*年級編號*/74         @ClassNo int=1,/*班級編號*/75         @GcName  nvarchar(10)/*年級班級名稱*/76 BEGIN77     WHILE(@GradeNo<=3)78         BEGIN79             SET @ClassNo=180             WHILE(@ClassNo<=3)81                 BEGIN82                     SET @GcName=CONVERT(varchar(1),@GradeNo)+'年級'+CONVERT(varchar(1),@ClassNo)+'班級'83                     if not exists(select 1 from GradeClass where GradeNo=@GradeNo and ClassNo=@ClassNo)84                         begin85                             INSERT INTO GradeClass(GradeNo,ClassNo,GcName) values(@GradeNo,@ClassNo,@GcName)86                         end87                     SET @ClassNo=@ClassNo+188                 END89             set @GradeNo=@GradeNo+190         END91 END92 GO

2 注冊課程數據

  1 /*2 模擬CourseRegist(課程注冊表)的數據*/  2   3 --Declare @MixRegCount int=5,/*每學年允許的最小注冊課程數*/  4 --        @MaxRegCount int=12/*每學年運行的最大注冊課程數*/  5 BEGIN  6     /*1 臨時表:#TemPReg用于中間的數據*/  7     if   object_id('tempdb..#TempReg')   is   not   null   8           BEGIN  9             drop   table   #TempReg 10           END 11     SELECT * INTO #TempReg FROM CourseRegist where 1=2 12      13     INSERT INTO #TempReg(StuNO,SyID,CourseID) 14     SELECT Student.StuNO, 15             SchoolYear.SyID, 16             Course.CourseID 17     FROM Student 18     CROSS JOIN SchoolYear 19     CROSS JOIN Course; 20      21     /*2 刪除掉非法的數據*/ 22     DELETE  #TempReg from #TempReg T1 23         WHERE EXISTS 24         ( 25             SELECT * FROM  26             ( 27                 /*這些記錄都是不合法的記錄*/ 28                 SELECT T.CRID, /*成績表ID*/ 29                 T.StuNO,/*學號*/ 30                 Student.StuJoinYear,/*入學年份*/ 31                 SchoolYear.SyStartYear,/*學年開始年份*/ 32                 SchoolYear.SyEndYear /*學年結束年份*/ 33         FROM #TempReg T 34         LEFT JOIN Student on Student.StuNO=T.StuNO 35         LEFT JOIN SchoolYear ON SchoolYear.SyID=T.SyID 36         where Student.StuJoinYear>SchoolYear.SyStartYear /*入學年份大于學年開始年份*/ 37                 OR SchoolYear.SyStartYear>YEAR(GETDATE())/*該學年還沒有到*/ 38                 /*該學年還沒有過完。新學年從本年的9月1號到第二年的6月30號*/ 39                 OR(GETDATE() BETWEEN  40                              CONVERT(datetime,convert(varchar(4),SchoolYear.SyStartYear)+'-09-01') 41                              AND  42                              CONVERT(datetime,convert(varchar(4),SchoolYear.SyEndYear)+'-06-30') 43                    ) 44                 OR SchoolYear.SyStartYear>=Student.StuJoinYear+3/*學生入學年限已到了3年,即已畢業了*/ 45             ) T2  46             WHERE T2.CRID=T1.CRID 47         ); 48          49     /*3 隨機刪除注冊信息:之所以做這一步是因為并非每個學生都注冊所有的課程*/ 50     DECLARE @SyID int, 51             @StuNO NVARCHAR(12), 52             @topNum int,/*隨機取出的課程數量*/ 53             @DeleteSql varchar(2000) /*用于隨機刪除的語句*/ 54     /*第一個游標CUR_SY:用于取學年ID*/ 55     DECLARE CUR_SY CURSOR FOR SELECT SyID FROM SchoolYear 56     open CUR_SY 57     fetch next from CUR_SY into @SyID 58      59     while (@@fetch_status=0) 60         BEGIN 61             /*第二個游標CUR_STU:用于取學生表編號*/ 62             DECLARE CUR_StuNO CURSOR FOR SELECT StuNO FROM Student 63             open CUR_StuNO 64             fetch next from CUR_StuNO into @StuNO 65              66             while(@@fetch_status=0) 67                 begin 68                     IF EXISTS(SELECT 1 FROM #TempReg WHERE StuNo=@StuNO and Syid=@SyID) 69                         BEGIN 70                             /*隨機刪除注冊課程*/ 71                             select @topNum=cast(ceiling(rand() * (SELECT COUNT(1) FROM Course)) as int) 72                             SET @DeleteSql=N'DELETE #TempReg ' 73                                        +N' WHERE StuNo='''+@StuNO 74                                        +''' and Syid='+convert(varchar(2),@SyID) 75                                        +' AND CourseID not IN (SELECT TOP '+convert(varchar(2),@topNum)+' CourseID FROM Course ORDER BY NEWID())' 76                             exec (@DeleteSql) 77                         END 78                     fetch next from CUR_StuNO into @StuNO 79                 end 80             close CUR_StuNO 81             deallocate CUR_StuNO 82              83             fetch next from CUR_SY into @SyID 84         END 85     close CUR_SY 86     deallocate CUR_SY 87      88     /*4 把處理好的臨時表信息放到物理表中*/ 89     Merge into CourseRegist CR 90         using  91         ( 92             select StuNO, 93                     SyID, 94                     CourseID 95             from #TempReg 96         ) T 97         ON CR.StuNO=T.StuNO 98             AND CR.SyID=T.SyID 99             AND CR.CourseID=T.CourseID100         WHEN NOT MATCHED THEN INSERT (StuNO,SyID,CourseID) VALUES(T.StuNO,T.SyID,T.CourseID);101 END

3 成績數據

 1 /*三 模擬成績*/ 2  3 /*模擬成績要注意: 4 1 成績都是隨機生成的,使用floor(rand()*100) 5 2 當前假設學生經歷3個學年需要畢業,所以只能在3個學年有成績。 6   如入學年份2012年,則只能在2012-2013學年,2013-2014學年,2014-2015學年有成績 7   但當前2014-2015學年還沒有過完,所以2014-2015學年亦沒有成績 8 3 該表中的學號、課程ID、學年ID來自于CourseRegist表 9 */10 Merge into Score USING11 (12     SELECT StuNO,13         SyID,14         CourseID,15         CASE 16         /*超過一百分則使用100分減去40范圍之內的隨機數,保證分數在60至100之間*/17         WHEN ScoreValue>=100 THEN 100-cast(ceiling(rand(checksum(newid()))*40) as int)    18         ELSE ScoreValue19         END AS ScoreValue20     FROM21     (22         /*組合最初的數據*/    23         SELECT StuNO,SyID,CourseID,24                 /*之所以隨機數乘以500,是為了避免有過多的不及格的分數*/25                cast(ceiling(rand(checksum(newid()))*500) as int) AS ScoreValue,26                /*KeepFlag:保留標記位。*/27                cast(ceiling(rand(checksum(newid()))*10) as int) AS KeepFlag    28         FROM CourseRegist29     ) A where KeepFlag>1    /*保留十分之九的數據*/30 ) B31 ON Score.StuNO=B.StuNO 32     AND Score.SyID=B.SyID 33     AND Score.CourseID=B.CourseID 34 WHEN NOT MATCHED T
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩亚洲欧美中文高清在线| 亚洲国产97在线精品一区| 国色天香2019中文字幕在线观看| 97视频在线观看免费高清完整版在线观看| 国产91在线播放九色快色| 亚洲精品一区在线观看香蕉| 欧美另类在线观看| 精品福利在线视频| 久久91亚洲精品中文字幕奶水| 91精品国产乱码久久久久久蜜臀| 国产日本欧美一区二区三区在线| 国产亚洲欧洲高清| 欧美高清激情视频| 激情久久av一区av二区av三区| 欧美日韩一二三四五区| 久久99热精品| 欧美极品在线播放| 欧美日韩xxx| 国产精品欧美久久久| 国产男女猛烈无遮挡91| 日韩视频在线一区| 色诱女教师一区二区三区| 日韩一区二区三区xxxx| 国产精品成人免费电影| 97精品久久久中文字幕免费| 国产一区二区三区欧美| 95av在线视频| 91在线观看免费高清| 精品国产乱码久久久久久虫虫漫画| 日韩美女视频中文字幕| 在线视频国产日韩| 成人免费黄色网| 亚洲a∨日韩av高清在线观看| 亚洲第一区在线观看| 91精品国产高清自在线| 精品久久久久久久久久久久久久| 亚洲欧美日韩视频一区| 亚洲综合中文字幕68页| 中文字幕免费精品一区高清| 欧美壮男野外gaytube| 日本道色综合久久影院| 丝袜美腿精品国产二区| 亚洲天堂成人在线| 日韩的一区二区| 久久久久亚洲精品| 欧美高清视频在线播放| 久久国产色av| 国产精品h在线观看| 日本精品久久久久影院| 国产亚洲一区精品| 人妖精品videosex性欧美| 欧美裸身视频免费观看| 亚洲伦理中文字幕| 欧美激情亚洲视频| 亚洲精美色品网站| 欧美亚洲成人精品| 91久久夜色精品国产网站| 在线成人中文字幕| 国产成人91久久精品| 亚洲国产精品va在线看黑人动漫| 国产91久久婷婷一区二区| 精品一区二区三区四区在线| 久久精品影视伊人网| 97国产一区二区精品久久呦| 国产精品视频一| 91久久在线播放| 91麻豆国产语对白在线观看| 日韩av免费观影| 国产亚洲欧洲黄色| 欧美国产日韩一区二区| 日韩在线免费观看视频| 国产精品第100页| 国产97色在线|日韩| 亚洲国产日韩欧美在线动漫| 国产成人精品午夜| 亚洲成人久久久| 日韩在线观看免费高清| 欧美性猛交xxxx免费看久久久| 91av在线不卡| 久青草国产97香蕉在线视频| 欧美激情视频在线观看| 亚洲一区久久久| 日韩欧美高清视频| 国产精品福利观看| 日韩成人中文字幕| 理论片在线不卡免费观看| 国产精品99久久久久久www| 欧美激情综合亚洲一二区| 亚洲精品资源在线| 色偷偷av一区二区三区乱| 欧美成人精品三级在线观看| 中文字幕亚洲精品| 欧美激情图片区| 久久久综合免费视频| 欧美理论电影在线观看| 在线观看日韩www视频免费| 久久免费精品日本久久中文字幕| 欧美高清视频在线播放| 国产成人精品视频在线观看| 日韩毛片中文字幕| 日韩电影中文字幕一区| 人体精品一二三区| 97国产真实伦对白精彩视频8| 国产高清视频一区三区| 成人在线国产精品| 日韩av在线精品| 精品国产一区二区三区久久| 久久久精品视频成人| 91在线网站视频| 欧美激情视频在线观看| 亚洲精品久久久久| 欧美特级www| 日韩大陆毛片av| 国产精品私拍pans大尺度在线| 97av在线播放| 日韩电影免费观看在线| 大荫蒂欧美视频另类xxxx| 日韩在线观看精品| 日韩国产精品一区| 亚洲天堂开心观看| 亚洲欧美中文字幕在线一区| 中文字幕亚洲欧美日韩高清| 亚洲的天堂在线中文字幕| 日韩中文字幕在线免费观看| 九九久久综合网站| 青草青草久热精品视频在线网站| 久久久久久高潮国产精品视| 欧美www在线| 91精品国产777在线观看| 亚洲国语精品自产拍在线观看| 久久久免费观看| 日韩一区视频在线| 日韩成人激情影院| 久久成人亚洲精品| 欧美精品在线免费| 伊人久久久久久久久久| 国产在线999| 午夜精品一区二区三区在线播放| 欧美一区二区大胆人体摄影专业网站| 日韩成人在线播放| 久久久视频免费观看| 黄色成人av在线| 久久夜色精品国产| 精品国产一区二区三区久久久狼| 日韩精品视频中文在线观看| 亚洲成人av资源网| 亚洲精品suv精品一区二区| 欧美在线精品免播放器视频| 57pao成人国产永久免费| 91高清免费视频| 欧美性感美女h网站在线观看免费| 久久久久亚洲精品国产| 国产欧美亚洲视频| 欧美老女人性视频| 欧美日韩国产成人在线观看| 91高潮在线观看| 91深夜福利视频| 精品久久久久久久久国产字幕| 亚洲欧美激情视频| 国产精品久久久久久av福利软件| 亚洲精品自拍偷拍| 日韩视频中文字幕| 亚洲欧美日本另类| 欧美性高潮床叫视频|