55-学生选课系统数据库-成绩信息数据操作
项目描述
随着信息技术的不断发展,几乎所有高校都在进行信息化建设,越来越多的学校提供基础课程之外的选修课。因此,需要开发一套学生选课系统对整个过程进行统一管理,涉及学生基础信息、课程信息、教师信息、选课信息、评价管理等。本项目就是实现学生选课系统数据库中评价管理表的相关介绍和数据操作。
学生选课系统的数据库操作要求如下:
1)数据库XSXKXTDB。
2)评价管理表PJB,表结构如表J2-55-1所示。
表J2-55-1 PJB表结构
字段名 | 字段说明 | 数据类型 | 允许为空 | 备注 |
---|---|---|---|---|
PJid | 评价编号 | 整型 | 否 | 主键、自增 |
PJstu | 评价学生编号 | 字符(10) | 否 | 外键 |
PJkc | 评价课程编号 | 字符(6) | 否 | 外键 |
PJscore | 评价成绩 | 整型 | 否 | 默认值0 |
PJtext | 评价内容 | 字符(400) | 是 | |
PJbz | 评价备注 | 字符(200) | 是 |
3)PJkc字段对应课程信息表中的课程编号,PJstu字段对应学生信息表中的学生编号。
4)PJB表中基础数据,如表J2-55-2所示。
表J2-55-2 PJB表基础数据
PJid | PJstu | PJkc | PJscore | PJtext | PJbz |
---|---|---|---|---|---|
1 | 2013010101 | 100001 | 90 | 老师上课认真负责,对每项内容都进行细致的讲解 | |
2 | 2013010101 | 100002 | 80 | ||
3 | 2013010202 | 100003 | 85 | 课堂中气氛很活跃,学习到了很多知识,效果较好 | |
4 | 2013010203 | 100001 | 75 |
(1)任务描述
任务1:用SQL语言创建学生选课系统数据库XSXKXTDB
1)判断系统中是否有XSXKXTDB名字的数据库,如果有则删除;如果没有则创建数据库XSXKXTDB。
2)主数据库文件初始值10MB,最大40MB,按5MB进行递增。
3)日志文件初始值为3MB,最大为20MB,自动增长。
IF DB_ID('XSXKXTDB') IS NOT NULL DROP DATABASE XSXKXTDB
GO
CREATE DATABASE XSXKXTDB
ON PRIMARY
(
NAME=XSXKXTDB,
FILENAME='D:\xxxx\XSXKXTDB.mdf',
SIZE=10MB,
MAXSIZE=40MB,
FILEGROWTH=5MB
)
LOG ON
(
NAME=XSXKXTDB_log,
FILENAME='D:\xxxx\XSXKXTDB_log.ldf',
SIZE=3MB,
MAXSIZE=20MB
)
任务2:用SQL语言创建评价管理表PJB
1)按照提供的表J2-55-1结构创建数据库表,并设主键。
CREATE TABLE PJB
(
PJid INT NOT NULL PRIMARY KEY IDENTITY(1,1),
PJstu NVARCHAR(10) NOT NULL,
PJkc NVARCHAR(6) NOT NULL,
PJscore INT NOT NULL Default 0,
PJtext NVARCHAR(400),
PJbz NVARCHAR(200),
FOREIGN KEY(PJstu) REFERENCES XSB(Xid),
FOREIGN KEY(PJkc) REFERENCES KCB(Kid),
)
任务3:用SQL语言对评价管理表PJB进行操作
1)查找出学号为“2013010101”的评价信息。
2)查询出课程“100001”的平均评价分。
3)将课程所有课程为“100003”的评价分值都减10分。
4)删除课程编号为“100003”的评价记录。
INSERT INTO PJB
VALUES
('2013010101','100001',90,'老师上课认真负责,对每项内容都进行细致的讲解',NULL),
('2013010101','100002',80,NULL,NULL),
('2013010202','100003',85,'课堂中气氛很活跃,学习到了很多知识,效果较好',NULL),
('2013010203','100001',75,NULL,NULL)
SELECT * FROM PJB WHERE PJstu='2013010101'
SELECT SUM(PJscore)/COUNT(*) FROM PJB WHERE PJkc='100001'
UPDATE PJB SET PJscore=PJscore-10 WHERE PJkc='100003'
DELETE FROM PJB WHERE PJkc='100003'