create database school;
use school;

#学生表
create table Student
(
Sno varchar(20) not null COMMENT ‘人名’,
Sname varchar(20) not null COMMENT ‘姓名’,
Ssex varchar(20) not null COMMENT ‘性别’,
Sbirthday datetime COMMENT ‘出生日期’,
Class varchar(20) COMMENT ‘班级’
);
#课程表
create table Course(
Cno varchar(20) not null COMMENT ‘课程号’,
Cname varchar(20) not null COMMENT ‘课程名称’,
Tno varchar(20) not null COMMENT ‘教工编号’
);
#成绩表
Create table Score (
Sno varchar(20) not null COMMENT ‘学号’,
Cno varchar(20) not NULL comment ‘课程号’,
Degree DECIMAL(4,1) null COMMENT ‘成绩’
);
#教师表
create table Teacher (
Tno varchar(20) not null COMMENT ‘教工编号’,
Tname varchar(20) not null COMMENT ‘教工姓名’,
Tsex varchar(20) not null COMMENT ‘教工性别’,
Tbirthday datetime null COMMENT ‘教工出生日期’,
Prof varchar(20) null COMMENT ‘职称’,
Depart varchar(20) null COMMENT ‘教工所在部门’
);

insert into Student value
(108,‘曾华’,‘男’,‘1977-09-01’,95033),
(105,‘匡明’,‘男’,‘1975-10-02’,95031),
(107,‘王丽’,‘女’,‘1976-01-23’,95033),
(101,‘李军’,‘男’,‘1976-02-20’,95033),
(109,‘王芳’,‘女’,‘1975-02-10’,95031),
(103,‘陆军’,‘男’,‘1974-06-03’,95031);

insert into Course value
(3-105,‘计算机导论’,825),
(3-245,‘操作系统’,804),
(6-166,‘数字电路’,856),
(9-888,‘高等数学’,831);

insert into Score value
(103,3-245,86),
(105,3-245,75),
(109,3-245,68),
(103,3-105,92),
(105,3-105,88),
(109,3-105,76),
(101,2-105,64),
(107,3-105,91),
(108,3-105,78),
(101,6-166,85),
(107,6-166,79),
(108,6-166,81);

insert into Teacher value
(804,‘李城’,‘男’,‘1958-12-02’,‘副教授’,‘计算机系’),
(856,‘张旭’,‘男’,‘1969-03-12’,‘讲师’,‘电子工程系’),
(825,‘王萍’,‘女’,‘1972-05-05’,‘助教’,‘计算机系’),
(831,‘刘冰’,‘女’,‘1977-08-14’,‘助教’,‘电子工程系’);

#1、 查询Student表中的所有记录的Sname、Ssex和Class列。
select Sname,Ssex,Class from Student;

#2、 查询教师所有的单位即不重复的Depart列。(多练)
select distinct Depart from Teacher;

– 3、 查询Student表的所有记录。
select * from Student;

– 4、 查询Score表中成绩在60到80之间的所有记录。
select * from Score where Degree >60 and Degree<80;
select * from Score where Degree between 60 and 80;

– 5、 查询Score表中成绩为85,86或88的记录。
select * from Score where Degree = 85 or Degree = 86 or Degree = 88;
select * from Score where Degree in(85,86,88);

– 6、 查询Student表中“95031”班或性别为“女”的同学记录。
select * from Student where Class = ‘95031’ or Ssex =‘女’;

– 7、 以Class降序查询Student表的所有记录。
select * from Student order by Class desc;

– 8、 以Cno升序、Degree降序查询Score表的所有记录。
select * from Score order by Cno asc,Degree desc ;

– 9、 查询“95031”班的学生人数。
select count(*) from Student where Class = ‘95031’;

– 10、 查询Score表中的最高分的学生学号和课程号。(子查询或者排序)
select Sno,Cno from Score where Degree=(select Max(Degree) from Score);
select Sno,Cno from Score order by Degree desc;

– 11、 查询每门课的平均成绩。(group by:根据Cno进行分组)
select Cno,AVG(Degree) as 平均分 from Score group by Cno;

– 12、 查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
select * from Score where Cno like ‘3%’ group by Cno having Count(Cno)>4;

– 13、 查询分数大于70,小于90的Sno列。
select Sno from Score where Degree>70 or Degree<90;
select Sno from Score where Degree between 70 and 90;

– 14、 查询所有学生的Sname、Cno和Degree列。
select Sname,Cno from Student join Score on Student.Sno = Score.Sno;

– 15、 查询所有学生的Sno、Cname和Degree列。
select Sno,Cname,Degree from Score join Course on Course.Cno = Score.Cno;

– 16、 查询所有学生的Sname、Cname和Degree列。
select Sname,Cname,Degree from Student join Score on
Student.Sno = Score.Sno join Course on Course.Cno = Score.Sno;

– 17、 查询“95033”班学生的平均分。(子查询or条件查询)
select AVG(Degree) from Score where Sno in(select Sno from Student where Class=‘95033’);

select Avg(Degree) from Score,Student where Student.Sno = Score.Sno and Class = ‘95033’;

– 18、 假设使用如下命令建立了一个grade表:
create table grede(
low int COMMENT ‘人名’,
upp int not null COMMENT ‘课长’,
rank varchar(20) not null COMMENT ‘等级’
);
insert into grede values(90,100,‘A’);
insert into grede values(80,89,‘B’);
insert into grede values(70,79,‘C’);
insert into grede values(60,69,‘D’);
insert into grede values(0,59,‘E’);

– 现查询所有同学的Sno、Cno和rank列。(between选取两个值之间的数据范围)
select Sno,Cno,Degree,rank from grede join Score on Score.Degree between
low and upp;

select Sno,Cno,Degree,rank from Score,grede where Degree between
low and upp;

19、 查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。
select * from Student,Score where Score.Cno = ‘3-105’ and Student.Sno = Score.Sno
and Score.Degree>(select Degree from Score where Cno = ‘3-105’ and Sno = ‘109’);

20、 查询score中选学多门课程的同学中分数为非最高分成绩的记录
select * from Score a where Degree<(select MAX(Degree)from Score b
where a.Cno = b.Cno) and Sno in(select Sno from Score group by Sno having count(*) > 1);

– 21、 查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
select * from Student,Score where Student.Sno = Score.Sno and Score.Degree>
(select Degree from Score where Cno=‘3-105’ and Sno = ‘109’);

– 22、 查询和学号为107的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
select Sno,Sname,Sbirthday from student where year(Student.Sbirthday) = (
select year(Sbirthday) from student where Sno = ‘107’
);

– 23、 查询“张旭“教师任课的学生成绩
select Sno,Cno,Degree from Score where Cno in(select Cno from Course where
Tno in(select Tno from Teacher where Tname = ‘张旭’));

– 24、 查询选修某课程的同学人数多于5人的教师姓名。
select Tname from Teacher where Tno in(select Tno from Course where Cno in(select Cno from Score
group by Cno having Count(*)>5));

– 25、 查询95033班和95031班全体学生的记录。
select * from Student where Class = ‘95033’ or Class = ‘95031’;

– 26、 查询存在有85分以上成绩的课程Cno.
select distinct cno from Score where Degree>85;

– 27、 查询出“计算机系“教师所教课程的成绩表。
select Sno,Cno,Degree from Score where Cno in(select Cno from Course where Tno in(
select tno from Teacher where Depart = ‘计算机系’
));

– 28、查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。使用相关子查询
select Tname,Prof from Teacher a where Prof not in(select Prof from Teacher b where
a.Depart!=b.Depart);

29、 查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”课程的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。
select Cno,Sno,Degree from Score a where (select Degree from Score b where Cno=‘3-105’ and
b.Sno = a.Sno)>=(select Degree from Score c where Cno=‘3-245’ and c.Sno = a.Sno)order by
Degree desc ;

– 30、 查询选修编号为“3-105”课程且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree.
select Cno,Sno,Degree from Score a where (select Degree from Score b where Cno=‘3-105’ and
b.Sno=a.Sno)>(select Degree from Score c where Cno=‘3-245’ and c.Sno=a.Sno);

– 31、 查询所有教师和同学的name、sex和birthday.
select distinct Sname as name,Ssex as sex,Sbirthday as birthday from student
union
select distinct Tname as name,Tsex as sex,Tbirthday as birthday from Teacher;

32、 查询所有“女”教师和“女”同学的name、sex和birthday.
select distinct Sname as name,Ssex as sex,Sbirthday as birthday from student where Ssex = ‘女’
union
select distinct Tname as name,Tsex as sex,Tbirthday as birthday from Teacher where Tsex = ‘女’;

33、 查询成绩比该课程平均成绩低的同学的成绩表。
select Sno,Cno,Degree from Score a where a.Degree<(select AVG(Degree) from Score b where a.Cno = b.Cno);

-- 34、 查询所有任课教师的Tname和Depart.
select Tname,Depart from Teacher where Tname in(select distinct Tname from Teacher,
Course,Score where Teacher.Tno = Course.Tno and Course.Cno = Score.Cno);

select Tname,Depart from Teacher where tno in (select tno from course where Cno in (select distinct Cno from Score));

– 35、 查询所有未讲课的教师的Tname和Depart.
select Tname,Depart from Teacher where Tname not in(select distinct Tname from Teacher,Course,Score where Teacher.Tno=Course.Tno and Course.Cno = Score.Cno);

36、 查询至少有2名男生的班号。
select Class from student where Ssex=‘男’ group by Class having count(*)>1;

– 37、 查询Student表中不姓“王”的同学记录。
select * from Student where Sname not like (‘王%’);

– 38、 查询Student表中每个学生的姓名和年龄。
select Sname,YEAR(GETDATE())-year(Sbirthday) from student;

– 39、 查询Student表中最大和最小的Sbirthday日期值
select MAX(Sbirthday) as 最大,MIN(Sbirthday) as 最小 from student;

– 40、 以班号和年龄从大到小的顺序查询Student表中的全部记录
select * from Student order by Class desc ,Sbirthday asc;

– 41、 查询“男”教师及其所上的课程。
select Tname,Cname from Teacher,Course where Tsex=‘男’ and Teacher.Tno = Course.Tno;

–/42、 查询最高分同学的Sno、Cno和Degree列。
select Sno,Cno,Degree from Score where Degree=(select MAX(Degree) FROM score);

– 43、 查询和“李军”同性别的所有同学的Sname.
select SName from Student where Ssex=(select Ssex from Student where Sname=‘李军’)and Sname
not in (‘李军’);

– 44、 查询和“李军”同性别并同班的同学Sname
select Sname from Student where Ssex=(select Ssex from Student where Sname=‘李军’)and Sname not in
(‘李军’)and Class=(select Class from Student where Sname=‘李军’);

– 45、查询所有选修“计算机导论”课程的“男”同学的成绩表
select Sno,Degree from Score where Sno in(select Sno from Student where Ssex=‘男’)and Cno in
(select Cno from Course where Cname=‘计算机导论’);

mysql常见练习题45题相关推荐

  1. 学生选课数据库MySQL语句练习题45道

    1. 查询Student表中的所有记录的Sname.Ssex和Class列. select Sname,Ssex,Class from Student; 2. 查询教师所有的单位即不重复的Depart ...

  2. MySQL常见的面试经典108题

    前言: 大家都知道,无论你面试任何一个厂MySQL基本上是面试必问的题.经过无数次面经过后我总结了以下108道MySQL常见的面试题,望对大家有帮助!​ 目录 以下完整题目答案资料已存如文档,需要的朋 ...

  3. mysql模拟题三_mysql经典45题(3刷)

    Mysql 经典练习题 我使用的Mysql版本是5.7.27-log,答案可能会因版本会有少许出入. 一.数据源准备及说明: 1.1.数据字段说明: 1.学生表 Student(SId,Sname,S ...

  4. mysql常见sql语句练习 sql练习题

    文章目录 1. Mysql基本语句复习 1.1数据库建库操作 1.2建表操作 1.3基本语句 1.4列操作(重点) 1.5join操作(重点) 1 inner join或者 join 2 left j ...

  5. mysql训练逻辑的题_全国计算机等级考试二级教程mysql复习题练习题.docx

    全国计算机等级考试二级教程mysql复习题练习题.docx [233网校会员中心]提供计算机.外语.资格类.学历类,会计类.建筑类.医学类.外贸类.公务员九大类免费在线题库及专家答疑WWW233COM ...

  6. MySQL查询语句练习题(50题版)

    学生表:Student(编号sid,姓名sname,年龄sage,性别ssex) 课程表:Course(课程编号cid,课程名称cname,教师编号tid) 成绩表:Sc(学生编号sid,课程编号ci ...

  7. MySQL一般读作什么_MySQL入门必做练习题50题(一) 创建表

    练习题介绍: 对于一个学校信息管理系统中的数据库,有如下4张表: 学生表:student(学号,学生姓名,出生年月,性别) 成绩表:score(学号,课程号,成绩) 课程表:course(课程号,课程 ...

  8. 2018年3月份计算机二级操作题训练,2018年3月计算机二级考试MySQL章节练习题三

    2018年3月计算机等级考试备考在即,小编在这里为考生们整理了2018年3月计算机二级考试MySQL章节练习题,希望能帮到大家,想了解更多资讯,请关注出国留学网的及时更新哦. 2018年3月计算机二级 ...

  9. hive sql练习_经典的SparkSQL/Hive-SQL/MySQL面试-练习题

    经典的SparkSQL/Hive-SQL/MySQL面试-练习题​mp.weixin.qq.com 第一题 需求: 已知一个表order,有如下字段:date_time,order_id,user_i ...

  10. 谈谈MySQL面试的45个常见问题

    前两天,我跟一个面试官聊天,发现一个普遍想象,不少候选人,对数据库的认知,还处在比较基础的阶段,以为会写"增删改查".做表关联就足够了,那些工作中经常出现的问题,却支支吾吾答不上来 ...

最新文章

  1. JVM相关概念和异常类型
  2. 走进5G | 腾讯技术工程5G技术沙龙开启报名啦!
  3. java8 guava_Guavate:桥接Guava和Java8的微型库
  4. 使用JSTL视图探索Spring Controller
  5. C#调用Python模块
  6. 漫步最优化六——数学规划
  7. HALCON学习之旅(三)
  8. Atitit 职位的规划与来源 1.1. 职位任命多元化 1 1.2. 上级任命 1 1.3. 自我推荐 1 1.4. 他人推荐, 1 1.5. 可以下级选举 1 1.6. 缺席任命 1 1.7.
  9. 在LINUX上,Apache安装记
  10. 回文数 LeetCode
  11. c语言中gotoxy,关于gotoxy的问题....
  12. Linux rar 压缩 解压文件
  13. 猪猪视频显示没有服务器,猪猪小视频软件
  14. 《多媒体在初中数学中的运用研究》课题研究活动记录
  15. 策略评价1:根据交易信号Signal,1.提取交易记录,2.绝对收益和相对收益,3.交易与不交易对比,4.收盘价最大回撤,5.资金最大回撤。6.可视化图形回测。
  16. 【Cmake实战:番外】库、动态库和静态库(.dll,.so,.lib,.a)
  17. L1-007 念数字 (10分) 输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下: 0: ling 1: yi 2: er 3: san 4: si 5:
  18. CentOS安装Bumblebee驱动
  19. linux java db2,[转载]DB2 UDB for Linux, UNIX 和 Windows 中的 Java 开发概述: V8.1 更新版
  20. linux性能优化实战 倪朋飞,Linux性能优化实战:系统的swap变高(09)

热门文章

  1. 使用CORS解决跨域问题
  2. ROS实战(二) 科大讯飞语音合成模块
  3. git 配置 diff 、 merge 工具: kdiff3
  4. 贴片晶振的焊接方法和注意事项
  5. android解锁方法,手机如何解锁密码 几种安卓手机解锁方法介绍
  6. 溢出的文字如何省略号显示
  7. java.lang.UnsupportedOperationException: Required method instantiateItem was not overridden
  8. stokes方程matlab,【Fluent】雷诺方程:推导与求解(附MATLAB代码)
  9. java绘图-常用条形码类型组成及使用说明
  10. js递归遍历树形json数据