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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql关联查询关键字_MySQL数据高级查询之连接查询、联合查询、子查询

發(fā)布時(shí)間:2023/12/2 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql关联查询关键字_MySQL数据高级查询之连接查询、联合查询、子查询 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

連接查詢(xún): 將多張表(>=2)進(jìn)行記錄的連接(按照某個(gè)指定的條件進(jìn)行數(shù)據(jù)拼接)。

連接查詢(xún)的意義: 在用戶(hù)查看數(shù)據(jù)的時(shí)候,需要顯示的數(shù)據(jù)來(lái)自多張表.

連接查詢(xún): join, 使用方式: 左表 join 右表;左表: 在join關(guān)鍵字左邊的表;右表: 在join關(guān)鍵字右邊的表

連接查詢(xún)分類(lèi):SQL中將連接查詢(xún)分成四類(lèi):?內(nèi)連接,外連接,自然連接和交叉連接

交叉連接:交叉連接: cross join, 從一張表中循環(huán)取出每一條記錄, 每條記錄都去另外一張表進(jìn)行匹配: 匹配一定保留(沒(méi)有條件匹配), 而連接本身字段就會(huì)增加(保留),最終形成的結(jié)果叫做: 笛卡爾積。但是基本不會(huì)用到(反正我是從沒(méi)有用過(guò))

基本語(yǔ)法: 左表 cross join 右表 或 from 左表,右表;

內(nèi)連接: [inner] join, 從左表中取出每一條記錄,去右表中與所有的記錄進(jìn)行匹配: 匹配必須是某個(gè)條件在左表中與右表中相同最終才會(huì)保留結(jié)果,否則不保留.

基本語(yǔ)法:左表 [inner] join 右表 on 左表.字段 = 右表.字段; on表示連接條件: 條件字段就是代表相同的業(yè)務(wù)含義(如my_student.c_id和my_class.id)

字段別名以及表別名的使用: 在查詢(xún)數(shù)據(jù)的時(shí)候,不同表有同名字段,這個(gè)時(shí)候需要加上表名才能區(qū)分, 而表名太長(zhǎng), 通常可以使用別名.

內(nèi)連接可以沒(méi)有連接條件: 沒(méi)有on之后的內(nèi)容,這個(gè)時(shí)候系統(tǒng)會(huì)保留所有結(jié)果(笛卡爾積)

內(nèi)連接還可以使用where代替on關(guān)鍵字,但效率差很多。

外連接: 以某張表為主,取出里面的所有記錄, 然后每條與另外一張表進(jìn)行連接: 不管能不能匹配上條件,最終都會(huì)保留: 能匹配,正確保留; 不能匹配,其他表的字段都置空NULL.

外連接分為兩種: 是以某張表為主: 有主表

left join: 左外連接(左連接), 以左表為主表

right join: 右外連接(右連接), 以右表為主表

基本語(yǔ)法: 左表 left/right join 右表 on 左表.字段 = 右表.字段;

自然連接:略(基本不用自然連接)

聯(lián)合查詢(xún)

聯(lián)合查詢(xún):將多次查詢(xún)(多條select語(yǔ)句), 在記錄上進(jìn)行拼接(字段不會(huì)增加)

基本語(yǔ)法:多條select語(yǔ)句構(gòu)成: 每一條select語(yǔ)句獲取的字段數(shù)必須嚴(yán)格一致(但是字段類(lèi)型無(wú)關(guān))

Select 語(yǔ)句1

Union [union選項(xiàng)]

Select語(yǔ)句2...

Union選項(xiàng): 與select選項(xiàng)一樣有兩個(gè)

All: 保留所有(不管重復(fù))

Distinct: 去重(整個(gè)重復(fù)): 默認(rèn)的

聯(lián)合查詢(xún)只要求字段一樣, 跟數(shù)據(jù)類(lèi)型無(wú)關(guān)

聯(lián)合查詢(xún)的意義:

1. 查詢(xún)同一張表,但是需求不同: 如查詢(xún)學(xué)生信息, 男生身高升序, 女生身高降序.

2. 多表查詢(xún): 多張表的結(jié)構(gòu)是完全一樣的,保存的數(shù)據(jù)(結(jié)構(gòu))也是一樣的.

Order by使用

在聯(lián)合查詢(xún)中: order by不能直接使用,需要對(duì)查詢(xún)語(yǔ)句使用括號(hào)才行;另外,要orderby生效: 必須搭配limit: limit使用限定的最大數(shù)即可.

子查詢(xún)

子查詢(xún): 查詢(xún)是在某個(gè)查詢(xún)結(jié)果之上進(jìn)行的.(一條select語(yǔ)句內(nèi)部包含了另外一條select語(yǔ)句).

子查詢(xún)分類(lèi)

子查詢(xún)有兩種分類(lèi)方式: 按位置分類(lèi);和按結(jié)果分類(lèi)

按位置分類(lèi): 子查詢(xún)(select語(yǔ)句)在外部查詢(xún)(select語(yǔ)句)中出現(xiàn)的位置

From子查詢(xún): 子查詢(xún)跟在from之后

Where子查詢(xún): 子查詢(xún)出現(xiàn)where條件中

Exists子查詢(xún): 子查詢(xún)出現(xiàn)在exists里面

按結(jié)果分類(lèi): 根據(jù)子查詢(xún)得到的數(shù)據(jù)進(jìn)行分類(lèi)(理論上講任何一個(gè)查詢(xún)得到的結(jié)果都可以理解為二維表)

標(biāo)量子查詢(xún): 子查詢(xún)得到的結(jié)果是一行一列

列子查詢(xún): 子查詢(xún)得到的結(jié)果是一列多行

行子查詢(xún): 子查詢(xún)得到的結(jié)果是多列一行(多行多列) (1,2,3出現(xiàn)的位置都是在where之后)

表子查詢(xún): 子查詢(xún)得到的結(jié)果是多行多列(出現(xiàn)的位置是在from之后)

標(biāo)量子查詢(xún)

需求: 找到分類(lèi)為科技的所有文章標(biāo)題

列子查詢(xún)

這個(gè)時(shí)候我就想起以前面試的情形,當(dāng)時(shí)有一道題,給我一個(gè)表,讓我找出語(yǔ)文和數(shù)學(xué)都及格人的名字。表是這樣的:

行子查詢(xún)

行子查詢(xún): 返回的結(jié)果可以是多行多列(一行多列)

需求:找出年齡最大且身高最高的人

方案一:

方案二:

表子查詢(xún)

表子查詢(xún): 子查詢(xún)返回的結(jié)果是多行多列的二維表: 子查詢(xún)返回的結(jié)果是當(dāng)做二維表來(lái)使用

需求:找出每個(gè)人最好的成績(jī)

Exists子查詢(xún)

Exists: 是否存在的意思, exists子查詢(xún)就是用來(lái)判斷某些條件是否滿(mǎn)足(跨表), exists是接在where之后: exists返回的結(jié)果只有0和1.

需求:如果存在的話(huà)身高大于2米的人,列出表中所有數(shù)據(jù)

MySQL數(shù)據(jù)高級(jí)查詢(xún)之連接查詢(xún)、聯(lián)合查詢(xún)、子查詢(xún)

總結(jié)

以上是生活随笔為你收集整理的mysql关联查询关键字_MySQL数据高级查询之连接查询、联合查询、子查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。