sql 高级查询语句总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 高级查询语句总结相关的知识,希望对你有一定的参考价值。

数据库建表语句在最后

–这是一个学生成绩管理系统,创建数据库表语句在最后,表包括四张表tblStudent 学生信息表,tblScore 成绩表 ,tblteacher 教师信息表,tblcourse 课程表

–希望大家学会使用mysql数据库,以后工作中使用的数据库是由公司决定,有可能是mysql数据库也有可能是oracel 或者sqlserver数据库, 
–但是所有数据库都是基于sql操作,每个数据库都有每个数据库的方言,学会基本的sql语句,接触新的数据库时候学习一下该数据库对比与 
–其他数据库不同之处,这样可以快速上手一个新的数据库,更快的进入开发流程。 
–今天希望大家学会使用Navicat for MySQL数据库管理工具,这个东西只是mysql数据库管理工具,使用这个工具的前提是先安装mysql数据库。 
–以下题目为我个人总结,如果大家还有其他其他题目可以锻炼大家能力或者可以让大家学习到更多知识,欢迎大家提出,希望大家营造一个良好的班级氛围, 
–让大家学习到更多知识,提高大家的能力。 
–如果大家有任何不懂,可以在论坛中提问或者私聊我,论坛采用匿名制度,有任何问题都可以问,我会第一时间回复大家。 
–本次练习对sql掌握要求很高,希望大家多多练习,大多数地方涉及到四表联查,但是和两表联查原理都是一样。

–1、查询“001”课程比“002”课程成绩高的所有学生的学号; 
Select StuId From tblStudent s1 
Where (Select Score From tblScore t1 Where t1.StuId=s1.stuId And t1.CourseId=’001’)> 
(Select Score From tblScore t2 Where t2.StuId=s1.stuId And t2.CourseId=’002’);

【执行情况】 
mysql> Select StuId From tblStudent s1 
Where (Select Score From tblScore t1 Where t1.StuId=s1.stuId And t1.CourseId=’001’)> 
(Select Score From tblScore t2 Where t2.StuId=s1.stuId And t2.CourseId=’002’); 
+——-+ 
| StuId | 
+——-+ 
| 1001 | 
| 1009 | 
| 1010 | 
+——-+ 
3 rows in set

mysql>

使用自连接实现 
mysql> select DISTINCT A.StuId from tblscore A,tblscore B 
where A.CourseId=’001’ and B.CourseId=’002’ and A.Score>B.score and A.stuid=B.stuid; 
+——-+ 
| StuId | 
+——-+ 
| 1001 | 
| 1009 | 
| 1010 | 
+——-+ 
3 rows in set

–2、查询平均成绩大于60分的同学的学号和平均成绩; 
Select StuId,Avg(Score) as AvgScore From tblScore 
Group By StuId 
Having Avg(Score)>60;

【执行情况】 
mysql> Select StuId,Avg(Score) as AvgScore From tblScore 
Group By StuId 
Having Avg(Score)>60; 
+——-+——————-+ 
| StuId | AvgScore | 
+——-+——————-+ 
| 1001 | 89.5 | 
| 1002 | 69.83333333333333 | 
| 1004 | 75.5 | 
| 1006 | 71.8 | 
| 1007 | 82 | 
| 1008 | 68.4 | 
| 1009 | 88.4 | 
| 1010 | 91 | 
+——-+——————-+ 
8 rows in set

–3、查询学习过‘001’课程的男生和女生人数各是多少? 
mysql> select A.StuSex sex,count(*) as CountSex from tblstudent A,tblscore B 
where B.courseid=’001’ and A.stuid=B.stuid group by A.StuSex ; 
+—–+———-+ 
| sex | CountSex | 
+—–+———-+ 
| 女 | 5 | 
| 男 | 5 | 
+—–+———-+ 
2 rows in set

–4、查询姓“李”的老师的个数; 
Select Count(*) From tblTeacher Where TeaName like ‘李%’; 
【执行情况】 
mysql> Select Count(*) From tblTeacher Where TeaName like ‘李%’; 
+———-+ 
| Count(*) | 
+———-+ 
| 1 | 
+———-+ 
1 row in set

–5、查询“张无忌”的所有学习课程名称和授课老师姓名;

【执行情况】 
mysql> select a.stuid,a.stuname,c.CourseName,d.teaname from tblstudent a,tblscore b,tblcourse 
c,tblteacher d where a.stuid=b.stuid and b.courseid=c.courseid 
and c.teaid=d.teaid and a.stuname=’张无忌’;

+——-+———+————+———+ 
| stuid | stuname | CourseName | teaname | 
+——-+———+————+———+ 
| 1000 | 张无忌 | 数据库 | 裘千尺 | 
| 1000 | 张无忌 | Flash动漫 | 姚明 | 
+——-+———+————+———+ 
2 rows in set

–6、查询每一门课程的课程名称,授课教师姓名,课程平均成绩;

mysql> select avg(b.score) as AvgScore,c.CourseName,d.teaname from tblstudent a,tblscore b,tblcourse 
c,tblteacher d where a.stuid=b.stuid and b.courseid=c.courseid 
and c.teaid=d.teaid group by b.courseid ; 
+——————-+—————-+———-+ 
| AvgScore | CourseName | teaname | 
+——————-+—————-+———-+ 
| 67.7 | 企业管理 | 叶平 | 
| 79.14285714285714 | 马克思 | 赵志敬 | 
| 71.375 | UML | 裘千仞 | 
| 43.4 | 数据库 | 裘千尺 | 
| 70 | 逻辑电路 | 裘千仞 | 
| 56.4 | 英语 | 叶开 | 
| 72.5 | 电子电路 | 独孤求败 | 
| 92 | 思想概论 | 孟星魂 | 
| 24.5 | 西方哲学史 | 白展堂 | 
| 79.25 | 线性代数 | 乔丹 | 
| 53 | 计算机基础 | 吕轻侯 | 
| 59.5 | AUTO CAD制图 | 花无缺 | 
| 97 | 平面设计 | 佟湘玉 | 
| 75 | Flash动漫 | 姚明 | 
| 85 | Java开发 | 阿紫 | 
| 76.66666666666667 | C#基础 | 叶平 | 
+——————-+—————-+———-+ 
16 rows in set

mysql>

–7、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; 
Select StuId,StuName From tblStudent st 
Where (Select Count(*) From tblScore s1 Where s1.StuId=st.StuId And s1.CourseId=’001’)>0 
And 
(Select Count(*) From tblScore s2 Where s2.StuId=st.StuId And s2.CourseId=’002’)>0;

【执行情况】 
mysql> Select StuId,StuName From tblStudent st 
Where (Select Count(*) From tblScore s1 Where s1.StuId=st.StuId And s1.CourseId=’001’)>0 
And 
(Select Count(*) From tblScore s2 Where s2.StuId=st.StuId And s2.CourseId=’002’)>0; 
+——-+———+ 
| StuId | StuName | 
+——-+———+ 
| 1001 | 周芷若 | 
| 1002 | 杨过 | 
| 1004 | 小龙女 | 
| 1009 | 韦小宝 | 
| 1010 | 康敏 | 
| 1013 | 郭靖 | 
+——-+———+ 
6 rows in set

方法二: 
【执行情况】 
mysql> SELECT C.stuid,C.stuName from tblStudent C where C.stuid in (SELECT A.stuid from 
tblScore A where A.CourseId=’001’) and C.stuid 
in(SELECT b.stuid from tblScore b where b.CourseId=’002’); 
+——-+———+ 
| stuid | stuName | 
+——-+———+ 
| 1001 | 周芷若 | 
| 1002 | 杨过 | 
| 1004 | 小龙女 | 
| 1009 | 韦小宝 | 
| 1010 | 康敏 | 
| 1013 | 郭靖 | 
+——-+———+ 
6 rows in set

–8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;

Select StuId,StuName From tblStudent s1 
Where (Select Score From tblScore t1 Where t1.StuId=s1.stuId And t1.CourseId=’001’)> 
(Select Score From tblScore t2 Where t2.StuId=s1.stuId And t2.CourseId=’002’);

【执行情况】 
mysql> Select StuId,StuName From tblStudent s1 
Where (Select Score From tblScore t1 Where t1.StuId=s1.stuId And t1.CourseId=’001’)> 
(Select Score From tblScore t2 Where t2.StuId=s1.stuId And t2.CourseId=’002’); 
+——-+———+ 
| StuId | StuName | 
+——-+———+ 
| 1001 | 周芷若 | 
| 1009 | 韦小宝 | 
| 1010 | 康敏 | 
+——-+———+ 
3 rows in set

mysql> 
–9、查询已经学完所有课程的同学的学号、姓名; 
Select StuId,StuName From tblStudent st 
Where (Select Count(*) From tblScore sc Where st.StuId=sc.StuId)= 
(Select Count(*) From tblCourse) 
【执行情况】 无结果 
mysql> Select StuId,StuName From tblStudent st 
Where (Select Count(*) From tblScore sc Where st.StuId=sc.StuId)= 
(Select Count(*) From tblCourse); 
Empty set 
–10、查询课程补考过的学生学号,课程号;[同一门课程成绩存在两次代表补考] 
Select AcourseId,Astuid From tblStudent st, 
(Select Count(*) as CountNum,courseId as AcourseId,stuid as Astuid From tblScore sc group by sc.courseId,stuid) A where st.stuid=A.Astuid and A.CountNum>1;

mysql> Select AcourseId,Astuid From tblStudent st, 
(Select Count(*) as CountNum,courseId as AcourseId,stuid as Astuid From tblScore sc group by sc.courseId,stuid) A where st.stuid=A.Astuid and A.CountNum>1; 
+———–+——–+ 
| AcourseId | Astuid | 
+———–+——–+ 
| 009 | 1011 | 
| 016 | 1013 | 
+———–+——–+ 
2 rows in set

mysql>

–11、查询所有同学的学号、姓名、选课数、总成绩;

mysql> Select StuId,StuName, 
(Select Count(DISTINCT CourseId) From tblScore t1 Where t1.StuId=s1.StuId ) as SelCourses, 
(Select Sum(Score) From tblScore t2 Where t2.StuId=s1.StuId ) as SumScore 
From tblStudent s1; 
+——-+———+————+———-+ 
| StuId | StuName | SelCourses | SumScore | 
+——-+———+————+———-+ 
| 1000 | 张无忌 | 2 | 91 | 
| 1001 | 周芷若 | 4 | 358 | 
| 1002 | 杨过 | 6 | 419 | 
| 1003 | 赵敏 | 6 | 356 | 
| 1004 | 小龙女 | 4 | 302 | 
| 1005 | 张三丰 | 1 | 23 | 
| 1006 | 令狐冲 | 5 | 359 | 
| 1007 | 任盈盈 | 4 | 328 | 
| 1008 | 岳灵珊 | 5 | 342 | 
| 1009 | 韦小宝 | 5 | 442 | 
| 1010 | 康敏 | 3 | 273 | 
| 1011 | 萧峰 | 1 | 49 | 
| 1012 | 黄蓉 | 1 | 30 | 
| 1013 | 郭靖 | 6 | 314 | 
| 1014 | 周伯通 | 0 | NULL | 
| 1015 | 瑛姑 | 0 | NULL | 
| 1016 | 李秋水 | 0 | NULL | 
| 1017 | 黄药师 | 0 | NULL | 
| 1018 | 李莫愁 | 0 | NULL | 
| 1019 | 冯默风 | 0 | NULL | 
| 1020 | 王重阳 | 0 | NULL | 
| 1021 | 郭襄 | 0 | NULL | 
+——-+———+————+———-+ 
22 rows in set

–12、创建一个查询视图,视图中包括学生学号,学生姓名,授课教师编号,教师姓名,课程编号,课程名称,成绩,查询出视图中的内容 
create view tianmin_view as select a.stuid,a.stuname,d.teaid,d.teaname,c.Courseid,c.CourseName,b.score from tblstudent a,tblscore b,tblcourse 
c,tblteacher d where a.stuid=b.stuid and b.courseid=c.courseid and c.teaid=d.teaid ;

mysql> select * from tianmin_view; 
+——-+———+——-+———-+———-+—————-+——-+ 
| stuid | stuname | teaid | teaname | Courseid | CourseName | score | 
+——-+———+——-+———-+———-+—————-+——-+ 
| 1001 | 周芷若 | 006 | 裘千仞 | 003 | UML | 90 | 
| 1001 | 周芷若 | 008 | 赵志敬 | 002 | 马克思 | 87 | 
| 1001 | 周芷若 | 002 | 叶平 | 001 | 企业管理 | 96 | 
| 1001 | 周芷若 | 017 | 乔丹 | 010 | 线性代数 | 85 | 
| 1002 | 杨过 | 006 | 裘千仞 | 003 | UML | 70 | 
| 1002 | 杨过 | 008 | 赵志敬 | 002 | 马克思 | 87 | 
| 1002 | 杨过 | 002 | 叶平 | 001 | 企业管理 | 42 | 
| 1002 | 杨过 | 017 | 乔丹 | 010 | 线性代数 | 65 | 
| 1003 | 赵敏 | 003 | 叶开 | 006 | 英语 | 78 | 
| 1003 | 赵敏 | 006 | 裘千仞 | 003 | UML | 70 | 
| 1003 | 赵敏 | 006 | 裘千仞 | 005 | 逻辑电路 | 70 | 
| 1003 | 赵敏 | 002 | 叶平 | 001 | 企业管理 | 32 | 
| 1003 | 赵敏 | 017 | 乔丹 | 010 | 线性代数 | 85 | 
| 1003 | 赵敏 | 013 | 吕轻侯 | 011 | 计算机基础 | 21 | 
| 1004 | 小龙女 | 005 | 独孤求败 | 007 | 电子电路 | 90 | 
| 1004 | 小龙女 | 008 | 赵志敬 | 002 | 马克思 | 87 | 
| 1005 | 张三丰 | 002 | 叶平 | 001 | 企业管理 | 23 | 
| 1006 | 令狐冲 | 009 | 阿紫 | 015 | Java开发 | 85 | 
| 1006 | 令狐冲 | 003 | 叶开 | 006 | 英语 | 46 | 
| 1006 | 令狐冲 | 006 | 裘千仞 | 003 | UML | 59 | 
| 1006 | 令狐冲 | 007 | 裘千尺 | 004 | 数据库 | 70 | 
| 1006 | 令狐冲 | 002 | 叶平 | 001 | 企业管理 | 99 | 
| 1007 | 任盈盈 | 013 | 吕轻侯 | 011 | 计算机基础 | 85 | 
| 1007 | 任盈盈 | 003 | 叶开 | 006 | 英语 | 84 | 
| 1007 | 任盈盈 | 006 | 裘千仞 | 003 | UML | 72 | 
| 1007 | 任盈盈 | 008 | 赵志敬 | 002 | 马克思 | 87 | 
| 1008 | 岳灵珊 | 002 | 叶平 | 001 | 企业管理 | 94 | 
| 1008 | 岳灵珊 | 015 | 花无缺 | 012 | AUTO CAD制图 | 85 | 
| 1008 | 岳灵珊 | 003 | 叶开 | 006 | 英语 | 32 | 
| 1009 | 韦小宝 | 006 | 裘千仞 | 003 | UML | 90 | 
| 1009 | 韦小宝 | 008 | 赵志敬 | 002 | 马克思 | 82 | 
| 1009 | 韦小宝 | 002 | 叶平 | 001 | 企业管理 | 96 | 
| 1009 | 韦小宝 | 017 | 乔丹 | 010 | 线性代数 | 82 | 
| 1009 | 韦小宝 | 004 | 孟星魂 | 008 | 思想概论 | 92 | 
| 1010 | 康敏 | 006 | 裘千仞 | 003 | UML | 90 | 
| 1010 | 康敏 | 008 | 赵志敬 | 002 | 马克思 | 87 | 
| 1010 | 康敏 | 002 | 叶平 | 001 | 企业管理 | 96 | 
| 1011 | 萧峰 | 012 | 白展堂 | 009 | 西方哲学史 | 24 | 
| 1011 | 萧峰 | 012 | 白展堂 | 009 | 西方哲学史 | 25 | 
| 1012 | 黄蓉 | 006 | 裘千仞 | 003 | UML | 30 | 
| 1013 | 郭靖 | 008 | 赵志敬 | 002 | 马克思 | 37 | 
| 1013 | 郭靖 | 002 | 叶平 | 001 | 企业管理 | 16 | 
| 1013 | 郭靖 | 005 | 独孤求败 | 007 | 电子电路 | 55 | 
| 1013 | 郭靖 | 003 | 叶开 | 006 | 英语 | 42 | 
| 1013 | 郭靖 | 015 | 花无缺 | 012 | AUTO CAD制图 | 34 | 
| 1000 | 张无忌 | 007 | 裘千尺 | 004 | 数据库 | 16 | 
| 1002 | 杨过 | 007 | 裘千尺 | 004 | 数据库 | 55 | 
| 1004 | 小龙女 | 007 | 裘千尺 | 004 | 数据库 | 42 | 
| 1008 | 岳灵珊 | 007 | 裘千尺 | 004 | 数据库 | 34 | 
| 1013 | 郭靖 | 002 | 叶平 | 016 | C#基础 | 86 | 
| 1013 | 郭靖 | 002 | 叶平 | 016 | C#基础 | 44 | 
| 1000 | 张无忌 | 001 | 姚明 | 014 | Flash动漫 | 75 | 
| 1002 | 杨过 | 002 | 叶平 | 016 | C#基础 | 100 | 
| 1004 | 小龙女 | 002 | 叶平 | 001 | 企业管理 | 83 | 
| 1008 | 岳灵珊 | 011 | 佟湘玉 | 013 | 平面设计 | 97 | 
+——-+———+——-+———-+———-+—————-+——-+ 
55 rows in set

mysql>

–13、查出”周芷若”同学所有未选课程编号和课程名称

mysql> select X.Courseid ‘未选课程编号’,X.CourseName ‘未选课程名称’ from tblcourse X where Courseid not in( 
select c.Courseid from tblstudent a,tblscore b,tblcourse 
c where a.stuid=b.stuid and b.courseid=c.courseid and a.stuname=’周芷若’); 
+————–+—————–+ 
| 未选课程编号 | 未选课程名称 | 
+————–+—————–+ 
| 004 | 数据库 | 
| 005 | 逻辑电路 | 
| 006 | 英语 | 
| 007 | 电子电路 | 
| 008 | 思想概论 | 
| 009 | 西方哲学史 | 
| 011 | 计算机基础 | 
| 012 | AUTO CAD制图 | 
| 013 | 平面设计 | 
| 014 | Flash动漫 | 
| 015 | Java开发 | 
| 016 | C#基础 | 
| 017 | Oracl数据库原理 | 
+————–+—————–+ 
13 rows in set

–14、查出和”周芷若”同学一起上过课的所有同学学号和姓名 
实现思路通过名字查出学号,通过学号,查询出学生学习过的课程, 
使用where in进行筛选学过这些课程的学生信息,去除重复值,去除‘周芷若’ 
mysql> select DISTINCT A.stuid,A.stuname from tblstudent A,tblscore B where B.courseid in( 
select DISTINCT C.courseid from tblscore C where stuid=(select stuid from tblstudent 
where stuname=’周芷若’)) and A.stuname!=’周芷若’; 
+——-+———+ 
| stuid | stuname | 
+——-+———+ 
| 1000 | 张无忌 | 
| 1002 | 杨过 | 
| 1003 | 赵敏 | 
| 1004 | 小龙女 | 
| 1005 | 张三丰 | 
| 1006 | 令狐冲 | 
| 1007 | 任盈盈 | 
| 1008 | 岳灵珊 | 
| 1009 | 韦小宝 | 
| 1010 | 康敏 | 
| 1011 | 萧峰 | 
| 1012 | 黄蓉 | 
| 1013 | 郭靖 | 
| 1014 | 周伯通 | 
| 1015 | 瑛姑 | 
| 1016 | 李秋水 | 
| 1017 | 黄药师 | 
| 1018 | 李莫愁 | 
| 1019 | 冯默风 | 
| 1020 | 王重阳 | 
| 1021 | 郭襄 | 
+——-+———+ 
21 rows in set



/* Navicat MySQL Data Transfer Source Server : localhost_3306 Source Server Version : 50615 Source Host : localhost:3306 Source Database : 11_aaa Target Server Type : MYSQL Target Server Version : 50615 File Encoding : 65001 Date: 2016-08-17 11:27:27 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `tblcourse` -- ---------------------------- DROP TABLE IF EXISTS `tblcourse`; CREATE TABLE `tblcourse` ( `CourseId` varchar(3) NOT NULL COMMENT ‘课程编号‘, `CourseName` varchar(20) NOT NULL COMMENT ‘课程名称‘, `TeaId` varchar(3) DEFAULT NULL COMMENT ‘授课教师编号‘, PRIMARY KEY (`CourseId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of tblcourse -- ---------------------------- INSERT INTO `tblcourse` VALUES (‘001‘, ‘企业管理‘, ‘002‘); INSERT INTO `tblcourse` VALUES (‘002‘, ‘马克思‘, ‘008‘); INSERT INTO `tblcourse` VALUES (‘003‘, ‘UML‘, ‘006‘); INSERT INTO `tblcourse` VALUES (‘004‘, ‘数据库‘, ‘007‘); INSERT INTO `tblcourse` VALUES (‘005‘, ‘逻辑电路‘, ‘006‘); INSERT INTO `tblcourse` VALUES (‘006‘, ‘英语‘, ‘003‘); INSERT INTO `tblcourse` VALUES (‘007‘, ‘电子电路‘, ‘005‘); INSERT INTO `tblcourse` VALUES (‘008‘, ‘思想概论‘, ‘004‘); INSERT INTO `tblcourse` VALUES (‘009‘, ‘西方哲学史‘, ‘012‘); INSERT INTO `tblcourse` VALUES (‘010‘, ‘线性代数‘, ‘017‘); INSERT INTO `tblcourse` VALUES (‘011‘, ‘计算机基础‘, ‘013‘); INSERT INTO `tblcourse` VALUES (‘012‘, ‘AUTO CAD制图‘, ‘015‘); INSERT INTO `tblcourse` VALUES (‘013‘, ‘平面设计‘, ‘011‘); INSERT INTO `tblcourse` VALUES (‘014‘, ‘Flash动漫‘, ‘001‘); INSERT INTO `tblcourse` VALUES (‘015‘, ‘Java开发‘, ‘009‘); INSERT INTO `tblcourse` VALUES (‘016‘, ‘C#基础‘, ‘002‘); INSERT INTO `tblcourse` VALUES (‘017‘, ‘Oracl数据库原理‘, ‘010‘); -- ---------------------------- -- Table structure for `tblscore` -- ---------------------------- DROP TABLE IF EXISTS `tblscore`; CREATE TABLE `tblscore` ( `StuId` varchar(5) DEFAULT NULL COMMENT ‘学号‘, `CourseId` varchar(3) DEFAULT NULL COMMENT ‘课程编号‘, `Score` float DEFAULT NULL COMMENT ‘成绩‘ ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of tblscore -- ---------------------------- INSERT INTO `tblscore` VALUES (‘1001‘, ‘003‘, ‘90‘); INSERT INTO `tblscore` VALUES (‘1001‘, ‘002‘, ‘87‘); INSERT INTO `tblscore` VALUES (‘1001‘, ‘001‘, ‘96‘); INSERT INTO `tblscore` VALUES (‘1001‘, ‘010‘, ‘85‘); INSERT INTO `tblscore` VALUES (‘1002‘, ‘003‘, ‘70‘); INSERT INTO `tblscore` VALUES (‘1002‘, ‘002‘, ‘87‘); INSERT INTO `tblscore` VALUES (‘1002‘, ‘001‘, ‘42‘); INSERT INTO `tblscore` VALUES (‘1002‘, ‘010‘, ‘65‘); INSERT INTO `tblscore` VALUES (‘1003‘, ‘006‘, ‘78‘); INSERT INTO `tblscore` VALUES (‘1003‘, ‘003‘, ‘70‘); INSERT INTO `tblscore` VALUES (‘1003‘, ‘005‘, ‘70‘); INSERT INTO `tblscore` VALUES (‘1003‘, ‘001‘, ‘32‘); INSERT INTO `tblscore` VALUES (‘1003‘, ‘010‘, ‘85‘); INSERT INTO `tblscore` VALUES (‘1003‘, ‘011‘, ‘21‘); INSERT INTO `tblscore` VALUES (‘1004‘, ‘007‘, ‘90‘); INSERT INTO `tblscore` VALUES (‘1004‘, ‘002‘, ‘87‘); INSERT INTO `tblscore` VALUES (‘1005‘, ‘001‘, ‘23‘); INSERT INTO `tblscore` VALUES (‘1006‘, ‘015‘, ‘85‘); INSERT INTO `tblscore` VALUES (‘1006‘, ‘006‘, ‘46‘); INSERT INTO `tblscore` VALUES (‘1006‘, ‘003‘, ‘59‘); INSERT INTO `tblscore` VALUES (‘1006‘, ‘004‘, ‘70‘); INSERT INTO `tblscore` VALUES (‘1006‘, ‘001‘, ‘99‘); INSERT INTO `tblscore` VALUES (‘1007‘, ‘011‘, ‘85‘); INSERT INTO `tblscore` VALUES (‘1007‘, ‘006‘, ‘84‘); INSERT INTO `tblscore` VALUES (‘1007‘, ‘003‘, ‘72‘); INSERT INTO `tblscore` VALUES (‘1007‘, ‘002‘, ‘87‘); INSERT INTO `tblscore` VALUES (‘1008‘, ‘001‘, ‘94‘); INSERT INTO `tblscore` VALUES (‘1008‘, ‘012‘, ‘85‘); INSERT INTO `tblscore` VALUES (‘1008‘, ‘006‘, ‘32‘); INSERT INTO `tblscore` VALUES (‘1009‘, ‘003‘, ‘90‘); INSERT INTO `tblscore` VALUES (‘1009‘, ‘002‘, ‘82‘); INSERT INTO `tblscore` VALUES (‘1009‘, ‘001‘, ‘96‘); INSERT INTO `tblscore` VALUES (‘1009‘, ‘010‘, ‘82‘); INSERT INTO `tblscore` VALUES (‘1009‘, ‘008‘, ‘92‘); INSERT INTO `tblscore` VALUES (‘1010‘, ‘003‘, ‘90‘); INSERT INTO `tblscore` VALUES (‘1010‘, ‘002‘, ‘87‘); INSERT INTO `tblscore` VALUES (‘1010‘, ‘001‘, ‘96‘); INSERT INTO `tblscore` VALUES (‘1011‘, ‘009‘, ‘24‘); INSERT INTO `tblscore` VALUES (‘1011‘, ‘009‘, ‘25‘); INSERT INTO `tblscore` VALUES (‘1012‘, ‘003‘, ‘30‘); INSERT INTO `tblscore` VALUES (‘1013‘, ‘002‘, ‘37‘); INSERT INTO `tblscore` VALUES (‘1013‘, ‘001‘, ‘16‘); INSERT INTO `tblscore` VALUES (‘1013‘, ‘007‘, ‘55‘); INSERT INTO `tblscore` VALUES (‘1013‘, ‘006‘, ‘42‘); INSERT INTO `tblscore` VALUES (‘1013‘, ‘012‘, ‘34‘); INSERT INTO `tblscore` VALUES (‘1000‘, ‘004‘, ‘16‘); INSERT INTO `tblscore` VALUES (‘1002‘, ‘004‘, ‘55‘); INSERT INTO `tblscore` VALUES (‘1004‘, ‘004‘, ‘42‘); INSERT INTO `tblscore` VALUES (‘1008‘, ‘004‘, ‘34‘); INSERT INTO `tblscore` VALUES (‘1013‘, ‘016‘, ‘86‘); INSERT INTO `tblscore` VALUES (‘1013‘, ‘016‘, ‘44‘); INSERT INTO `tblscore` VALUES (‘1000‘, ‘014‘, ‘75‘); INSERT INTO `tblscore` VALUES (‘1002‘, ‘016‘, ‘100‘); INSERT INTO `tblscore` VALUES (‘1004‘, ‘001‘, ‘83‘); INSERT INTO `tblscore` VALUES (‘1008‘, ‘013‘, ‘97‘); -- ---------------------------- -- Table structure for `tblstudent` -- ---------------------------- DROP TABLE IF EXISTS `tblstudent`; CREATE TABLE `tblstudent` ( `StuId` varchar(5) NOT NULL COMMENT ‘学号‘, `StuName` varchar(10) NOT NULL COMMENT ‘学生姓名‘, `StuAge` int(11) DEFAULT NULL COMMENT ‘学生年龄‘, `StuSex` char(1) NOT NULL COMMENT ‘学生性别‘, PRIMARY KEY (`StuId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of tblstudent -- ---------------------------- INSERT INTO `tblstudent` VALUES (‘1000‘, ‘张无忌‘, ‘18‘, ‘男‘); INSERT INTO `tblstudent` VALUES (‘1001‘, ‘周芷若‘, ‘19‘, ‘女‘); INSERT INTO `tblstudent` VALUES (‘1002‘, ‘杨过‘, ‘19‘, ‘男‘); INSERT INTO `tblstudent` VALUES (‘1003‘, ‘赵敏‘, ‘18‘, ‘女‘); INSERT INTO `tblstudent` VALUES (‘1004‘, ‘小龙女‘, ‘17‘, ‘女‘); INSERT INTO `tblstudent` VALUES (‘1005‘, ‘张三丰‘, ‘18‘, ‘男‘); INSERT INTO `tblstudent` VALUES (‘1006‘, ‘令狐冲‘, ‘19‘, ‘男‘); INSERT INTO `tblstudent` VALUES (‘1007‘, ‘任盈盈‘, ‘20‘, ‘女‘); INSERT INTO `tblstudent` VALUES (‘1008‘, ‘岳灵珊‘, ‘19‘, ‘女‘); INSERT INTO `tblstudent` VALUES (‘1009‘, ‘韦小宝‘, ‘18‘, ‘男‘); INSERT INTO `tblstudent` VALUES (‘1010‘, ‘康敏‘, ‘17‘, ‘女‘); INSERT INTO `tblstudent` VALUES (‘1011‘, ‘萧峰‘, ‘19‘, ‘男‘); INSERT INTO `tblstudent` VALUES (‘1012‘, ‘黄蓉‘, ‘18‘, ‘女‘); INSERT INTO `tblstudent` VALUES (‘1013‘, ‘郭靖‘, ‘19‘, ‘男‘); INSERT INTO `tblstudent` VALUES (‘1014‘, ‘周伯通‘, ‘19‘, ‘男‘); INSERT INTO `tblstudent` VALUES (‘1015‘, ‘瑛姑‘, ‘20‘, ‘女‘); INSERT INTO `tblstudent` VALUES (‘1016‘, ‘李秋水‘, ‘21‘, ‘女‘); INSERT INTO `tblstudent` VALUES (‘1017‘, ‘黄药师‘, ‘18‘, ‘男‘); INSERT INTO `tblstudent` VALUES (‘1018‘, ‘李莫愁‘, ‘18‘, ‘女‘); INSERT INTO `tblstudent` VALUES (‘1019‘, ‘冯默风‘, ‘17‘, ‘男‘); INSERT INTO `tblstudent` VALUES (‘1020‘, ‘王重阳‘, ‘17‘, ‘男‘); INSERT INTO `tblstudent` VALUES (‘1021‘, ‘郭襄‘, ‘18‘, ‘女‘); -- ---------------------------- -- Table structure for `tblteacher` -- ---------------------------- DROP TABLE IF EXISTS `tblteacher`; CREATE TABLE `tblteacher` ( `TeaId` varchar(3) NOT NULL COMMENT ‘教师编号‘, `TeaName` varchar(10) NOT NULL COMMENT ‘教师名称‘, PRIMARY KEY (`TeaId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of tblteacher -- ---------------------------- INSERT INTO `tblteacher` VALUES (‘001‘, ‘姚明‘); INSERT INTO `tblteacher` VALUES (‘002‘, ‘叶平‘); INSERT INTO `tblteacher` VALUES (‘003‘, ‘叶开‘); INSERT INTO `tblteacher` VALUES (‘004‘, ‘孟星魂‘); INSERT INTO `tblteacher` VALUES (‘005‘, ‘独孤求败‘); INSERT INTO `tblteacher` VALUES (‘006‘, ‘裘千仞‘); INSERT INTO `tblteacher` VALUES (‘007‘, ‘裘千尺‘); INSERT INTO `tblteacher` VALUES (‘008‘, ‘赵志敬‘); INSERT INTO `tblteacher` VALUES (‘009‘, ‘阿紫‘); INSERT INTO `tblteacher` VALUES (‘010‘, ‘郭芙蓉‘); INSERT INTO `tblteacher` VALUES (‘011‘, ‘佟湘玉‘); INSERT INTO `tblteacher` VALUES (‘012‘, ‘白展堂‘); INSERT INTO `tblteacher` VALUES (‘013‘, ‘吕轻侯‘); INSERT INTO `tblteacher` VALUES (‘014‘, ‘李大嘴‘); INSERT INTO `tblteacher` VALUES (‘015‘, ‘花无缺‘); INSERT INTO `tblteacher` VALUES (‘016‘, ‘金不换‘); INSERT INTO `tblteacher` VALUES (‘017‘, ‘乔丹‘); -- ---------------------------- -- View structure for `tianmin_view` -- ---------------------------- DROP VIEW IF EXISTS `tianmin_view`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `tianmin_view` AS select `a`.`StuId` AS `stuid`,`a`.`StuName` AS `stuname`,`d`.`TeaId` AS `teaid`,`d`.`TeaName` AS `teaname`,`c`.`CourseId` AS `Courseid`,`c`.`CourseName` AS `CourseName`,`b`.`Score` AS `score` from (((`tblstudent` `a` join `tblscore` `b`) join `tblcourse` `c`) join `tblteacher` `d`) where ((`a`.`StuId` = `b`.`StuId`) and (`b`.`CourseId` = `c`.`CourseId`) and (`c`.`TeaId` = `d`.`TeaId`)) ;

 

























































































































































































































































































































以上是关于sql 高级查询语句总结的主要内容,如果未能解决你的问题,请参考以下文章

7张图总结SQL 数据分析常用语句

MyBatis总结之高级映射一对多查询

.NET Entity Framework(EF)使用SqlQuery直接操作SQL查询语句或者执行过程

MySQL之高级SQL语句

MyBatis学习09高级映射之一对多查询

SQL查询语句