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

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

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='班级三'
相关文章
|
1月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
1月前
|
存储 监控 数据处理
flink 向doris 数据库写入数据时出现背压如何排查?
本文介绍了如何确定和解决Flink任务向Doris数据库写入数据时遇到的背压问题。首先通过Flink Web UI和性能指标监控识别背压,然后从Doris数据库性能、网络连接稳定性、Flink任务数据处理逻辑及资源配置等方面排查原因,并通过分析相关日志进一步定位问题。
172 61
|
3天前
|
前端开发 JavaScript 数据库
获取数据库中字段的数据作为下拉框选项
获取数据库中字段的数据作为下拉框选项
28 5
|
1月前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
1月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
34 1
|
1月前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。
|
1月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
42 1
|
4天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
18 3
|
4天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
22 3
|
4天前
|
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`
28 2