
# 1)学生表(Student)
create table Student (
stuID char(6) primary key,
stuName varchar(50) not null,
stuSex char(2),
spec varchar(20) not null
)
# 2)课程表(Course)
create table Course (
couID int primary key,
couName varchar(50) not null,
credit float not null
)
# 3)成绩表(Score)
create table Score (
stuID char(6),
couID int,
score int default 0
)
# 二、向三张表中分别插入如下数据
# 1)学生表
insert into student (stuID, stuName, spec) values (10001, "李珍珍", "英语")
insert into student (stuID, stuName, stuSex, spec) values (10002, "蔡准", "男", "计算机")
# 2)课程表
insert into course values (1, "数据库原理与应用", 4.5)
# 3)成绩表
insert into score values (10001, 1, 90)
insert into score values (10002, 1, 0)
# 三、将学号是100001的学生的性别改成“女“
update student
set stuSex = "女"
where stuID = 10001
# 四、删除学生“蔡准“的”数据库原理与应用“的成绩
delete from score
where stuID = (select stuID
from student
where stuName = "蔡准")
and
couID = (select couID
from course
where couName = "数据库原理与应用")
# 五、删除没有被学生参加过考试的课程
delete from course
where couID not in (select couID
from score
group by couID)
# 查询“英语”专业学生的信息,包括学号,姓名,性别,并按照学号升序排列;
select *
from student
where spec = "英语"
order by stuID asc
# 七、查询所有学生的所有信息:学号、姓名、性别、专业,课程名,成绩
select
student.*,
course.couName,
score.score
from student
left join score on student.stuID = score.stuID
left join course on score.couID = course.couID
# 八、查询数据库原理与应用课,成绩前三名的学生的学号、姓名、分数
select
score.stuID,
student.stuName,
score.score
from score
left join student on score.stuID = student.stuID
left join course on score.couID = course.couID
where course.couName = "数据库原理与应用"
order by score.score desc
limit 3
# 九、查询每个专业学生的数量;
select
spec,
count(stuID)
from student
group by spec
# 十、定义“英语”专业学生所学课程的信息视图v_English,包括学号、姓名、课程号和分数。
create view v_English as (
select
student.stuID,
student.stuName,
score.couID,
score.score
from student
left join score on student.stuID = score.stuID
where student.spec = "英语"
)
# 十一、创建存储过程,查询成绩在85分以上的学生的总人数
delimiter $$
create procedure count_score_gt_85()
begin
select count(distinct stuID)
from score
where score > 85
end$$
delimiter
# 十二、创建触发器,当删除一门课程时,把对应的成绩表中的数据也删掉
delimiter $$
create trigger tri_course_deleted
after delete
on course
for each row
begin
delete from score
where couID = old.couID
end$$
delimiter
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)