数据库-MySQL 实战项目——学生选课系统数据库筹划与实现(附源码) ...

打印 上一主题 下一主题

主题 834|帖子 834|积分 2502

一、媒介

        该项目非常适当MySQL入门学习的小同伴,博主提供了源码、数据和一些查询语句,供大家学习和参考,代码和表筹划有什么不适当还请各位大佬多多辅导。
所需环境


  •  MySQL可视化工具:navicat;
  •  数据库:MySql 5.7/8.0等版本均可;
需求: 

     学生选课系统重要完成某学校教务系统中选课功能:

  • 学生信息管理
  • 西席信息管理
  • 课程信息管理
  • 课堂信息管理
  • 选课管理 
备注:


  • 每个学生可选多门课程,每门课程有多个学生。
  • 每位西席教授一门课程。
  • 每个班级有多个学生,每个学生对应一个班级。
        此中:
                学生包罗以下属性:学号、学生姓名、学生性别。
                西席包罗以下属性:教工号、西席姓名、西席职称。
                课程包罗以下属性:课程号、课程名、课程学分。
                课堂包罗以下属性:班级编号、学生人数、班级名称。
                选课包罗以下属性:学生成绩。
二、E-R图


三、关系模式

 课程(课程号、课程名、课程学分、教工号)
西席(教工号、西席姓名、西席职称)
选课(课程号学号、成绩)
学生(学号、学生姓名、学生性别、班级编号)
班级(班级编号、学生人数、班级名称)
 备注:
        下划线为主键,红色字为外键;
四、数据表的筹划

表1:课程

字段
数据类型
长度
备注
 
课程号
varchar
50
主键
 
课程名
varchar
50
Not.null
 
课程学分
int
3
 
 
教工号
varchar
50
外键
 
 表2:西席

字段
数据类型
长度
备注
 
教工号
varchar
50
主键
 
西席姓名
varchar
50
Not.null
 
西席职称
varchar
50
 
 
 表3:学生

字段
数据类型
长度
备注
 
学号
varchar
50
主键
 
学生姓名
varchar
50
Not.null
 
学生性别
varchar
50
 
 
班级编号
varchar
50
外键
 
表4:班级

字段
数据类型
长度
备注
 
班级编号
varchar
50
主键
 
班级名称
varchar
50
Not.null
 
学生数量
int
5
 
 
表5:选课

字段
数据类型
长度
备注
 
学号
varchar
50
主键
 
课程号
varchar
50
主键
 
成绩
int
5
Not.null
 
五、创建数据库 

  1. Create database 学生选课系统 character set utf8 collate utf8_general_ci
  2. -- 在新建查询选择前选择数据库
  3. use 学生选课系统  
复制代码
 创建各实体表:

1. 老师

  1. create table 老师
  2. (
  3. 教工号 varchar(50) primary key,
  4. 教师姓名 varchar(50) not null,
  5. 教师职称 varchar(50)
  6. )
复制代码
2. 班级

  1. create table 班级
  2. (
  3. 班级编号 varchar(50) primary key,
  4. 班级名称 varchar(50) not null,
  5. 学生数量 int(5)
  6. )
复制代码
3. 课程

  1. create table 课程
  2. (
  3. 课程号 varchar(50) PRIMARY key,
  4. 课程名 varchar(50) not null,
  5. 课程学分 int(3),
  6. 教工号 char(5),
  7. CONSTRAINT FK教工号 FOREIGN KEY (教工号) REFERENCES 老师(教工号)
  8. )
复制代码
4. 学生

  1. create table 学生
  2. (
  3. 学号 varchar(50) PRIMARY key,
  4. 学生姓名 varchar(50) not null,
  5. 学生性别 varchar(50),
  6. 班级编号 varchar(50),
  7. CONSTRAINT FK 班级编号 FOREIGN KEY (班级编号) REFERENCES 班级(班级编号)
  8. )
复制代码
5. 选课

  1. create table 选课
  2. (
  3. 学号 varchar(50),
  4. 课程号 varchar(50),
  5. 成绩 int(5) not null,
  6. PRIMARY KEY(学号, 课程号)
  7. )
复制代码
插入数据:

1. 老师 

  1. INSERT INTO 老师 VALUES ('J001','wuping','教授');
  2. INSERT INTO 老师 VALUES ('J002','zhangshuai','讲师');
  3. INSERT INTO 老师 VALUES ('J003','liguoqiang','副教授');
  4. INSERT INTO 老师 VALUES ('J004','wangni','讲师');
  5. INSERT INTO 老师 VALUES ('J005','liubo','讲师');
复制代码
2. 班级 

  1. INSERT INTO 班级 VALUES ('B001','软件1班','30');
  2. INSERT INTO 班级 VALUES ('B002','软件2班','29');
  3. INSERT INTO 班级 VALUES ('B003','软件3班','31');
  4. INSERT INTO 班级 VALUES ('B004','嵌入式1班','32');
  5. INSERT INTO 班级 VALUES ('B005','嵌入式2班','33');
  6. INSERT INTO 班级 VALUES ('B006','嵌入式3班','30');
复制代码
3. 课程 

  1. INSERT INTO 课程 VALUES ('K001','数据库','4','J002');
  2. INSERT INTO 课程 VALUES ('K002','java','4','J003');
  3. INSERT INTO 课程 VALUES ('K003','python','6','J001');
  4. INSERT INTO 课程 VALUES ('K004','英语','2','J005');
  5. INSERT INTO 课程 VALUES ('K005','数学','8','J004');
复制代码
4. 学生 

  1. INSERT INTO 学生 VALUES ('X005','zhangsan','男','B002');
  2. INSERT INTO 学生 VALUES ('X004','lisi','女','B003');
  3. INSERT INTO 学生 VALUES ('X003','wangwu','男','B004');
  4. INSERT INTO 学生 VALUES ('X002','liuyu','男','B005');
  5. INSERT INTO 学生 VALUES ('X001','chenqi','男','B001');
  6. INSERT INTO 学生 VALUES ('X006','wangxin','女','B001');
  7. INSERT INTO 学生 VALUES ('X007','yangli','男','B002');
  8. INSERT INTO 学生 VALUES ('X008','qinyan','女','B006');
复制代码
5. 选课 

  1. INSERT INTO 选课 VALUES ('X001','K002','82');
  2. INSERT INTO 选课 VALUES ('X001','K003','78');
  3. INSERT INTO 选课 VALUES ('X002','K005','90');
  4. INSERT INTO 选课 VALUES ('X002','K003','74');
  5. INSERT INTO 选课 VALUES ('X003','K001','66');
  6. INSERT INTO 选课 VALUES ('X003','K002','75');
  7. INSERT INTO 选课 VALUES ('X004','K005','95');
  8. INSERT INTO 选课 VALUES ('X004','K004','83');
  9. INSERT INTO 选课 VALUES ('X005','K001','75');
  10. INSERT INTO 选课 VALUES ('X005','K004','87');
  11. INSERT INTO 选课 VALUES ('X007','K001','79');
复制代码
六、底子查询命令

   1. 查看xxx表所有信息:

     select * from xxxx  *表示全部,查看xxx的全部数据
  1. select * from 老师
复制代码

    2. 查询表的某个或多个字段:

    select field1,field2…… from tablenname(表名)
  1. select 学号,学生姓名 from 学生
复制代码

    3. 查询满足条件的信息:

    and满足所有条件。or满足此中任何一个条件就可以
  1. select * from 学生 where 学生性别 ='男' and 班级编号 ='B002' and 学生姓名 = 'yangli'
复制代码
    4. 区间查询:

    从选课中选取分数在80~90的(可取端点)
  1. select * from 选课 where 成绩 between 80 and 90
复制代码

    5. 暗昧查询: 

    在选课中查询分数以9开头的信息,%9%是查询信息中含有9的。%表示暗昧数据
  1. select * from 选课 where 成绩 like '9%'
复制代码

     6. count()统计函数:

    从学生表格中统计B002班的有几个
  1. select count(*) from 学生 where 班级编号 ='B002'
复制代码

    7. sum()求和函数 :

    从选课表格中计算分数和。
  1. select sum(成绩) from 选课
复制代码

    8. avg()平均函数:

     求所有学生的平均成绩。
  1. select avg(成绩) from 选课
复制代码

    9. max()最大函数 :

    从选课表格中查询课程号K003课的最高分。
  1. select max(成绩) from 选课 where 课程号 ='K003'
复制代码

    10. min()最小值函数:

    从选课表格中查询课程号K003课的最低分
  1. select min(成绩) from 选课 where 课程号 ='K003'
复制代码

  七、答疑解惑 

        代码有标题或需要其他的查询语句,都可以随时评论留言或联系博主。
        还多请各位小同伴多多点赞支持,你们的支持是我最大的动力。
博主V:18884281851

谢谢各位的支持~~

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

玛卡巴卡的卡巴卡玛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表