iis服务器助手广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 案例-教学管理信息系统
  • 253
分享到

MySQL 案例-教学管理信息系统

mysql数据库 2023-12-25 12:12:29 253人浏览 泡泡鱼
摘要

Mysql 案例-教学管理信息系统 一、数据库设计及创建二、向表中插入数据、修改数据三、完成以下查询设计及SQL代码四、完成如下数据库应用设计 一、数据库设计及创建 对教学管理信息系统,在需求分析阶段,收集到以下信息。 学生的信

一、数据库设计及创建

对教学管理信息系统,在需求分析阶段,收集到以下信息。
学生的信息:学生的学号、姓名、性别、出生日期、电话(11位)、所在学院、年级、籍贯、民族;学院的信息:学院名称、地址、办公室电话(格式为4位区号-8位电话号码)、联系人、学院简介、所在校区(呈贡/东陆);课程信息:课程号、课程名称、开课学期、周学时、学分、课程性质(选修/必修)、上课教师。此外还有每个学生选修课程的成绩信息。

  • 需求:(1)根据以上信息,请各个同学独立设计一个教学管理数据库,用于存储学生信息、课程信息、学生选课信息及学生所在的学院信息。请用表格的方式,列出你所设计的数据库中各表的字段名,含义,数据类型,宽度。要求:数据库名称、表名称及字段名称均用英文字符定义。

以下为需求(1)解决方案

数据库:StudentScoreDB

字段名含义数据类型宽度
studentNo学号字符型10
name姓名字符型20
gender性别字符型2
birthday出生日期日期型——
telnumber电话(11位)字符型11
college所在学院字符型50
grade年级字符型6
place籍贯字符型20
natiom民族字符型30

学院信息表:CollegeTb

字段名含义数据类型宽度
college学院名称字符型40
address地址字符型50
telnumber办公室电话(格式为4位区号-8位电话号码)字符型13
contacts联系人字符型20
introduction学院简介字符型50
campus所在校区(呈贡/东陆)字符型4

课程信息表:CourseTb

字段名含义数据类型宽度
courseNo课程号字符型6
courseName课程名称字符型40
term开课学期字符型5
weekNumber周学时数值型——
credit学分数值型——
courseType课程性质(选修/必修)字符型5
teacher上课教师字符型20

选课信息表:ScoreTb

字段名含义数据类型宽度
studentNo学号字符型10
courseNo课程号字符型6
term开课学期字符型5
score成绩数值型——
  • 需求(2)请写出创建数据库的sql语句代码。要求指定字符集为简体中文,指定字符集的校对规则,使数据库能够处理中文。

方案:
创建数据库:StudentScoreDB

create database if not exists StudentScoreDB default character set GB2312 default collate GB2312_chinese_ci;show databases;use StudentScoreDB;
  • 需求(3)请写出创建数据库中各表的SQL语句代码。要求以下5点:
    ①为表定义字段,字段名称用英文字符,为字段选择合适的数据类型(宽度)。
    ②为各表定义合适的主键约束。
    ③为表定义合适的外键,并定义参照完整性约束。
    ④为存储课程信息的表设计一个合理的用户自定义约束。
    ⑤设置存储学生信息的表的学院字段的默认值为你所在的学院。

方案:
创建学生信息表:StudentTb

create table StudentTb (studentNo    char(10)  primary key  comment '学号', name  varchar(20)   not null  comment '姓名',gender char(2)  not null check(gender in ('男','女'))  comment '性别', birthday  date  comment '出生日期',telnumber char(11)   comment '电话',college  varchar(50)  default '工商管理与旅游管理'  comment '所在学院',grade  char(6)  comment '年级',place varchar(20) comment '籍贯',natiom  varchar(30) default '汉'  comment '民族') ;

创建学院信息表:CollegeTb

create table CollegeTb (college varchar(40)   primary key  comment '学院名称', address  varchar(50)   comment '地址',telnumber  char(13)  comment '办公室电话',contacts  varchar(20)    comment '联系人', introduction  varchar(50)  comment '学院简介', campus  char(4) check(campus in ('呈贡','东陆')) comment '所在校区') ;

创建课程信息表:CourseTb

create table CourseTb (courseNo  char(6)  primary key   comment '课程号',courseName   varchar(40)  not null comment '课程名称',term  char(5)  comment '开课学期',weekNumber  tinyint  comment '周学时',credit  tinyint  comment '学分',courseType   char(4)  check(courseType in ('选修', '必修'))  comment '课程性质',  teacher   varchar(20)    comment '上课教师');

创建选课信息表:ScoreTb

create table ScoreTb (studentNo   char(10)  not null   comment '学号',courseNo   char(6) not null  comment '课程号',term   char(5)  comment '开课学期',score float check(score>=0  and score<=100) comment '成绩',constraint PK_student foreign key (studentNo)  references StudentTb(studentNo),constraint PK_course   foreign key (courseNo)   references CourseTb(courseNo)) ;show tables;

上面代码最后一行show tables;为查看该数据库中所有表格。

二、向表中插入数据、修改数据

根据前面设计的数据库和表,向表中插入数据。

  • 需求(1)向存储学生信息的表中插入你自己的信息。并设计至少三条记录,插入到存储学生信息的表中。请写出代码。

方案:

show columns from StudentTb;insert into  StudentTb  values('2018110101', '张晓勇', '男', '1997-12-11', '15736411111',  '信息学院', '2018级','北京','汉'),('2017110102', '赵婷婷', '女', '1996-11-17',  '13624722222',  '信息学院', '2017级', '上海', '汉'),('2022110103', '王一敏', '女', '2000-01-02',  '18875033333', '新闻学院', '2022级','云南','苗'),('2022110104', '李明',    '男', '2001-06-21',  '19925644444', '建规学院', '2022级','贵州','维吾尔'),('2022040231', '白浩云 ', '男', '2003-08-01',   '13848655555', '工商管理与旅游管理 ', '2022级','云南','傈僳' );select * from StudentTb;
  • 需求:(2)请自定义两条以上的记录信息,一次性插入到存储课程信息的表中,要求只插入两个字段的值,并且其中一门课程为“mysql数据库程序设计”,请写出代码。

方案:

show columns from CourseTb;insert into  CourseTb(courseNo, courseName)  values('202201' ,'MySQL数据库程序设计'),('202202' ,'python程序设计'),('202203' ,'Java程序设计'),('202204' ,'PHP程序设计'),('202205' ,'html网页设计');select * from CourseTb;
  • 需求(3)请自定义两条以上的记录信息,一次性插入所有字段到存储学院信息的表中。要求其中一个学院为你所在的学院,并设计其中某字段的值空缺。请写出代码。

方案:

show columns from CollegeTb;insert into  CollegeTb(college,address, telnumber, introduction, campus)  values('信息学院', '云大呈贡1号','1111-11111111','信息与技术学院简介:...','呈贡'),('工商管理与旅游管理学院', '云大呈贡2号','2222-22222222','工商管理与旅游管理简介:...','呈贡'),('新闻学院', '云大呈贡3号','3333-33333333','新闻与传播学院简介:...','呈贡'),('文学学院', '云大东陆1号','4444-44444444','文学学院简介:....','东陆'),('建规学院', '云大呈贡1号','5555-55555555','建设与规划学院简介:....','呈贡');select * from CollegeTb;

假定前面设计的数据库各表中已存储了数据。

  • 需求(4)假定学院信息已存储在相应表中,若要将你所在的学院的联系人修改为你自己。请写出修改代码。

方案:

update CollegeTb set contacts='白浩云' where college='工商管理与旅游管理学院';select * from CollegeTb;
  • 需求:(5)若要将你的“MySQL数据库程序设计”这门课程的成绩提高5分。请写出代码。

方案:

insert into  ScoreTb  values('2018110101','202201', '20222',70),('2017110102','202201', '20222',80),('2022110103','202201', '20222',65),('2022110104','202204', '20222',88),('2021110105','202202', '20222',78);select * from ScoreTb;update  ScoreTb set score = score + 5 where courseNo=(select courseNo from CourseTb where courseName='MySQL数据库程序设计');select * from ScoreTb;

三、完成以下查询设计及SQL代码

假定前面设计的数据库各表中已存储了数据。

  • 需求(1)请设计一个带AND和OR的多条件查询,并将查询结果排序(降序),只要求输出前10条记录。写出所设计的查询要求,并写出代码。

答:order by排序列尽可能的选择数值,更具有实际意义。
方案:

select  studentNo,name, gender, birthday from StudentTb where grade= '2017级'  or  natiom='汉'  and gender='男'   order by studentNo desc limit 10;
  • 需求:(2)请设计一个分组聚合的查询,要求分组后进行计算,并采用合适的方式输出计算结果。写出所设计的查询要求,并写出代码。

答:所设计的查询要求:select、from、where、group by、having、order by、limit 以上语法顺序是不能前后互换的,否则报错。比如我们不能在 group by 之后添加 where 查询语句,否则会出现错误。

方案:

select avg(score), count(score)  from ScoreTb group by  courseNo;
  • 需求:(3)请设计一个涉及三张表的连接查询。写出所设计的查询要求并分析设计的查询思路,最后写出SQL代码。

答:查询期末分数在80分以上的学生姓名以及课程名称和分数;
思路:从选课信息表出发,设置连接条件,学号连接到学生信息表。课程号连接到课程信息表。

方案:

select  s.name, c.courseName, e.score  from ScoreTb as e, CourseTb as c, StudentTb as swhere e.score>=80  and e.studentNo=s.studentNo and e.courseNo=c.courseNo;
  • 需求:(4)如果要在数据库中查找所有比你所在的学院的所有同学年龄小的同学,该如何设计查询,请写出代码。

方案:

select * from StudentTb  where  datediff(CURDATE(),birthday) <= datediff(CURDATE(),(select birthday from StudentTb where studentNo='2021110105' ))  and  college in (select college from StudentTb where studentNo='2021110105' );
  • 需求:(5)在数据库中基于存储学院信息的表创建一个查询,要求查找与你所在的学院在同一个校区的所有学院信息。写出代码。

方案:

select * from  CollegeTb  where campus in (select campus from CollegeTb where college= (select college from StudentTb where studentNo='2021110105'));

四、完成如下数据库应用设计

假定前面设计的数据库各表中已存储了数据,完成以下要求。

  • 需求:(1)在存储学院信息的表上创建一个普通索引,索引字段自选,要求创建基于字段值前三个字符建立降序索引。写出代码。

方案:

create index  index_college on CollegeTb(college(3) DESC);show index from CollegeTb;
  • 需求:(2)在数据库中基于存储学院信息的表创建一个视图,名称自拟,要求该视图包含所有呈贡校区的学院信息,并且保证今后对该视图数据的修改都有必须符合校区为“呈贡”这个条件。请写创建视图的代码。

方案:

create or replace  view v_College AS select  *  from CollegeTb where  campus='呈贡' with check option;show create view v_College;
  • 需求:(3)将所有选修了课程的同学的课程及成绩信息定义为一个视图,名称自定,然后从该视图中检索选修了“MySQL数据库程序设计”这门课程的学生信息。请写出完成要求的SQL语句。

方案:

create or replace  view v_ScoreTb(studentNo ,name ,courseName, score)AS select  s.studentNo, s.name,   c.courseName, e.score  from StudentTb as s, CourseTb as c, ScoreTb as e where  e.studentNo=s.studentNo;show create view v_ScoreTb;select * from v_ScoreTb where  courseName='MySQL数据库程序设计';
  • 需求:(4)基于存储课程信息的表创建一个触发器,要求每次从该表删除一行数据时,将删除的数据存入另一张表中(假定表已存在,表结构和存储课程信息的表相同)。

方案:

create table trigger_CourseTb (courseNo  char(6)  primary key   comment '课程号',courseName   varchar(40)  not null comment '课程名称',term  char(5)  comment '开课学期',weekNumber  tinyint  comment '周学时',credit  tinyint  comment '学分',courseType   char(4)  check(courseType in ('选修', '必修'))  comment '课程性质',  teacher   varchar(20)    comment '上课教师');delimiter $$ create trigger trigger_coursebefore delete on CourseTbfor each rowbegininsert into trigger_CourseTbselect * from CourseTbwhere courseNo=old.courseNo;end;$$

用ER图可以更方便的展示数据库结构,请自行了解。

来源地址:https://blog.csdn.net/AdamCY888/article/details/129466366

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 案例-教学管理信息系统

本文链接: https://www.lsjlt.com/news/551772.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL 案例-教学管理信息系统
    MySQL 案例-教学管理信息系统 一、数据库设计及创建二、向表中插入数据、修改数据三、完成以下查询设计及SQL代码四、完成如下数据库应用设计 一、数据库设计及创建 对教学管理信息系统,在需求分析阶段,收集到以下信息。 学生的信...
    99+
    2023-12-25
    mysql 数据库
  • 学生信息管理系统(JAVA+MYSQL)
    基于Java swing+MySQL实现学生信息管理系统:功能:1录入学生基本信息的功能; 2查询学生基本信息的功能; 3修改学生基本信息的功能 ;4删除学生基本信息的功能 ;5显示所有学生信息的功能;应付一般课设足矣,分享给大家。 通过百...
    99+
    2023-09-26
    java idea mysql
  • mysql练习-学生信息管理系统
    文章目录 学生信息管理系统一、分析1.1业务分析1.2分析系统1.2.1登录模块1.2.2学生模块1.2.3教师模块1.2.4系统管理人员模块 二、构建模型2.1 概念模型:ERP模型2.2 数据模型:设计表格2.2....
    99+
    2023-12-23
    数据库 java mysql
  • 【JAVA】学生信息管理系统
    目录 前言 一、环境搭建 二、功能实现 1.学生信息类的创建 2.学生信息的添加功能 3.学生信息的删除功能 4.学生信息的修改功能  5.学生信息的查看功能  三、主类的调用 1.界面的搭建 2.学生端和教师端 3.系统和功能的选择 总...
    99+
    2023-09-09
    java
  • PHP+MYSQL【学生信息管理系统】(极简版)
    本次实验采用HBuilder+Xampp实现PHP+MYSQL代码编写 效果如下图所示       一、PHP程序编写 打开HBuider程序,新建文件夹login,文件目录如下: 新建login.html实现登录界面 ...
    99+
    2023-09-01
    php mysql 开发语言
  • Javaweb学生信息管理系统(Mysql+JSP+MVC+CSS)
    项目源码及数据库: 链接:https://pan.baidu.com/s/1ktUyxbOI9lljWr-HRTRIiQpwd=1024 提取码:1024   目录 一.项目介绍 二.运行效果 1.登录界面 2.主界面(点击学号修改学生信息...
    99+
    2023-10-26
    mvc java 开发语言
  • Python之学生信息管理系统
    目录 一、基础界面实现  1、主函数 2、保持循环,获取用户需求  二、函数实现模块功能 1、添加学生信息 2、删除学生信息  3、修改学生信息 4、查找全部学生信息 5、退出系统 三、整合代码 1、 完整代码 2、完整实现过程 实现 ...
    99+
    2023-08-31
    python
  • Java web学生信息管理系统(jsp)
    🥞目录 🍬1 概述 1.1课程设计目的 1.2预备知识 JAVAWeb: MySQL: JSP: 1.3实训的内容和要求 🍬2 需求分析 2.1系统目标 2.2功能分析: 2.3开发环境: ...
    99+
    2023-09-16
    java javascript html5 mysql intellij-idea
  • 学生信息管理系统的数据库设计MySQL
    学生信息管理系统的数据库设计 1.课程设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和...
    99+
    2023-10-23
    数据库 mysql
  • Python实现学生信息管理系统的示例代码
    目录前言正文一、新手小白的福利——零基础学生信息管理系统二、GUI界面化版本——Tkinter学生信息管理系统前言 夏天是用来告别的季...
    99+
    2023-02-15
    Python实现学生信息管理系统 Python学生信息管理系统 Python信息管理系统
  • JavaWeb实现学生信息管理系统(1)
    这是一个很简单的学生信息管理系统,会用到很多小知识,比如说: 数据库连接池 DBUtils JSP、EL、JSTL MVC设计模式 JavaWeb...
    99+
    2024-04-02
  • JavaWeb实现学生信息管理系统(2)
    本文接着上一篇,继续为大家分享了JavaWeb实现学生信息管理系统的第二篇,供大家参考,具体内容如下 今日任务:实现学生管理系统的查找和添加功能! 一、查询学生信息 1. index...
    99+
    2024-04-02
  • JavaScript+HTML实现学生信息管理系统
    目录一、前言二、效果图三、代码四、学生信息管理系统主界面一、前言 用数组来存储所有学生对象的信息,实现了双向更新,初始时(数组内的对象信息“填充界面”),后面的界面操作可以更新数组内...
    99+
    2024-04-02
  • java+sqlserver实现学生信息管理系统
    目录一.实现效果二.实现代码1.DBUtil.java2.操作程序test.java前提: 1.建立了与sqlserver数据库的连接(JTDS连接sqlserver数据库的包jtd...
    99+
    2024-04-02
  • 用python实现学生信息管理系统
    用Python实现学生信息管理系统,供大家参考,具体内容如下 系统功能有: 1.录入,查找,删除,修改学生信息2.学生成绩排名3.显示全部学生信息 代码如下: filename = ...
    99+
    2024-04-02
  • python tkinter实现学生信息管理系统
    本文实例为大家分享了python tkinter实现学生信息管理系统的具体代码,供大家参考,具体内容如下 初学python,代码写的比较繁杂,系统功能还有完善的空间 系统使用了mys...
    99+
    2024-04-02
  • JavaWeb实现学生信息管理系统(3)
    本文接着第二篇,继续为大家分享了JavaWeb实现学生信息管理系统,供大家参考,具体内容如下 今日任务:实现学生管理系统的删除、更新、修改和模糊查询功能! 一、删除学生信息 点击超链...
    99+
    2024-04-02
  • 基于JAVA的学生信息管理系统
    目录 前言 一、需求分析 二、开发环境、工具 1.开发语言 2.开发模式 三、系统需求分析 3.1系统的背景 3.2系统的功能需求 四、系统设计概要 4.1系统体系结构设计 4.2功能模块结构设计 五、数据库设计 1.学生信息数据表 2.班...
    99+
    2023-10-05
    java mysql eclipse 课程设计
  • C++实现教职工信息管理系统
    本文实例为大家分享了C++实现教职工信息管理系统的具体代码,供大家参考,具体内容如下 一.问题描述 一个小公司包含四类人员:经理,技术人员,销售人员和销售经理,各类人员的工资计算方法...
    99+
    2024-04-02
  • 第3章 学生管理系统案例
    1.1 学生管理系统案例需求 利用集合完成对学生的增删改查四个功能 1.2 学生管理系统案例实现1.2.1 创建学生类: 1.2.1.1 案例代码九: package com.itheima; public class ...
    99+
    2023-01-31
    管理系统 案例 学生
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作