MySQL的使用

三个表的编辑

use work
create table student(
sno varchar(7)primary key,
sname varchar(10) not null,
ssex varchar(4),
sage int,
sdept varchar(20)
)
create table course (
cno varchar(10) primary key ,
cname varchar(20) not null ,
ccredit int ,
semster int ,
period int)
create table sc(
sno varchar(7),
cno varchar(7),
grade int check(grade>=0 and grade<=100))
alter table sc add (xklb varchar(4));
alter table sc modify column xklb varchar(6)
alter table course drop period
insert into student value (9512101,'李勇','男',19,'计算机系');
insert into student value (9512102,'刘晨','男',20,'计算机系');
insert into student value (9512103,'王敏','女',20,'计算机系');
insert into student value (9521101,'张立','男',22,'信息系');
insert into student value (9521102,'吴宾','女',21,'信息系');
insert into student value (9521103,'张海','男',20,'信息系');
insert into student value (9531101,'钱小平','女',18,'数学系');
insert into student value (9531102,'王大力','男',19,'数学系');
insert into course value ('c01','计算机文化学',3,1);
insert into course value ('c02','VB',2,3);
insert into course value ('c03','计算机网络',4,7);
insert into course value ('c04','数据库基础',6,6);
insert into course value ('c05','高等数学',8,2);
insert into course value ('c06','数据结构',5,4);
insert into sc value ('9512101','c01',90,'必修');
insert into sc value ('9512101','c02',86,'选修');
insert into sc value ('9512101','c06',NULL,'必修');
insert into sc value ('9512102','c02',78,'选修');
insert into sc value ('9512102','c04',66,'必修');
insert into sc value ('9521102','c01',82,'选修');
insert into sc value ('9521102','c02',75,'选修');
insert into sc value ('9521102','c04',92,'必修');
insert into sc value ('9521102','c05',50,'必修');
insert into sc value ('9521103','c02',68,'选修');
insert into sc value ('9521103','c06',null,'必修');
insert into sc value ('9531101','c01',80,'选修');
insert into sc value ('9531101','c05',95,'必修');
insert into sc value ('9531102','c05',85,'必修');

 

 

题6: 查询全体学生的学号与姓名。

select sname,sno from student

题7: 查询全体学生的姓名,学号和所在系。

select sname,sno,sdept from student

题8: 查询全体学生的记录。

select * from student

题9: 查询全体学生的姓名及其出生年份。

select sname,sage from student

题11: 在选课表(SC)中查询有哪些学生选修了课程,并列出学生的学号。

select  distinct sno from sc 

题12: 查询计算机系全体学生的姓名。

select sname from student where sdept='计算机系'

题13: 查询所有年龄在20岁以下的学生的姓名及年龄。

select sname,sage from student where sage <20

题14: 查询考试成绩不及格的学生的学号。

select sno from sc where grade <60

题15: 查询年龄在20~23岁之间的学生的姓名,所在系和年龄。

select sname,sage,sdept from student where sage between 20 and 23

题16: 查询年龄不在20~23之间的学生的姓名,所在系和年龄。

select sname,sage,sdept from student where sage>23 or sage<20

题17: 查询信息系,数学系和计算机系学生的姓名和性别。

select sname,ssex,sdept from student where sdept in ('信息系','数学系','计算机系')

题18: 查询既不属于信息系,数学系,也不属于计算机系的学生的姓名和性别。

select sname,ssex from student where not sdept='信息系'and sdept='数学系'and sdept='计算机系'

题19: 查询姓“张”的学生的详细信息。

select * from student where sname like '张%'

题20: 查询学生表中姓“张”,姓“李”和姓“刘”的学生的情况。

select * from student where sname like '张%'or sname like'李%'or sname like'刘%'

题21: 查询名字中第2个字为“小”或“大”字的学生的姓名和学号。

select sname,sno from student where sname like '%大%' or sname like '%小%'

题22: 查询所有不姓“刘”的学生。

select * from student where not sname like '刘%'

题23: 从学生表中查询学号的最后一位不是2,3,5的学生的情况。

select * from student where not( sno like '%2' or sno like '%3' or sno like '%5')

题24: 查询无考试成绩的学生的学号和相应的课程号。

select sno,cno from sc where grade is null

题25: 查询所有有考试成绩的学生的学号和课程号。

select sno,cno from sc where grade>0

题26: 查询计算机系年龄在20岁以下的学生的姓名。

select sname from student where sage <20 and sdept='计算机系'

题27: 将学生按年龄升序排序。

select * from student order by sage

题28: 查询选修了课程“c02”的学生的学号及其成绩,查询结果按成绩降序排列。

select sno,grade from sc where cno='c02' order by grade desc

题29: 查询全体学生的信息,查询结果按所在系的系名升序排列,同一系的学生按年龄降序排列。

select * from student order by sage desc,sdept

题30: 统计学生总人数。

select count(*) from student

题31: 统计选修了课程的学生的人数。

select count(distinct sno) from sc

题32 : 计算学号为9512101的学生的考试总成绩之和。

select sum(grade) from sc where sno='9512101'

题33: 计算课程“c01”的学生的考试平均成绩。

select avg(grade) from sc where cno='c01'

题34: 查询选修了课程“c01”的学生的最高分和最低分。

select max(grade),min(grade) from sc where cno='c01'

题35: 统计每门课程的选课人数,列出课程号和人数。

select cno,count(*) from sc group by cno

题36: 查询每名学生的选课们数和平均成绩。

select count(cno),avg(grade) from sc group by sno

题37: 查询选修了3门以上课程的学生的学号。

select sno,count(cno) from sc group by sno having count(cno)>3

题38: 查询选课门数等于或大于4门的学生的平均成绩和选课门数。

select avg(grade),count(cno) from sc group by sno having count(cno)>=4

题39: 查询每个学生的情况及其选课的情况。

select * from student inner join sc on student.sno=sc.sno

题40: 去掉例38中的重复列。

题41: 查询计算机系学生的选课情况,要求列出学生的名字,所修课的课程号和成绩。

select student.sname,sc.cno,sc.grade from student inner join sc on student.sno=sc.sno where student.sdept='计算机系'

题42: 查询信息系选修VB课程的学生的成绩,要求列出学生姓名,课程名和成绩。

select student.sname,course.cname,sc.grade from sc inner join student on sc.sno=student.sno inner join course on sc.cno=course.cno 
where course.cname='VB' and student.sdept='信息系'

题43: 查询所有选修了VB课程的学生的情况,要求列出学生姓名和所在的系。

select student.sname,student.sdept from sc inner join student on sc.sno=student.sno inner join course on sc.cno=course.cno where course.cname='VB'

题44: 查询与刘晨在同一个系学习的学生的姓名和所在系

select sname,sdept from student where sdept=(select sdept from student where sname='刘晨')

题45: 查询学生的选课情况,包括选修课程的学生和没有修课的学生。

select * from sc inner join student on sc.sno=student.sno inner join course on sc.cno=course.cno

题46: 查询与刘晨在同一个系的学生。

select * from student where sdept=(select sdept from student where sname='刘晨')

题47: 查询成绩大于90分的学生的学号和姓名。

select sname,sno from student where sno in (select sno from sc where grade >90)

题48: 查询选修了“数据库基础”课程的学生的学号和姓名。

select sname,sno from student where sno in(select sno from sc where cno=(select cno from course where cname='数据库基础'))

题49: 查询选修了课程“c02”且成绩高于次课程的平均成绩的学生的学号和成绩。

select sno,grade from sc where cno='c02'and grade>(select avg(grade) from sc where cno='c02')

题50: 查询选修了课程“c01”的学生姓名。

select sname from student where sno in (select sno from sc where cno='c01')

题51: 查询没有选修课程“c01”的学生姓名和所在系。

select sname,sdept from student where sno in (select sno from student where sno not in (select sno from sc where cno='c01'))

题52: 查询选修了课程“c01”的学生的姓名和所在系。

select sname,sdept from student where sno in (select sno from sc where cno='c01')

题53: 查询数学系成绩在80分以上的学生的学号,姓名。

select sno,sname from student where sno in(select sno from sc where sno in (select sno from student where sdept='数学系') and grade>80)

题54: 查询计算机系考试成绩最高的学生的姓名。

select sno,sname from student where sno=(select sno from sc where grade =(select max(grade) from sc where sno in (select sno from student where sdept='计算机系')))

题55: 将新生纪录(9521105,陈冬,男,信息系,18岁)插入到Student表中。

insert into student value ('9521105','陈冬','男',18,'信息系')

题56: 在SC表中插入一新记录(9521105,c01),成绩暂缺。

insert into sc value ('9521105','c01',null,null)

题57: 将所有学生的年龄加1。

update student set sage=sage +1

题58: 将“9512101”学生的年龄改为21岁。

update student set sage=21 where sno='9512101'

题59: 将计算机系学生的成绩加5分。

update sc set grade=grade+5 

题60: 删除所有学生的选课记录。

delete from sc 

题61: 删除所有不及格学生的选课记录。

delete from sc where grade<60

题62: 删除计算机系不及格学生的选课记录。

delete from sc where grade<60 and sno in(select sno from student where sdept='计算机系')

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值