1. 程式人生 > >sql 高階查詢語句總結

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 高階查詢語句總結

資料庫建表語句在最後 –這是一個學生成績管理系統,建立資料庫表語句在最後,表包括四張表tblStudent 學生資訊表,tblScore 成績表 ,tblteacher 教師資訊表,tblcourse 課程表 –希望大家學會使用mysql資料庫,以後工作中使

sql複雜查詢語句總結

本人總結了資料庫查詢中一些比較複雜的查詢,如連結串列查詢,多重子查詢,連表查詢+子查詢等,由於技術有限,並沒有太多考慮sql語句的優化,如有不足之處,敬請諒解。 先來看看錶結構: [sql] view plain copy print? create table student(  sno v

SQL中的SELECT 簡單查詢語句總結

clas 識別 結果集 -i ear get int 一個 lec --scott用戶不能使用,使用system登錄--修改用戶scott賬戶解鎖ALTER USER SCOTT ACCOUNT UNLOCK;--重新設置密碼identified被識別的alter user

SQL 查詢語句總結

SQL 查詢語句總結 1. 列名 Select Sname AS 姓名 from Student; ·這裡AS可以省略。   2. 去重:distinct Select distinctSno from sc;   3.  WHERE條件

Oracle SQL:select各類查詢語句總結

SQL查詢語句總結 資料查詢語言:即DML(Data Mannipulation Language)資料操縱語言,用於查詢、操縱資料表資料行 本手冊所有示例引用表均以TIPTOP GP  ERP資料庫表為基礎演示, 1、SELECT 查詢所有列資料或特定列資料 --查

MySQL 抓取SQL查詢語句

mysql 索引 數據表 sql慢查詢 逗哥自動化 當MySQL服務器出現異常(慢),首先要考慮是否因,SQL語句引起數據庫慢,如果情況比較緊急,我們就要立刻 SHOW FULL PROCESSLIST; 去查看,但我建議大家使用-e參數,采用非交互的方式,因為這樣可以使用grep

45、SQL邏輯查詢語句執行順序

mysq 一定的 gif 行數據 查詢語句 客戶 prim 記錄 測試表 一 SELECT語句關鍵字的定義順序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> J

python 3 mysql sql邏輯查詢語句執行順序

shanghai 不能 結果 utf8 才會 right 完成 並且 分享 python 3 mysql sql邏輯查詢語句執行順序 一 、SELECT語句關鍵字的定義順序 SELECT DISTINCT <select_list> FROM <left

hibernate的hql查詢語句總結

c中 sql tail 創建 sele 則無 log join 方法 <div class="post"> <h1 class="postTitle"> <a id="cb_post_title_url" clas

Uep查詢語句總結

col req class data ati property 接收 eid 前臺 今天沒事幹總結一下uep查詢語句: 第一種方法: public List<WzInitializeStoreInfo> retrieve(QueryParamList para

SQL server 查詢語句優先級-摘抄

avi 出現 true sql 客戶端 top 相對 ups 列表 SQL 不同於與其他編程語言的最明顯特征是處理代碼的順序。在大數編程語言中,代碼按編碼順序被處理,但是在SQL語言中,第一個被處理的子句是FROM子句,盡管SELECT語句第一個出現,但是幾乎總是最後被處理

mysql五補充部分:SQL邏輯查詢語句執行順序

std data 根據 使用 cor 分析 執行過程 笛卡爾 不同的 閱讀目錄 一 SELECT語句關鍵字的定義順序 二 SELECT語句關鍵字的執行順序 三 準備表和數據 四 準備SQL邏輯查詢測試語句 五 執行順序分析 一 SELECT語句關鍵字的定義

Mysql補充部分:SQL邏輯查詢語句執行順序

num 支持 重復數 mysql 當我 每次 列表 sha mysq 一 SELECT語句關鍵字的定義順序 SELECT DISTINCT <select_list> FROM <left_table> <join_typ

mysql第四篇--SQL邏輯查詢語句執行順序

l數據庫 分組操作 一定的 內容 isp 新建 處理 hid 表示 mysql第四篇--SQL邏輯查詢語句執行順序 一.SQL語句定義順序 SELECT DISTINCT <select_list> FROM <left_table> <jo

SQL邏輯查詢語句執行順序 需要重新整理

lis highlight 虛擬表 發生 最終 數據處理 adding sql查詢 邏輯語句 一.SQL語句定義順序 1 2 3 4 5 6 7 8 9 10 SELECT DISTINCT <select_list> FROM <l

DQL查詢語句總結

max bst 交叉 安全 man 流程 空格 minute end 基礎查詢 一、語法select 查詢列表from 表名;二、特點1、查詢列表可以是字段、常量、表達式、函數,也可以是多個2、查詢結果是一個虛擬表 三、示例1、查詢單個字段select 字段名 from 表

MongoDB 查詢語法與常用查詢語句總結

MongoDB 常用查詢語句總結 先來一波查詢語句語法的基本解釋: 列子: db.mycol.find({"likes": {$gt:10}, $or: [{"by": "yiibai tutorials"}, {"title": "MongoDB Overview"}]}

sql所有查詢語句

sql:mysql查詢資料 1.基本查詢 查詢所有欄位 select * from table_name; 查詢指定欄位 select 欄位,欄位 from table_name; as起別名 select 欄位 as name from table_name;

SQL邏輯查詢語句執行順序

number HERE 語句 order distinct type limit con lis SELECT語句語法順序 SELECT DISTINCT <select_list> FROM <left_table> <join_

SQL Server資料庫開發(3.SQL高階查詢

一,巢狀子查詢         降低SQL語句的複雜度,提高SQL語句的可讀性 --子查詢作為條件  (where) --查詢王五前面的同學 select * from StuInfo where stuid < (select stu