日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql嵌套查询效率低,连接查询代替嵌套查询提高select效率

發布時間:2023/12/14 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql嵌套查询效率低,连接查询代替嵌套查询提高select效率 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當數據庫中含有大量數據時,而我們所需要的信息不再是僅僅局限于一個表中的數據信息,這時我們需要將對一個表進行信息查詢轉而變成對多個表進行信息搜索并進行組合。

解決這樣的問題我們通常是運用嵌套查詢的方法,首先先執行內部的子查詢再將子查詢的結果作為外層查詢的數據源,最后再在其基礎之上進行主查詢。這樣我們就相當于做了兩次的查詢select語句的效率也有所降低。而引入連接之后SQL Server將要執行的僅僅是一個查詢。

假如有學生表和課程表、選課三個表,查詢選修了化學的學生姓名。

T_student

student_ID

student_Name

student_Age

1

李明

11

2

張三

12

T_course

course_ID

course_Name

1001

化學

1002

生物

T_selecet

student_ID

course_ID

grade

1

1001

80

2

1002

85

嵌套查詢:

select student_name from T_student where T_student.student_id in

(select T_select.student_id from T_select where T_select.course_id in

(select T_course.course_id from T_course where course_name='化學' ) )

Go

連接查詢

select T_student.student_Name from T_student join T_select

on T_student.student_Id=T_select.student_id join T_course

on T_course.course_id=T_select.course_id

where T_course.course_name='化學'

go

兩種方式查詢的結果均為:

由上面兩種查詢方式可以看出嵌套查詢相當于執行了3次查詢而連接查詢卻僅僅是執行了一次就達到了目的

連接查詢結果是由多表組成的查詢結果所以查詢的結果跟連接的方式有很大的關系,故連接可以分為內連接、左向外聯接、右向外連接、完整外連接、交叉連接幾種連接方式。幾種連接方式完全可以取代嵌套查詢可能查詢到的結果,就如同上例一樣,所以如果想要在查詢上提高select語句的查詢效率完全可以用連接查詢方式來代替嵌套查詢。

內連接即表1 inner join(join)表2on其結果返回兩個表中所有匹配的行

左向外聯接 ?表1 leftouter join(left join)表2on 返回結果集中將包括數據表1中所有的記錄,而不僅僅是連接字段所匹配的記錄。如果數據表1的某條記錄在數據表2中沒有匹配的記錄,則結果集相應記錄的有關數據表2的所有字段將為空值。

右向外連接表1 right outer join(rightjoin)表2 on 返回結果集中將包括數據表2中所有的記錄,而不僅僅是聯接字段所匹配的記錄。如果數據表2的某條記錄在數據表1中沒有匹配的記錄,則結果集相應記錄的有關數據表1的所有字段將為空值

完整外連接表1 full outer join (full join) 表2on 結果集將包含兩個數據表中的所有記錄,當某條記錄在另一個數據表中沒有匹配記錄時,則將另一個數據表的選擇列表字段指定為空值

交叉連接? 表1 cross join 表2 on 如果在select語句中沒有使用where子句,則交叉聯接將返回數據表1和數據表2中記錄的笛卡兒乘積,即交叉聯接返回數據表1中的所有記錄,以及數據表1中的每一條記錄與數據表2中的所有記錄的組合。

總結

以上是生活随笔為你收集整理的mysql嵌套查询效率低,连接查询代替嵌套查询提高select效率的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。