mysql子查詢是什么?mysql數據庫子查詢實際使用示例

mysql子查詢是什么?

子查詢,又叫內部查詢,相對于內部查詢,包含內部查詢的就稱為外部查詢。子查詢允許把一個查詢嵌套在另一個查詢當中。

mysql數據庫子查詢語句的特點:任何可使用表達式的地方,都可以使用子查詢,只要他返回的是單個值;子查詢按返回值的數量,子查詢對外部依賴性,比較運算符的不同性進行分類;這在分頁查詢sql語句中經常用到。

一:子查詢的特點:

  1. 子查詢可被嵌套在 select,insert,update,delete 等語句中

  2. 大多數情況下子查詢充當中間結果集角色

  3. 子查詢可進行嵌套,且根據內存及表達式復雜程度不同,嵌套限制也不同

  4. 任何可使用表達式的地方,都可以使用子查詢,只要他返回的是單個值

二:子查詢的分類:

  1. 按返回值的數量可分為:標量子查詢,多值子查詢

  2. 按子查詢對外部依賴性:獨立子查詢,相關子查詢

  3. 按比較運算符的不同性:IN,EXISTS,ANY,SOME,ALL等多種形式

三:子查詢的使用:

  1. 首先創建兩個表(學生表和教師表)

    #?創建學生表 mysql>?create?table?tb_student( ????->?stu_ID?long, ????->?class?varchar(5), ????->?score?int ????->?); Query?OK,?0?rows?affected?(0.23?sec)  #?創建教師表 mysql>?create?table?tb_teacher( ????->?tea_ID?long, ????->?class?varchar(5), ????->?age?int ????->?); Query?OK,?0?rows?affected?(0.49?sec)
  2. 將一些值插入到表中

    insert?into?tb_student?values(1,?"A",?20);  insert?into?tb_student?values(2,?"A",?30);  insert?into?tb_student?values(3,?"A",?70);  insert?into?tb_student?values(4,?"B",?60);  insert?into?tb_student?values(5,?"B",?70);  insert?into?tb_student?values(6,?"B",?80);  insert?into?tb_teacher?values(1,?"A",?25);  insert?into?tb_teacher?values(2,?"B",?40);
  3. 準備工作完畢,接下來進行子查詢練習

  • 例一:各班教師ID及其班級平均分數

    mysql>?select?tea_ID, ????->?(select?avg(score)?from?tb_student?as?s?where?s.class?=?t.class?group?by?class) ????->?as?Avg?from?tb_teacher?as?t; +--------+---------+ |?tea_ID?|?Avg?????| +--------+---------+ |?1??????|?40.0000?| |?2??????|?70.0000?| +--------+---------+ 2?rows?in?set?(0.00?sec)
  • 例二:各班級教師年齡及其班級及格人數(60為及格線)

    mysql>?select?age, ????->?(select?count(*)?from?tb_student?as?s?where?s.class?=?t.class?&&?s.score?>=?60?group?by?class) ????->?as?Count?from?tb_teacher?as?t?order?by?Count?desc; +------+-------+ |?age??|?Count?| +------+-------+ |???40?|?????3?| |???25?|?????1?| +------+-------+ 2?rows?in?set?(0.00?sec)

相關推薦:

mysql?分頁查詢語句數據庫查詢_MySQL

mysql?分頁查詢語句數據庫查詢_MySQL

視頻:mysql?分頁查詢語句數據庫查詢_MySQL

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享