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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

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

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

目錄

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

問題描述:

? ? ? ?上海某高校擬開發一套高校信息管理系統,該系統包括學生檔案管理、學生成績管理、教員信息管理、教務排課等模塊,實現學生檔案錄入、修改、查詢,成績錄入、修改、查詢,教務排課管理等功能。
? ? ? ?開發此模塊涉及兩大部分:后臺數據庫的設計、前端界面的開發

一、后臺數據庫的設計

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

1)設計數據庫

use master if exists(select * from sysdatabases where name='student_manage') --判斷student_manage庫是否存在,若存在則先刪除drop database student_managecreate database student_manage --創建數據庫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% )--創建學生信息表 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 )--創建學生成績表 create table stuMarks(examNo varchar(15) not null, stuNo varchar(20) not null, writtenExam int null, labExam int null ) --創建約束 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)插入數據

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)查詢數據

1.查詢兩表的數據

select*from stuInfo select*from stuMarks

2.查詢男學員名單

select *from stuInfo where stuSex='男'

3.查詢筆試成績優秀的學員情況(成績在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.查詢參加本次考試的學員成績,包括學員姓名,筆試成績,機試成績

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

5.統計筆試考試平均分和機試考試平均分

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

6.統計參加本次考試的學員人數

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

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

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

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

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

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

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.根據平均分,顯示前兩名信息,包括姓名、筆試成績、機試成績、平均分

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

4)修改數據

筆試成績都提5分

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

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

update stuMarks set writtenExam=100 where writtenExam>100

查看修改后的數據

select * from stuMarks

5)管理數據

1.導出數據到各種異構數據源、導出腳本

1.1 在SQL Server數據庫之間進行數據導入導出

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

還可以使用insert into 和 update插入和更新數據

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

2.附加和分離數據庫

附加數據庫:
選中數據庫,然后鼠標右擊,選擇【附加】

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

分離數據庫:
選中要分離的數據庫,鼠標右擊

【任務】—【分離】

勾選要分離的數據庫,再確定即可

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

略~~~

總結

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。