最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql連接查詢?cè)斀?/h1>
 更新時(shí)間:2022年05月19日 10:07:47   作者:one?2?1?  
這篇文章主要介紹了mysql連接查詢,當(dāng)查詢結(jié)果的列來源于多張表時(shí),需要將多張表連接成一個(gè)大的數(shù)據(jù)集,再選擇合適的列返回,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧

1.連接查詢

作用:當(dāng)查詢結(jié)果的列來源于多張表時(shí),需要將多張表連接成一個(gè)大的數(shù)據(jù)集,再選擇合適的列返回

2、連接類型

內(nèi)連接

定義:

內(nèi)連接查詢:查詢結(jié)果為兩個(gè)表匹配到的數(shù)據(jù)

語法1:

select * from 表1
inner join 表2 on 表1.列 = 表2.列

例:查詢學(xué)生信息及學(xué)生成績

 語法2:

?select * from 表1,表2 on 表1.列 = 表2.列

注:通常不使用此語法,效率較低

 3個(gè)表連接

-- 查詢學(xué)生信息及學(xué)生的課程對(duì)應(yīng)的成績

顯示指定列

 

左連接

定義:

查詢的結(jié)果為兩個(gè)表匹配到的數(shù)據(jù)加左表特有的數(shù)據(jù),對(duì)于右表中不存在的數(shù)據(jù)(匹配不到)使用null填充

語法:

select * from 表1
left join 表2 on 表1 .列 = 表2.列

例:

查詢所有學(xué)生的成績,包括沒有成績的學(xué)生

 例:

查詢所有學(xué)生的成績,包括沒有成績的學(xué)生,需要顯示課程名

右連接 

 定義:

右連接查詢:查詢結(jié)果為兩個(gè)表匹配到的數(shù)據(jù)加右表特有的數(shù)據(jù),對(duì)于左邊中不存在的數(shù)據(jù)使用null填充

語法:

select * from 表1
right join 表2 on 表1 .列 = 表2.列

例:查詢所有學(xué)生的成績,包括沒有成績的學(xué)生 

 例:

查詢所有學(xué)生的成績,包括沒有成績的學(xué)生,需要顯示課程名

自關(guān)聯(lián)

定義

連接查詢的一種應(yīng)用,對(duì)同一個(gè)表查詢多次,把查詢多次得到的結(jié)果連接組成新的結(jié)果 

主要應(yīng)用場景:數(shù)據(jù)有上下級(jí)關(guān)系,并且存于同一個(gè)表中

 例:查詢河南省的所有城市

 

例:查詢鄭州市的所有區(qū)縣 

 

例:查詢河南省所有區(qū)縣

 子查詢

定義

在一個(gè)select 語句中,嵌入另外一個(gè)select語句,那么嵌入的那個(gè)select語句稱之為子查詢語句

主查詢

外城的select稱之為主查詢語句

主查詢和子查詢的關(guān)系

子查詢是嵌入到主查詢中子查詢是輔助主查詢的,要么充當(dāng)條件,要么充當(dāng)數(shù)據(jù)源子查詢是可以獨(dú)立存在的語句是一條轉(zhuǎn)正的select語句 

子查詢充當(dāng)條件

以下例子中子查詢返回結(jié)果只有一個(gè)值(一行一列),這種稱之為標(biāo)量子查詢

例1:查詢大于平均年齡的學(xué)生

-- 查詢班里學(xué)生的平均年齡
SELECT AVG(age) FROM students --21.5833
-- 查詢大于平均年齡的學(xué)生
SELECT * from students where age > 21.5833
SELECT * FROM students where age >(SELECT AVG(age) FROM students);

以下例子返回?cái)?shù)據(jù)結(jié)果是一列數(shù)據(jù)(一列多行),這種稱之為列子查詢

例: 查詢18歲學(xué)生的成績,要求顯示成績

-- 學(xué)生表中查詢18歲學(xué)生的學(xué)號(hào)
SELECT studentNo from students WHERE age = 18
-- 成績表中根據(jù)學(xué)號(hào)查詢成績
SELECT * FROM scores where studentNo in ('002','006' )
SELECT * FROM scores where studentNo in (SELECT studentNo from students WHERE age = 18 )

 以下例子查詢的結(jié)果是一行(一行多列),這種稱之為行子查詢

例:查詢和王昭君同班、同齡的學(xué)生信息 

SELECT class,age from students where name = '王昭君'
SELECT * from students where class = '1班' and age = 20
SELECT * from students where (class,age) = ('1班' , '20')
SELECT * from students where (class,age) = (SELECT class,age from students where name = '王昭君')

 子查詢充當(dāng)數(shù)據(jù)源

以下例子子查詢返回的結(jié)果是多行多列(相當(dāng)于一個(gè)表),這種稱之為表級(jí)子查詢;

例:查詢數(shù)據(jù)庫和系統(tǒng)測(cè)試的課程成績

子查詢中特定關(guān)鍵字使用 

in范圍 

格式:主查詢where條件in(列子查詢)

any|some任意一個(gè)

格式:主查詢where 列 = any(列子查詢)

在條件查詢的結(jié)果中匹配任意一個(gè)幾個(gè),等價(jià)于in  

all

格式:主查詢where列 = all(列子查詢):等價(jià)于里面所有

格式:主查詢where列<>all(列子查詢):不等于其中所有 

到此這篇關(guān)于mysql連接查詢的文章就介紹到這了,更多相關(guān)mysql連接查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql中find_in_set()函數(shù)的使用及in()用法詳解

    mysql中find_in_set()函數(shù)的使用及in()用法詳解

    這篇文章主要介紹了mysql中find_in_set()函數(shù)的使用以及in()用法詳解,需要的朋友可以參考下
    2018-07-07
  • 關(guān)于Mysql提高SQL性能的技巧(必看)

    關(guān)于Mysql提高SQL性能的技巧(必看)

    這篇文章主要介紹了關(guān)于Mysql提高SQL性能的技巧(必看),SQL查詢的性能直接影響系統(tǒng)的響應(yīng)時(shí)間,優(yōu)化SQL可以減少查詢的執(zhí)行時(shí)間,提高系統(tǒng)的響應(yīng)速度,提升用戶體驗(yàn),本文就來詳細(xì)講解一下如何優(yōu)化SQL性能
    2023-07-07
  • 一文帶你理解慢SQL分析與優(yōu)化

    一文帶你理解慢SQL分析與優(yōu)化

    從系統(tǒng)設(shè)計(jì)角度看,一個(gè)系統(tǒng)從設(shè)計(jì)搭建到數(shù)據(jù)逐步增長,SQL執(zhí)行效率可能會(huì)出現(xiàn)劣化,為繼續(xù)支撐業(yè)務(wù)發(fā)展,我們需要對(duì)慢SQL進(jìn)行分析和優(yōu)化,下面這篇文章主要給大家介紹了關(guān)于慢SQL分析與優(yōu)化的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 詳解如何在阿里云上安裝mysql

    詳解如何在阿里云上安裝mysql

    mysql作為輕量級(jí)開源數(shù)據(jù)庫,在企業(yè)級(jí)的應(yīng)用中非常的廣泛。這篇文章主要介紹了詳解如何在阿里云上安裝mysql,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 忘記mysql數(shù)據(jù)庫root用戶密碼重置方法[圖文]

    忘記mysql數(shù)據(jù)庫root用戶密碼重置方法[圖文]

    忘記mysql數(shù)據(jù)庫root用戶密碼重置方法,需要的朋友可以參考下。
    2011-11-11
  • Ubuntu15下mysql5.6.25不支持中文的解決辦法

    Ubuntu15下mysql5.6.25不支持中文的解決辦法

    Ubuntu15下mysql5.6.25出現(xiàn)亂碼,不支持中文,該問題如何解決呢?下面看看小編是怎么解決此問題的,需要的朋友可以參考下
    2015-09-09
  • mysql 使用存儲(chǔ)過程實(shí)現(xiàn)樹節(jié)點(diǎn)的獲取方法

    mysql 使用存儲(chǔ)過程實(shí)現(xiàn)樹節(jié)點(diǎn)的獲取方法

    這篇文章主要介紹了mysql 使用存儲(chǔ)過程實(shí)現(xiàn)樹節(jié)點(diǎn)的獲取方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • MySQL中Set與Enum的區(qū)別和使用詳解

    MySQL中Set與Enum的區(qū)別和使用詳解

    這篇文章主要介紹了MySQL中Set與Enum的區(qū)別和使用詳解,數(shù)據(jù)庫中的 set 是一種集合數(shù)據(jù)類型,用于存儲(chǔ)不同的元素,每個(gè)元素只能出現(xiàn)一次,Set 的主要作用是方便進(jìn)行集合運(yùn)算,如并集、交集等操作,需要的朋友可以參考下
    2024-01-01
  • MYSQL使用Union將兩張表的數(shù)據(jù)合并顯示

    MYSQL使用Union將兩張表的數(shù)據(jù)合并顯示

    使用union操作符會(huì)將多張表中相同的數(shù)據(jù)取值一次,如果想將表1和表2中的值完整的顯示出來,可以使用union all,今天通過本文給大家分享MYSQL使用Union將兩張表的數(shù)據(jù)合并顯示功能,需要的朋友參考下吧
    2021-08-08
  • MySQL實(shí)現(xiàn)數(shù)據(jù)批量更新功能詳解

    MySQL實(shí)現(xiàn)數(shù)據(jù)批量更新功能詳解

    最近需要批量更新大量數(shù)據(jù),習(xí)慣了寫sql,所以還是用sql來實(shí)現(xiàn),下面這篇文章主要給大家總結(jié)介紹了關(guān)于MySQL批量更新的方式,需要的朋友可以參考下
    2023-02-02

最新評(píng)論

洱源县| 兰州市| 垦利县| 五家渠市| 诸城市| 邢台县| 辉南县| 通渭县| 建阳市| 崇左市| 土默特左旗| 滦平县| 宁陕县| 南部县| 琼中| 大港区| 灵寿县| 纳雍县| 岳阳市| 东乌珠穆沁旗| 新建县| 调兵山市| 阿图什市| 玉树县| 利津县| 沾化县| 航空| 黔西| 平原县| 葵青区| 亳州市| 玛沁县| 彭山县| 墨脱县| 天水市| 资兴市| 教育| 宁强县| 南京市| 濮阳市| 阿瓦提县|