MySQL基础练习

学生表:
create table studentinfo(
stuno int,
stuname varchar(20),
stubirth date,
stusex int,
stuaddr varchar(30),
stutel char(11)
);
insert into studentinfo values(05001,'张三','1988-12-12',0,'江苏南京','12345');
insert into studentinfo values(05002,'李四','1987-06-05',1,'上海','12346');
insert into studentinfo values(05003,'王五','1987-12-01',0,'北京','12347');
insert into studentinfo values(05004,'赵六','1986-02-23',1,'广东深圳','12348');
insert into studentinfo values(05005,'张三','1988-04-01',0,'重庆','12349');
insert into studentinfo values(05006,'孙七','1988-07-03',1,'湖北武汉',null);

课程表:
create table classinfo(
classno int,
classname varchar(10)
);
insert into classinfo values(001,'计算机');
insert into classinfo values(002,'日语');
insert into classinfo values(003,'英语');

成绩表:
create table scoreinfo(
stuno int,
classno int,
score double(3,1)
);
insert into scoreinfo values(05001,001,95);
insert into scoreinfo values(05001,002,90);
insert into scoreinfo values(05001,003,88);
insert into scoreinfo values(05002,001,91);
insert into scoreinfo values(05002,002,93);
insert into scoreinfo values(05002,003,88);
insert into scoreinfo values(05003,001,95);
insert into scoreinfo values(05003,002,73);
insert into scoreinfo values(05003,003,58);
insert into scoreinfo values(05004,001,47);
insert into scoreinfo values(05004,003,61);
insert into scoreinfo values(05005,002,59);
insert into scoreinfo values(05005,003,47);

1、查询全部学生信息

select * from studentinfo;

2、查询'张三'学生信息

select * from studentinfo where stuname='张三';

3、查询学生的姓名和联系方式,没有联系方式的提示'No Stutel'

select stuname,ifnull(stutel,'No Stutel')
from studentinfo;

4、查询学生的姓名和家庭住址,数据显示使用连接符

select concat(stuname,"-",stuaddr)
from studentinfo;

5、查询课程号和成绩

select classno,score
from scoreinfo;

6、查询001课程成绩是91或95学生的学号

select stuno,classno,score
from scoreinfo
where classno=001
and score in(91,95);

7、查询所有姓名包含'孙'的学生信息

select *
from studentinfo
where stuname like "%孙%";

8、查询所有没联系方式的学生信息

select *
from studentinfo
where stutel is null;

9、查询所有成绩优秀(大于90)和成绩不及格(低于60)的学生学号和课程号

select stuno,classno
from scoreinfo
where score>90
or score<60;

10、查询哪些学生有联系方式

select *
from studentinfo
where stutel is not null;

11、查询学生姓名的长度

select stuname,length(stuname)
from studentinfo;

12、查询87年以后出生的学生信息

select *
from studentinfo
where year(stubirth)>1987;

1、给定一个数据123.456,按照指定格式显示, 要求四舍五入保留两位,截取到小数点后1位。

select truncate(round(123.456,2),1) from dual;

2、获取系统当前时间

select now() from dual;

3、按照指定要求显示时间'%X-%m-%d %H:%i:%s'

select date_format(now(),'%X-%m-%d %H:%i:%s') from dual;

4、查询所有学生信息,按照生日从大到小排序

select *
from studentinfo
order by stubirth desc;

5、按课程号升序,同一个课程按成绩降序排序

select classno,score
from scoreinfo
order by classno asc,score desc;

6、计算每门课程的最高分和最低分

select classno,max(score),min(score)
from scoreinfo
group by classno;

7、计算课程平均分大于80的课程号

select classno,avg(score)
from scoreinfo
group by classno;
having avg(score)>80;

8、计算每个学生的成绩总和

select stuno,sum(score)
from scoreinfo
group by stuno;

9、查询学生成绩总分大于250

select stuno,sum(score)
from scoreinfo
group by stuno
having sum(score)>250;

10、显示昨天,今天,明天的时间

select adddate(now(),interval -1 day),now(),adddate(now(),interval 1 day)  from dual;

最后更新于