MySQL小练习(仅适合初学者,非初学者勿进)

🍊个人主页:个人主页
🍍​ 系列专栏:MySQL数据库

因为没有答案,我也不知道对不对,如果有大佬发现错误,请指出来。

 题目:

  1. 查询各位学生的学号、班级和姓名
  2. 查询课程的全部信息
  3. 查询数据库中有哪些专业班级
  4. 查询学时大于60的课程信息
  5. 查询出生在1986年出生的学生的学号、姓名和出生日期
  6. 查询三次作业成绩都在80分以上的学号、课程号
  7. 查询姓张的学生的学号、姓名和专业班级
  8. 查询05级的男生信息
  9. 查询没有作业成绩的学号和课程号 

  10. 查询学号为0538的学生的作业1总分

  11. 查询选修了K001课程的学生人数 

  12. 查询数据库中共有多少个班级

  13. 查询选修三门以上(含3门)课程的学生的学号和作业1平均分,作业2平均分,作业3 平均分

 

 

如果小伙伴们是0基础 也没关系,看看下面这篇博客  然后再来做题。

 2022最新MySQL基础(奋笔疾书4w字 只为博君看两眼)_一个热爱编程的小白白的博客-CSDN博客

1.创建数据库

create database  if not exists  db2 ;

 

好了创建成功 ,然后我们打开控制台 

2.创建表

1.创建学生表

分析:

学号:字符型

姓名:字符型

性别:字符型 性别是一个字 所以 varchar(1)

专业班级:字符型

出生日期:时间类型 date 

联系电话:字符型    电话号码11位  varchar(11)即可。

drop table if exists student;
create table student
(
    id     varchar(10) comment '学号',
    name   varchar(10) NOT NULL comment '姓名',
    gender char(1) comment '性别',
    class  varchar(20) comment '专业班级',
    date   date comment '出生日期',
    iphone varchar(11) comment '联系电话'
)
    comment '学生表';

select * from student;

2.创建课程表

drop table if exists student_course;
create table student_course
(
    course_id     varchar(10)  comment '课程号',
    course_name   varchar(15) comment '课程名',
    course_number double unsigned comment '学分数',
    student_time  int unsigned comment '学时数',
    teacher       varchar(10) comment '任课教师'
)
    comment '课程表';
select *
from student_course;

3.学生作业表

drop table if exists student_homework;
create table student_homework
(
    course_id  varchar(10) comment '课程号',
    id      varchar(10)    comment '学号',
    homework_1 int comment '作业1成绩',
    homework_2 int comment '作业2成绩',
    homework_3 int comment '作业3成绩'

)
    comment '学生作业表';
select *
from student_homework;

3.添加数据

照着图片上的数据一个个打出来的,呜呜呜

 1.学生表

insert into student
values ('0433', '张艳', '女', '生物04', '1986-9-13', null),
       ('0496', '李越', '男', '电子04', '1984-2-23', '1381290xxxx'),
       ('0529', '赵欣', '男', '会计05', '1984-1-27', '1350222xxxx'),
       ('0531', '张志国', '男', '生物05', '1986-9-10', '1331256xxxx'),
       ('0538', '于兰兰', '女', '生物05', '1984-2-20', '1331200xxxx'),
       ('0591', '王丽丽', '女', '电子05', '1984-3-20', '1332080xxxx'),
       ('0592', '王海强', '男', '电子05', '1986-11-1', null);

 查询一下:

select * from student;

2.课程表

INSERT INTO student_course
values ('K001', '计算机图形学', 2.5, 40, '胡晶晶'),
       ('K002', '计算机应用基础', 3, 48, '任泉'),
       ('K006', '数据结构', 4, 64, '马跃先'),
       ('M001', '政治经济学', 4, 64, '孔繁新'),
       ('S001', '高等数学', 3, 48, '赵晓尘');

查询一下:

select *
from student_course;

3.学生作业表

insert into student_homework values
('K001','0433',60,75,75),
('K001','0529',70,70,60),
('K001','0531',70,80,80),
('K001','0591',80,90,90),
('K002','0496',80,80,90),
('K002','0529',70,70,85),
('K002','0531',80,80,80),
('K002','0538',65,75,85),
('K002','0592',75,85,85),
('K006','0531',80,80,90),
('K006','0591',80,80,80),
('M001','0496',70,70,80),
('M001','0591',65,75,75),
('S001','0531',80,80,80),
('S001','0538',60,null,80);

查询一下:

select *
from student_homework;

4.开始做题

1.查询各位学生的学号、班级和姓名

select id,class,name from student;

2.查询课程的全部信息

select *
from student_course;

3.查询数据库中有哪些专业班级

select  class from student;

 4.查询学时大于60的课程信息

select course_id,course_name from student_course where student_time>60;

 

 5.查询出生在1986年出生的学生的学号、姓名和出生日期

select id,name,date from student where date>=('1986-1-1') AND date<('1987-1-1');

 

 6.查询三次作业成绩都在80分以上的学号、课程号

 一开始我是用这个查询了一遍:

select * from student_homework where homework_1>80 and homework_2>80 and homework_3>80;

发现啥也没有,于是我看了一下数据 发现满足三次作业成绩都在80分以上的 没有这种数据

故此题目:“查询三次作业成绩都在80分以上的学号、课程号” 应该包括80分

于是,我修改一下:

select * from student_homework where homework_1>=80 and homework_2>=80 and homework_3>=80;

7.查询姓张的学生的学号、姓名和专业班级

 错误示范:

由于几百年没写SQL了, 我竟然写成(给自己一巴掌):

select id,name,class from  student where name = '张%';

select id,name,class from  student where name like '张%';

 

 

 8.查询05级的男生信息

select * from student where class like '%05' and gender='男';

9.查询没有作业成绩的学号和课程号 

select id,course_id from student_homework where homework_1 is null or homework_2 is null or homework_3 is null ;

 

 10.查询学号为0538的学生的作业1总分

select sum(homework_1) '总分' from student_homework where id='0538';

11.查询选修了K001课程的学生人数 

select count(*) from student_homework where course_id='K001';

12.查询数据库中共有多少个班级

select count(*) from student where class is not null ;

13.查询选修三门以上(含3门)课程的学生的学号和作业1平均分,作业2平均分,作业3 平均分

select student.id, avg(homework_1), avg(homework_2), avg(homework_3)
from student
         left join student_homework on student.id = student_homework.id
group by student.id
having count(course_id) >= 3;

 

  • 104
    点赞
  • 248
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 60
    评论
1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载体验!下载完使用问题请私信沟通。 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 【资源说明】 课程大作业项目-基于c语言的学生成绩管理系统+项目说明.zip 一个使用 C 语言开发的课程设计项目,旨在提供一个全面的学生成绩管理解决方案。该系统支持以下核心功能: 1. 学生信息录入:管理员可以通过系统录入学生的基本信息,包括学号、姓名、年龄和成绩。 2. 打印学生信息:管理员可以录入学生的成绩,并支持将学生成绩打印成绩单,以便于查阅和分发给学生和家长。 3. 信息保存与读取:系统支持将学生信息和成绩数据保存到文件中,以便在需要时进行读取和导入,确保数据的长期保存和可持续使用。 4. 学生信息统计:系统能够对学生人数进行统计,并提供相应的报告或摘要信息,包括总学生人数。 5. 学生信息查找:管理员可以通过学号或姓名等关键字进行学生信息的快速查找,便于定位和管理特定学生的信息。 6. 学生信息修改与删除:管理员可以对学生的信息进行修改和更新,包括姓名、年龄等字段,也可以删除学生的信息,以实现数据的准确性和及时性。 7. 退出信息:系统提供清晰的退出选项,使管理员可以安全地退出系统,确保数据的完整性和安全性。 学生成绩管理系统的设计旨在简化学生信息和成绩管理的流程,提供高效、可靠的数据管理和操作功能。通过支持录入、打印、保存、读取、统计学生人数、查找、修改、删除学生信息和退出信息等功能,该系统能够满足学校、教育机构或教师对学生成绩管理的需求,提升管理效率和数据可视化分析能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 60
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱编程的小白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值