日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

阶段项目:学生信息管理系统数据库设计

發(fā)布時間:2025/3/15 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阶段项目:学生信息管理系统数据库设计 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • 問題描述:
  • 一、后臺數(shù)據(jù)庫的設(shè)計
    • 1)設(shè)計數(shù)據(jù)庫
    • 2)插入數(shù)據(jù)
    • 3)查詢數(shù)據(jù)
    • 4)修改數(shù)據(jù)
    • 5)管理數(shù)據(jù)
      • 1.導(dǎo)出數(shù)據(jù)到各種異構(gòu)數(shù)據(jù)源、導(dǎo)出腳本
      • 2.附加和分離數(shù)據(jù)庫
  • 二、前端界面的開發(fā)(后期我們可以用dNet開發(fā))
  • 總結(jié)

問題描述:

? ? ? ?上海某高校擬開發(fā)一套高校信息管理系統(tǒng),該系統(tǒng)包括學(xué)生檔案管理、學(xué)生成績管理、教員信息管理、教務(wù)排課等模塊,實現(xiàn)學(xué)生檔案錄入、修改、查詢,成績錄入、修改、查詢,教務(wù)排課管理等功能。
? ? ? ?開發(fā)此模塊涉及兩大部分:后臺數(shù)據(jù)庫的設(shè)計、前端界面的開發(fā)

一、后臺數(shù)據(jù)庫的設(shè)計

? ? ? ?為了簡化起見,我們暫討論“學(xué)生成績管理”子模塊,該模塊具有成績輸入,成績查詢,名次排序,分數(shù)統(tǒng)計等功能。
? ? ? ? 現(xiàn)要求對“學(xué)生成績管理”子模塊進行數(shù)據(jù)庫的設(shè)計并實現(xiàn),數(shù)據(jù)庫保存在:E\MyApp目錄下,文件增長率為10% 。

1)設(shè)計數(shù)據(jù)庫

use master if exists(select * from sysdatabases where name='student_manage') --判斷student_manage庫是否存在,若存在則先刪除drop database student_managecreate database student_manage --創(chuàng)建數(shù)據(jù)庫student_manage on primary ( name='student_manage', filename='E\MyApp\student_manage.mdf', size=3, filegrowth=10% ) log on ( name='student_manage_log', filename='E\MyApp\student_manage.ldf', size=2, filegrowth=10% )--創(chuàng)建學(xué)生信息表 use student_manage create table stuInfo(stuName varchar(10) not null, stuNo varchar(20) not null, stuSex varchar(5) not null, stuAge int not null, stuSeat int not null, stuAddress text null )--創(chuàng)建學(xué)生成績表 create table stuMarks(examNo varchar(15) not null, stuNo varchar(20) not null, writtenExam int null, labExam int null ) --創(chuàng)建約束 alter table stuInfo add constraint pk_stuName primary key(stuName) alter table stuInfo add constraint ck_stuNo check (stuNo like 's253[0-9][0-9]') alter table stuInfo add constraint ck_stuSex check (stuSex in ('男','女')) alter table stuInfo add constraint df_stuSex default '男' for stuSex alter table stuInfo add constraint ck_stuAge check (stuAge between 15 and 50) alter table stuInfo add constraint ck_stuSeat check (stuSeat between 0 and 30) alter table stuInfo add constraint df_stuAddress default '地址不詳' for stuAddressalter table stuMarks add constraint uq_examNo unique (examNo) alter table stuMarks add constraint ck_examNo check (examNo like 'E200507[0-9][0-9][0-9][0-9]') alter table stuMarks add constraint df_writtenExam default 0 for writtenExam alter table stuMarks add constraint ck_writtenExam check (writtenExam between 0 and 100) alter table stuMarks add constraint df_labExam default 0 for labExam alter table stuMarks add constraint ck_labExam check (labExam between 0 and 100)

2)插入數(shù)據(jù)

insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuSeat,stuAddress) values('張秋麗','s25301','男',18,2,'北京海淀') insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuSeat) values('李文才','s25302','男',31,5) insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuSeat,stuAddress) values('李斯文','s25303','女',22,3,'河南洛陽') insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuSeat,stuAddress) values('歐陽俊雄','s25304','男',28,7,'新疆克拉瑪依')insert into stuMarks(examNo,stuNo,writtenExam,labExam) values('E2005070001','s25301',80,58) insert into stuMarks(examNo,stuNo,writtenExam) values('E2005070002','s25302',50) insert into stuMarks(examNo,stuNo,writtenExam,labExam) values('E2005070003','s25303',97,82)

3)查詢數(shù)據(jù)

1.查詢兩表的數(shù)據(jù)

select*from stuInfo select*from stuMarks

2.查詢男學(xué)員名單

select *from stuInfo where stuSex='男'

3.查詢筆試成績優(yōu)秀的學(xué)員情況(成績在75~100之間)

Select stuName,stuInfo.stuNo,stuSex,stuAge,stuSeat,stuAddress,examNo,writtenExam,labExam from stuInfo join stuMarks on stuInfo.stuNo=stuMarks.stuNo where writtenExam between 75 and 100

4.查詢參加本次考試的學(xué)員成績,包括學(xué)員姓名,筆試成績,機試成績

select stuName,writtenExam,labExam from stuInfo join stuMarks on stuInfo.stuNo=stuMarks.stuNo

5.統(tǒng)計筆試考試平均分和機試考試平均分

select avg(writtenExam)as '筆試平均分',avg(labExam)as'機試平均分' from stuMarks

6.統(tǒng)計參加本次考試的學(xué)員人數(shù)

select count(examNo)as'參加考試人數(shù)' from stuMarks

7.查詢沒有通過考試的人數(shù)(筆試或機試小于60分)

select count(examNo)as'未通過考試人數(shù)' from stuMarks where writtenExam<60 or labExam<60

8.查詢學(xué)員成績,顯示學(xué)號,筆試成績,機試成績,平均分

select stuNo,writtenExam,labExam,(writtenExam+labExam)/2as avgExam from stuMarks

9.排名次(按平均分從高到低排序),顯示學(xué)號、平均分

select stuNo,(writtenExam+labExam)/2as avgExam from stuMarks order by avgExam desc

10.排名次(按平均分從高到低排序),顯示姓名,筆試成績,機試成績,平均分

select stuName,writtenExam,labExam,(writtenExam+labExam)/2as avgExam from stuInfo join stuMarks on stuInfo.stuNo=stuMarks.stuNo order by avgExam desc

11.根據(jù)平均分,顯示前兩名信息,包括姓名、筆試成績、機試成績、平均分

select top 2 stuName,writtenExam,labExam,(writtenExam+labExam)/2as avgExam from stuInfo join stuMarks on stuInfo.stuNo=stuMarks.stuNo order by avgExam desc

4)修改數(shù)據(jù)

筆試成績都提5分

update stuMarks set writtenExam=writtenExam+5 select * from stuMarks

100分封頂(加分后超過100分的,按100分計算)

update stuMarks set writtenExam=100 where writtenExam>100

查看修改后的數(shù)據(jù)

select * from stuMarks

5)管理數(shù)據(jù)

1.導(dǎo)出數(shù)據(jù)到各種異構(gòu)數(shù)據(jù)源、導(dǎo)出腳本

1.1 在SQL Server數(shù)據(jù)庫之間進行數(shù)據(jù)導(dǎo)入導(dǎo)出

可以使用select into語句導(dǎo)出數(shù)據(jù):
? ? ? ? 在SQL Server中使用最廣泛的就是通過select into語句導(dǎo)出數(shù)據(jù),select into語句同時具備兩個功能:
? ? ? ?①根據(jù)select后跟的字段以及into后面跟的表名建立空表(如果select后是*, 空表的結(jié)構(gòu)和from所指的表的結(jié)構(gòu)相同);
? ? ? ? ②將select查出的數(shù)據(jù)插入到這個空表中。在使用select into語句時,into后跟的表必須在數(shù)據(jù)庫不存在,否則出錯。

還可以使用insert into 和 update插入和更新數(shù)據(jù)

1.2 使用opendatasource和openrowset在不同類型的數(shù)據(jù)庫之間導(dǎo)入導(dǎo)出數(shù)據(jù)
? ? ? ?在異構(gòu)的數(shù)據(jù)庫之間進行數(shù)據(jù)傳輸,可以使用SQL Server提供的兩個系統(tǒng)函數(shù)opendatasource和openrowset,其中opendatasource可以打開任何支持OLE DB的數(shù)據(jù)庫,并且可以將opendatasource做為select、updte、insert和delete后所跟的表名。

2.附加和分離數(shù)據(jù)庫

附加數(shù)據(jù)庫:
選中數(shù)據(jù)庫,然后鼠標(biāo)右擊,選擇【附加】

然后點【添加】,找到數(shù)據(jù)庫保存的路徑,然后確定即可

分離數(shù)據(jù)庫:
選中要分離的數(shù)據(jù)庫,鼠標(biāo)右擊

【任務(wù)】—【分離】

勾選要分離的數(shù)據(jù)庫,再確定即可

二、前端界面的開發(fā)(后期我們可以用dNet開發(fā))

略~~~

總結(jié)

通過本次項目案例練習(xí)了:
? ? ? ?在SQL Server Management Studio中進行常用的數(shù)據(jù)庫操作
? ? ? ?編寫SQL語句執(zhí)行增、刪、改、查操作
鞏固的知識:
? ? ? ?數(shù)據(jù)庫的常用操作:建庫、建表、加約束、建關(guān)系
? ? ? ?常用的約束類型:主鍵、外鍵、非空、默認值、檢查約束
? ? ? ?insert 語句: Insert into 表名(字段1,字段2,…) values (值1, 值2,…)
? ? ? ?update語句: Update 表名 set 字段=值 where …
? ? ? ?條件查詢:select …from 表名 where …
? ? ? ?排序:select …from 表名 order by …
? ? ? ?Top語句: select top 2….from 表名…
? ? ? ?統(tǒng)計函數(shù):select avg( …) as 平均分 ….
? ? ? ?選擇查詢: select ….where labExam between 70 and 90
? ? ? ?內(nèi)部連接:select …from 表1 inner jion 表2 …

總結(jié)

以上是生活随笔為你收集整理的阶段项目:学生信息管理系统数据库设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。