MySQL中的各種查詢問題
更新時間:2024年01月11日 16:04:11 作者:Mr-X~
這篇文章主要介紹了MySQL中的各種查詢問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
MySQL中的各種查詢
基礎查詢




條件查詢
#語法:select 查詢列表 from 表名 where 篩選條件; #分類: # 一.按條件表達式篩選,條件運算符:> < = != <> >= <= # 二.按邏輯表達式篩選,邏輯運算符:&& || ! and or not # 三.模糊查詢:like between and in is null # like一般和通配符搭配使用,%通配符表示任意多個字符包含0個字符 # _通配符表示任意單個字符


排序查詢
#語法: # select 查詢列表 from 表名 # [where 篩選條件] # order by 排序列表 [asc|desc] #其中asc表示升序排列,desc表示降序排列,如果不寫默認是asc升序排列

常見函數(shù)查詢

分組查詢
#語法 # select 分組函數(shù),列(要求是出現(xiàn)在group by后面的列) # from 表 # [where 篩選條件] # group by 分組的列表 # [order by 子句] #常見的分組函數(shù) # sum求這組總和,avg求這組平均值,max求這組最大值,min求這組最小值,count計算這組數(shù)據(jù)總的個數(shù)




連接查詢
#創(chuàng)建表并插入數(shù)據(jù)
create table a_table(
a_id int,
a_name varchar(20),
a_age int
);
create table b_table(
b_id int,
b_name varchar(20),
b_age int
);
insert into a_table values(1,"張大麻子",19),
(2,"張二麻子",18),
(7,"王大壯",19),
(8,"劉鐵柱",20);
insert into b_table values(1,"五個核桃",18),
(2,"鐵牛",20),
(4,"劉大柱子",19),
(5,"母夜叉子",20);
內(nèi)連接
# 內(nèi)連接 # 關鍵字 inner join on # 其中inner關鍵字可以省略 # 篩選條件放在where后面,連接條件放在on后面,提高分離性 # 內(nèi)連接的結(jié)果只取兩個表的交集部分

外連接
#語法: # left (outer) join on # right (outer) join on #外連接中的outer關鍵字可以省略 #全外連接mysql不支持,暫時不必掌握 #外連接分為左外連接和右外連接,左外連接左邊的表是主表,右外連接右邊的表是主表 #外連接與內(nèi)連接不同的是:內(nèi)連接只會取兩個表的交集部分,而外連接會顯示出主表中的全部記錄,而另外一個非主表只會顯示出符合搜索條件的 # 記錄,其它的會用null代替

交叉連接
# 語法: # cross join #交叉連接其實就是求兩個表的笛卡爾積 #如果a表有m條記錄,b表有n條記錄,那么交叉連接之后,總的記錄就有m*n條

子查詢
#如果在一個sql查詢語句中出現(xiàn)了另外一個sql查詢語句,這就叫做子查詢 # 子查詢出現(xiàn)的位置,記住兩個就可以了,一個是where后面,另一個是from后面,其中標量子查詢和列子查詢都可以在where的后面,而表子查 詢必須是在from的后面,并且需要給這個表起別名 #按結(jié)果集的行列數(shù)不同,子查詢可以分為 # 標量子查詢(結(jié)果集只有一行一列,其實這個子語句就相當于一個具體的數(shù)值) # 列子查詢(結(jié)果集有多行一列,其實這個子語句就相當于一個有多個值的集合) # 行子查詢(結(jié)果集只有一行多列) # 表子查詢(結(jié)果集有多行多列,其實這個子語句就相當于一個表) #其中列子查詢必須要配合操作符使用,都有什么操作符呢? # in/not in 等于列表中的任意一個或不等于列表中的任意一個 # any/some 此操作符必須要結(jié)合< > = !=等操作符使用,比如<any(列子查詢語句)表示:只要小于列子查詢結(jié)果的其中一個就行了,也即是 只要小于最大的就行了 # all 此操作符也必須要結(jié)合< > = !=等操作符使用,比如<all(列子查詢語句)表示:必須小于列子查詢結(jié)果中的所有值,也即是必須要小于 最小的
標量子查詢的例子如下圖:

列子查詢的例子如下圖:


表子查詢的例子如下圖:

聯(lián)合查詢
# 關鍵字union # 聯(lián)合查詢可以將多條查詢語句的結(jié)果合并成一個結(jié)果 # 聯(lián)合查詢要求查詢結(jié)果的列數(shù)以及列的順序都要保持一致 # 使用union關鍵字默認去重,如果使用union all則可以包含重復項


總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Mysql中Row size too large (> 8126)&n
本文主要介紹了Mysql中Row size too large (> 8126) 錯誤的問題解決,原因?qū)嵅迦氲男袛?shù)據(jù)可能太大了,超過了設定的闕值,下面就來看一下如何解決2024-07-07
MySQL判別InnoDB表是獨立表空間還是共享表空間的方法詳解
這篇文章主要給大家介紹了關于MySQL判別InnoDB表是獨立表空間還是共享表空間的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧2018-09-09

