25-在线考试系统数据库-班级学生信息数据操作(四)

简介: 25-在线考试系统数据库-班级学生信息数据操作(四)

25-在线考试系统数据库-班级学生信息数据操作(四)

项目描述

伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的“在线考试系统”也得到了当今远程教育研究者的关注,考试是考察学生对所学习知识的接受和理解程度的重要手段,无纸化的考卷,考试的随时性,随地性,这些特点都是研究并开发网络考试系统主要的原因,网络考试系统远远超越了传统考试固定时间,固定地点的考试模式的限制,将给学生和老师带来极大的便利。本项目操作在线考试系统数据库中的班级信息表和学生信息表的操作。

在线考试系统数据库操作要求如下:

1)数据库StudDB。

2)班级信息表K_ClassInfo,表结构如表J2-25-1所示。

表J2-25-1 K_ClassInfo表

字段名 字段说明 数据类型 允许为空 备注
ClassID 班级ID int 主键(自增1)
ClassCode 班级编号 字符(20)
ClassName 班级名称 字符(50)
ClassRemke 班级说明 字符(50)

3)学生信息表K_UserInfo,表结构如表J2-25-2 所示。

表J2-25-2 K_UserInfo表

字段名 字段说明 数据类型 允许为空 备注
UserID 用户ID int 主键(自增1)
UserName 用户名 字符(20)
UserPass 用户密码 字符(50)
UserRealName 用户姓名 字符(20)
ClassID 班级ID 整型 外键
UserSex 性别 字符(5)
UserTel 电话 字符(15)
UserMobile 手机 字符(12)
UserEmail 电子邮箱 字符(100)

4)表K_ClassInfo基础数据如表J2-25-3所示。

表J2-25-3 K_ClassInfo表基础数据

ClassID ClassCode ClassName ClassRemke
1 01 软件15一班 软件专业15级一班
2 02 软件15二班 软件专业15级二班
3 03 网络14一班 网络专业14级一班

5)表K_UserInfo基础数据如表J2-25-4所示。

表J2-25-4 K_UserInfo表基础数据

UserID UserName UserPass User RealName ClassID UserSex UserTel User Mobile User Email
1 Samon 123 山姆 1
2 Tom 123 汤姆 2
3 Scv 123 刘海 3

(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-25-1、表J2-25-2结构创建数据库表,并设主键、外键。

CREATE TABLE K_ClassInfo(
    ClassID INT NOT NULL PRIMARY KEY,
    ClassCode NVARCHAR(20),
    ClassName NVARCHAR(50),
    ClassRemke NVARCHAR(50),
)
CREATE TABLE K_UserInfo(
    UserID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    UserName NVARCHAR(20),
    UserPass NVARCHAR(50),
    UserRealName NVARCHAR(20),
    ClassID INT NOT NULL,
    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-25-3、J2-25-4中的数据插入班级信息表K_ClassInfo和学生信息表K_UserInfo中。

2)查找“汤姆”所在班的班级名称。

3)统计“软件专业”的学生人数。

4)删除“除软件、网络专业”以外的所有学生信息。

INSERT INTO K_ClassInfo VALUES(1,'01','软件15一班','软件专业15级一班'),(2,'02','软件15二班','软件专业15级二班'),(3,'03','网络14一班','网络专业14级一班')


INSERT INTO K_UserInfo VALUES('Samon','123','山姆',1,'男',NULL,NULL,NULL),('Tom','123','汤姆',2,'男',NULL,NULL,NULL),('Scv','123','刘海',3,'男',NULL,NULL,NULL)

SELECT ClassName FROM K_ClassInfo WHERE ClassID=(SELECT ClassID FROM K_UserInfo WHERE UserRealName='汤姆')

SELECT COUNT(*) FROM K_UserInfo WHERE ClassID IN (SELECT ClassID FROM K_ClassInfo WHERE ClassName LIKE '%软件%')

DELETE FROM K_UserInfo WHERE ClassID NOT IN (SELECT ClassID FROM K_ClassInfo WHERE ClassName LIKE '%软件%' OR ClassName LIKE '%网络%')
相关文章
|
2月前
|
存储 监控 数据处理
flink 向doris 数据库写入数据时出现背压如何排查?
本文介绍了如何确定和解决Flink任务向Doris数据库写入数据时遇到的背压问题。首先通过Flink Web UI和性能指标监控识别背压,然后从Doris数据库性能、网络连接稳定性、Flink任务数据处理逻辑及资源配置等方面排查原因,并通过分析相关日志进一步定位问题。
197 61
|
6天前
|
SQL 存储 运维
从建模到运维:联犀如何完美融入时序数据库 TDengine 实现物联网数据流畅管理
本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品。文章从一个具体的业务场景出发,分析了企业在面对海量时序数据时的挑战,并提出了利用 TDengine 高效处理和存储数据的方法,帮助企业解决在数据采集、存储、分析等方面的痛点。通过这篇文章,作者不仅展示了自己对数据处理技术的理解,还进一步阐释了时序数据库在行业中的潜力与应用价值,为读者提供了很多实际的操作思路和技术选型的参考。
19 1
|
11天前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
14天前
|
前端开发 JavaScript 数据库
获取数据库中字段的数据作为下拉框选项
获取数据库中字段的数据作为下拉框选项
44 5
|
2月前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
15天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
39 3
|
15天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
42 3
|
15天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
57 2
|
28天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
190 15
|
22天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。

热门文章

最新文章