sql語句中較為重要的查詢邏輯
較複雜的SQL例句
S(Sno,Sname,Sage,Sdept, Ssex) 學生表
C(Cno,Cname,Teacher) 課程表
SC(Sno,Cno,score) 成績表
1、查詢“001”課程比“002”課程成績低的所有學生的學號;
select a.Sno from (select sno, score from SC where Cno='001') a, (select sno, score from SC where Cno='002') b where a.score<b.score and a.sno=b.sno;
2、查詢平均成績大於60分的同學的學號和平均成績;
select Sno,avg(score) from sc group by Sno having avg(score) >60;
3、查詢姓“高”的老師的個數;
select count(distinct(Teacher)) from C where Teacher like '高%';
4、查詢沒學過“XXXX”老師課的同學的學號、姓名;
select S.Sno,S.Sname from S where Sno not in (select distinct( SC.Sno) from SC, C where SC.Cno=C.Cno and C.Teacher='XXXX');
5、查詢學過“001”並且也學過編號“002”課程的同學的學號、姓名;
select S.Sno, S.Sname from S, SC where S.Sno=SC.Sno and SC.Cno='001'and exists ( Select * from SC as SC_2 where SC_2.Sno=SC.Sno and SC_2.Cno='002');
6、查詢學過“XXXX”老師所教的所有課的同學的學號、姓名;
Select Sno,Sname from S where Sno in (select Sno from SC, C where SC.Cno=C.Cno and C.Teacher='XXXX' group by Sno having count(SC.Cno)=(select count(Cno) from C where Teacher='XXXX'))
8、查詢課程編號“002”的成績比課程編號“001”課程高的所有同學的學號、姓名;
Select Sno,Sname from (select S.Sno, S.Sname, score, (select score from SC SC_2 where SC_2.Sno=S.Sno and SC_2.Cno='002') score2 from S, SC where S.Sno=SC.Sno and Cno='001') S_2 where score2 >score;
9、查詢所有課程成績大於60分的同學的學號、姓名;
select Sno,Sname from S where Sno not in (select S.Sno from S, SC where S.Sno=SC.Sno and score<60);
10、查詢沒有學全所有課的同學的學號、姓名;
select S.Sno, S.Sname from S,SC where S.Sno=SC.Sno group by S.Sno having count(Cno) <(select count(Cno) from C)
11、查詢至少有一門課與學號為“95001”的同學所學相同的同學的學號和姓名;
select S.Sno,S.Sname from S,SC where S.Sno=SC.Sno and Cno in (select Cno from SC where Sno='95001')
12、查詢至少學過學號為“95001”同學所有一門課的其他同學學號和姓名;
select distinct SC.Sno,Sname from S,SC where S.Sno=SC.Sno and Cno in (select Cno from SC where Sno='95001')
這是大學期間,老師給的資料庫查詢參考,對於現在不斷在程式語言中進取的人來說保證看過上面的所有查詢邏輯肯定會有更新的認識。個人甚至可以肯定的說,個人的資料庫水平仍舊沒有突破上面12條查詢語句所提供的邏輯,希望這裡將高老師的智慧分享一下。
相關文章
- MySQL之SQL邏輯查詢順序MySql
- 查詢語句中escape的轉義字元字元
- 什麼是SQL 語句中相關子查詢與非相關子查詢SQL
- SQL邏輯查詢處理順序特別提醒SQL
- MySQL邏輯查詢處理MySql
- sql語句中as的用法SQL
- 查詢處理的邏輯順序
- 在 Sql語句中使用正規表示式來查詢你所要的字元SQL字元
- sql語句中JOIN ON 的使用SQL
- 《T-SQL查詢》讀書筆記Part 1.邏輯查詢處理知多少SQL筆記
- 查詢 分析硬解析較高的sql,SQL
- sql語句中#{}和${}的區別SQL
- sql語句中as的用法和作用SQL
- sql語句中select……as的用法SQL
- Sql server中時間查詢的一個比較快的語句(轉)SQLServer
- SQL Server查詢計劃系列之——邏輯運算子與物理運算子SQLServer
- MongoDB之資料查詢(邏輯運算)MongoDB
- 查詢oracle比較慢的session和sqlOracleSessionSQL
- 在HQL select查詢語句中自定義查詢結果返回的資料型別資料型別
- where語句中多條件查詢欄位NULL與NOT NULL不確定性查詢Null
- SQL查詢語句 (Oracle)SQLOracle
- SQL server 查詢語句SQLServer
- sql查詢語句流程SQL
- SQL mother查詢語句SQL
- SQL語句中exists和in的區別SQL
- SQL語句中not in 和not exist的區別SQL
- sql語句中as的意思是什麼SQL
- 在sql語句中替換Not In 的方法SQL
- sql語句中常量的處理SQL
- 子查詢包含where ..or在Corelated Subquery 中語句中問題
- [java程式碼]業務邏輯查詢幫助類Java
- 查詢某佔用資源較多的SQLSQL
- 查詢oracle比較慢的session和SQL[轉]OracleSessionSQL
- 查詢效率低下的sql的語句SQL
- 從根上理解elasticsearch(lucene)查詢原理(1)-lucece查詢邏輯介紹Elasticsearch
- 查詢作為條件的SQLSQL
- SQL 語句中關於 NULL 的那些坑SQLNull
- SQL語句中NULL的真實含義SQLNull