问题:
1.创建一个班级表t_class,有班级c_id(主键)、班级名称c_name(非空、唯一)、课程名称c_curriculum
2.创建一个学生表t_stu,有学生s_id(主键)、学生姓名s_name(非空)、学生年龄s_age、学生所在班级编号class_id(外键)
3.向班级表中插入四条数据
班级编号 | 班级名称 | 课程名称 |
1 | zls19961 | 语文班 |
2 | zls19962 | 语文班 |
3 | zls19971 | 数学班 |
4 | zls19972 | 数学班 |
4.向学生表中插入数据
学生编号 | 学生姓名 | 学生年龄 | 学生所在班级编号 |
1 | 张三 | 20 | 1 |
2 | 李四 | 24 | 3 |
3 | 王五 | 35 | 2 |
4 | 赵六 | 28 | 4 |
5 | 刘七 | 32 | 1 |
6 | 郑八 | 25 | 2 |
7 | 路让 | 40 | 3 |
8 | 独孤 | 38 | 4 |
9 | 空明 | 25 | 4 |
10 | 太乙 | 18 | 2 |
5.统计每个班各有多少人
6.统计语文班一共多少人
7.统计数学班中年龄大于30岁的学生人数
8.删除语文班中姓刘的学生
解答:
1.创建一个班级表t_class,有班级c_id(主键)、班级名称c_name(非空、唯一)、课程名称c_curriculum
create table t_class
(
c_id int primary key,
c_name varchar(20) not null unique,
c_curriculum varchar(30)
)charset utf8;
2.创建一个学生表t_stu,有学生s_id(主键)、学生姓名s_name(非空)、学生年龄s_age、学生所在班级编号class_id(外键)
create table t_stu
(
s_id int primary key auto_increment,
s_name varchar(20) not null,
s_age int,
class_id int,
foreign key (class_id) references t_class (c_id)
)charset utf8;
3.向班级表中插入四条数据
班级编号 | 班级名称 | 课程名称 |
1 | zls19961 | 语文班 |
2 | zls19962 | 语文班 |
3 | zls19971 | 数学班 |
4 | zls19972 | 数学班 |
insert into t_class value(1,'zls19961','语文班');
insert into t_class value(2,'zls19962','语文班');
insert into t_class value(3,'zls19971','数学班');
insert into t_class value(4,'zls19972','数学班');
4.向学生表中插入数据
学生编号 | 学生姓名 | 学生年龄 | 学生所在班级编号 |
1 | 张三 | 20 | 1 |
2 | 李四 | 24 | 3 |
3 | 王五 | 35 | 2 |
4 | 赵六 | 28 | 4 |
5 | 刘七 | 32 | 1 |
6 | 郑八 | 25 | 2 |
7 | 路让 | 40 | 3 |
8 | 独孤 | 38 | 4 |
9 | 空明 | 25 | 4 |
10 | 太乙 | 18 | 2 |
insert into t_stu value(null,'张三','20','1');
insert into t_stu value(null,'李四','24','3');
insert into t_stu value(null,'王五','35','2');
insert into t_stu value(null,'赵六','28','4');
insert into t_stu value(null,'刘七','32','1');
insert into t_stu value(null,'郑八','25','2');
insert into t_stu value(null,'路让','40','3');
insert into t_stu value(null,'独孤','38','4');
insert into t_stu value(null,'空明','25','4');
insert into t_stu value(null,'太乙','18','2');
5.统计每个班各有多少人
select class_id,count(s_id) from t_stu group by class_id;
6.统计语文班一共多少人
select c_curriculum,count(s_id)
from t_stu inner join t_class on class_id=c_id
where c_curriculum='语文班';
7.统计数学班中年龄大于30岁的学生人数
select c_curriculum,count(s_id)
from t_stu inner join t_class on class_id=c_id
where s_age>30 and c_curriculum='数学班';
8.删除语文班中姓刘的学生
delete t_stu from t_stu inner join t_class on class_id=c_id
where s_name like '刘%' and c_curriculum='语文班';