22-在线考试系统数据库-班级学生信息数据操作(一)
项目描述
伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的“在线考试系统”也得到了当今远程教育研究者的关注,考试是考察学生对所学习知识的接受和理解程度的重要手段,无纸化的考卷,考试的随时性,随地性,这些特点都是研究并开发网络考试系统主要的原因,网络考试系统远远超越了传统考试固定时间,固定地点的考试模式的限制,将给学生和老师带来极大的便利。本项目操作在线考试系统数据库中的班级信息表和学生信息表的操作。
在线考试系统数据库操作要求如下:
1)数据库StudDB。
2)班级信息表K_ClassInfo,表结构如表J2-22-1所示。
表J2-22-1 K_ClassInfo表
字段名 | 字段说明 | 数据类型 | 允许为空 | 备注 |
---|---|---|---|---|
ClassID | 班级ID | 整型 | 否 | 主键 |
ClassCode | 班级编号 | 字符(20) | 是 | |
ClassName | 班级名称 | 字符(50) | 是 |
3)学生信息表K_UserInfo,表结构如表J2-22-2 所示。
表J2-22-2 K_UserInfo表
字段名 | 字段说明 | 数据类型 | 允许为空 | 备注 |
---|---|---|---|---|
UserID | 用户ID | 整型 | 否 | 主键 |
UserName | 用户名 | 字符(20) | 是 | |
UserPass | 用户密码 | 字符(50) | 是 | |
UserRealName | 用户姓名 | 字符(20) | 是 | |
ClassID | 班级ID | 整型 | 是 | 外键 |
UserSex | 性别 | 字符(5) | 是 | |
UserTel | 电话 | 字符(15) | 是 | |
UserMobile | 手机 | 字符(12) | 是 | |
UserEmail | 电子邮箱 | 字符(100) | 是 |
4)表K_ClassInfo基础数据如表J2-22-3所示。
表J2-22-3 K_ClassInfo表基础数据
ClassID | ClassCode | ClassName |
---|---|---|
1 | 01 | 班级一 |
2 | 02 | 班级二 |
3 | 03 | 班级三 |
5)表K_UserInfo基础数据如表J2-22-4所示。
表J2-22-4 K_UserInfo表基础数据
UserID | UserName | UserPass | User RealName | ClassID | UserSex | UserTel | User Mobile | User Email |
---|---|---|---|---|---|---|---|---|
1 | Samon | 123 | 山姆 | 1 | 男 | |||
2 | Tom | 123 | 汤姆 | 1 | 男 | |||
3 | Scv | 123 | 刘海 | 2 | 男 |
(1)任务描述
任务1: 用SQL语言创建在线考试系统数据库
1)创建数据库StudDB,判断系统中是否有该名字的数据库,如果有则删除;如果没有则创建该数据库。
2)主数据库文件初始值10MB,无限,按15%进行递增。
3)日志文件初始值为5MB,最大为10MB,按1MB进行递增。
IF DB_ID('StudDB') IS NOT NULL DROP DATABASE StudDB
GO
CREATE DATABASE StudDB
ON PRIMARY
(
NAME=StudDB,
FILENAME='D:\xxxx\StudDB.mdf',
SIZE=10MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=15%
)
LOG ON
(
NAME=StudDB_log,
FILENAME='D:\xxxx\StudDB_log.ldf',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=1MB
)
任务2: 用SQL语言创建班级信息表K_ClassInfo
1)按照提供的表J2-22-1、表J2-22-2结构创建数据库表,并设主键。
CREATE TABLE K_ClassInfo(
ClassID INT NOT NULL PRIMARY KEY,
ClassCode NVARCHAR(20),
ClassName NVARCHAR(50),
)
CREATE TABLE K_UserInfo(
UserID INT NOT NULL PRIMARY KEY,
UserName NVARCHAR(20),
UserPass NVARCHAR(50),
UserRealName NVARCHAR(20),
ClassID INT,
UserSex NVARCHAR(5),
UserTel NVARCHAR(15),
UserMobile NVARCHAR(12),
UserEmail NVARCHAR(100),
FOREIGN KEY (ClassID) REFERENCES K_ClassInfo(ClassID),
)
任务3: 用SQL语言对班级信息表K_ClassInfo进行操作
1)将表J2-22-3、J2-22-4中的数据插入班级信息表K_ClassInfo和学生信息表K_UserInfo中。
2)显示“班级二”中的学生名册。
3)统计“班级一”中的人数。
4)删除“班级三”和班中学生信息。
INSERT INTO K_ClassInfo VALUES(1,'01','班级一'),(2,'02','班级二'),(3,'03','班级三')
INSERT INTO K_UserInfo VALUES(1,'Samon','123','山姆',1,'男',NULL,NULL,NULL),(2,'Tom','123','汤姆',1,'男',NULL,NULL,NULL),(3,'Scv','123','刘海',2,'男',NULL,NULL,NULL)
SELECT * FROM K_UserInfo WHERE ClassID=(SELECT ClassID FROM K_ClassInfo WHERE ClassName='班级二')
SELECT COUNT(*) FROM K_UserInfo WHERE ClassID=(SELECT ClassID FROM K_ClassInfo WHERE ClassName='班级一')
DELETE FROM K_UserInfo WHERE ClassID=(SELECT ClassID FROM K_ClassInfo WHERE ClassName='班级三')
DELETE FROM K_ClassInfo WHERE ClassName='班级三'