MySQL小练习(仅适合初学者,非初学者勿进)
哈哈,这是我们老师布置的作业,我在想用不用发博客呢?
最后想了一下,还是发出来吧,虽然很简单,但是可以给那些刚学数据库的朋友来练习一下。因为没有答案,我也不知道对不对,如果有大佬发现错误,请指出来。
题目:
- 查询各位学生的学号、班级和姓名
- 查询课程的全部信息
- 查询数据库中有哪些专业班级
- 查询学时大于60的课程信息
- 查询出生在1986年出生的学生的学号、姓名和出生日期
- 查询三次作业成绩都在80分以上的学号、课程号
- 查询姓张的学生的学号、姓名和专业班级
- 查询05级的男生信息
查询没有作业成绩的学号和课程号
- 查询学号为0538的学生的作业1总分
- 查询选修了K001课程的学生人数
- 查询数据库中共有多少个班级
- 查询选修三门以上(含3门)课程的学生的学号和作业1平均分,作业2平均分,作业3 平均分
如果小伙伴们是0基础 也没关系,看看下面这篇博客 然后再来做题。
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 '' 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;
关键词:mysql database sql 数据库 java,mysql,练习,适合,初学,初学者,学者,勿进
相关推荐
Spark从集合、HDFS、HBase、Elasticsearch和MySQL中读取数据,创建RDD
【MySQL基础知识】MySQL数据库知识点梳理
mysql这就是视图
C语言编程练习(一)
MySQL小白入门 46条sql语句练习(学生表 教师表 课程表 分数表)
MySQL典型练习题答案
JS入门必备基础知识(适合小白)
AES 加密模式 填充方法 选择指南(适合新手)
网站模板建站和定制网站哪个更适合中小企业?
Java初学者知识点总结(二)`Java语言基础`
【初学者必备】c快速入门经典详细教程(零基础小白也可以分分钟学会)
C语言初学常识
python初学者笔记—关于 random 和 time 模块
python基础系统学习整理,自学者可以参考的不二笔记
数据库周排行榜
数据库月排行榜
1.MySQL小练习(仅适合初学者,非初学者勿进)
2.前端(jquery)后端(nodeJS) 数据库(mysql)实现云点餐
3.【网络攻防】常见的网络攻防技术——黑客攻防(通俗易懂版)
4.【MySQL数据库】2022年MySQL必知必会,基础内容与常见面试题
5.关于框架Mybatis------浅谈基础知识
6.Java用jdbc连接实现对MySQL增删改查操作
7.【SSM直击大厂】第十三章:MyBatis 详解
8.mysql必知必会读书笔记
9.JavaJavaWeb 连接数据库完成增删改查
10.MySQL八股文连环45问,你能坚持第几问?
11.JAVA实现QQ登录、注册等功能
12.<JDBC> 获取数据库连接的五种方式:你真的get到了吗?
13.mysql事务的理解学习, 面试不问索引原理就是事务原理
14.【微服务】(十六)—— 分布式事务Seata
15.MySQL高端局,不把这些吃透,谈什么优化?