mysql学习第二天作业

题目
在这里插入图片描述
要求1:根据上图创建数据库 & 表结构并录入数据
create table class(
cid int not null primary key auto_increment,
caption varchar(20) not null
)default charset=utf8;

desc class;
在这里插入图片描述

insert into class
values
(1, ‘三年二班’),
(null, ‘一年三班’),
(null, ‘三年一班’);

select * from class;
在这里插入图片描述

create table student(
sid int not null primary key auto_increment,
sname varchar(5) not null,
gender char(1) not null,
class_id int not null
)default charset=utf8;

desc student;
在这里插入图片描述

insert into student
values
(1, ‘钢蛋’, ‘女’, 1),
(null, ‘铁锤’, ‘女’, 1),
(null, ‘山炮’, ‘男’, 2);

select * from student;
在这里插入图片描述

create table teachar(
tid int not null primary key auto_increment,
tname varchar(5) not null
)default charset=utf8;

desc teachar;
在这里插入图片描述

insert into teachar
values
(1, ‘菠萝’),
(null, ‘苍空’),
(null, ‘饭局’);

select * from teachar;
在这里插入图片描述

create table course(
cid int not null primary key auto_increment,
cname varchar(5) not null,
teachar_id int not null
)default charset=utf8;

desc course;
在这里插入图片描述

insert into course
values
(1, ‘生物’, 1),
(null, ‘体育’, 1),
(null, ‘物理’, 2);

select * from course;
在这里插入图片描述

create table score(
sid int not null,
student_id int not null,
course_id int not null,
number int not null
)default charset=utf8;

desc score;
在这里插入图片描述

insert into score
values
(1, 1, 1, 60),
(2, 1, 2, 59),
(3, 2, 2, 100);

select * from score;
在这里插入图片描述
要求二:创建用户luffy并赋予此数据库的所有权限

要求三:查询姓“李”的老师的个数
select count(*) as count from teachar where tname like ‘李%’;
在这里插入图片描述

要求四:查询姓“张”的学生名单
select * from student where sname like ‘张%’;
在这里插入图片描述
要求五:查询男、女生的人数
笨方法
select count() as num from student where gender=‘男’;
select count(
) as num from student where gender=‘女’;
在这里插入图片描述

select gender,count(*) as num from student group by gender;
在这里插入图片描述

要求六:查询同名同姓学生名单,并统计同名人数
在学生表插入一行数据
在这里插入图片描述
有重名意味着分组后大于1
select * from student where sname in
(select sname from student
group by sname having count() > 1);
在这里插入图片描述统计同名人数
select sname, count(
) as num from student group by sname having count(*) > 1;
在这里插入图片描述

要求七:查询“三年二班”的所有学生
select * from student where class_id in (select cid from class where caption = ‘三年二班’);
在这里插入图片描述

要求八:查询每个班级的班级名称、班级人数
select caption, count(*)
from
student left join class on student.class_id = class.cid
group by student.class_id;
在这里插入图片描述有一个问题是class表共有三个班,第三个班应该显示0个,却不显示,为什么呀?

要求九:查询成绩小于60分的同学的学号、姓名、成绩、课程名称
select student.sid, sname, number, cname from
score left join student on score.student_id = student.sid
left join course on score.course_id = course.cid
where score.number < 60;
在这里插入图片描述

要求十:查询选修了“生物课”的所有学生ID、学生姓名、成绩

select student.sid, sname, number from
score left join student on score.student_id = student.sid
left join course on score.course_id = course.cid
where course.cname = ‘生物’;
在这里插入图片描述

要求十一:查询选修了“生物课”且分数低于60的所有学生ID、学生姓名、成绩
select student.sid, sname, number from
score left join student on score.student_id = student.sid
left join course on score.course_id = course.cid
where course.cname = ‘生物’ and score.number < 60;
在这里插入图片描述

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值