mysql 查詢結構組合 MySQL的查詢和結構

2021-10-18 02:22:49 字數 2143 閱讀 3775

多表關聯查詢:

交叉連線:

交叉連線的表現:行數相乘、列數相加

內連線:

內連線也叫等值連線,內聯接使用比較運算子根據每個表共有的列的值匹配兩個表中的行

隱式內連線:select * from a,b where a.id=b.id

顯示內連線:seect * from a inner join b on a.id =b.id

外連線:

外連線需要有主表或者保留表的概念

左外連線:保留表有的一定有

分頁查詢:

mysql的分頁關鍵字是:limit

limit關鍵字不是sql92標準提出的關鍵字,它是mysql獨有的語法。

通過limit關鍵字,mysql實現了物理分頁。

分頁分為邏輯分頁和物理分頁

邏輯分頁:將資料庫中的資料查詢到記憶體之後再進行分頁。

物理分頁:通過limit關鍵字,直接在資料庫中進行分頁,最終返回的資料,只是分頁後的資料

子查詢:

允許把乙個查詢巢狀在另乙個查詢當中(不建議使用因為效能不太好)

mysql架構

執行流程:

儲存引擎:

儲存引擎是針對表的

檢視儲存引擎的命令:show engines(必須進入到mysql客戶端)

日誌檔案

常見的日誌檔案包括:

資料檔案

檢視mysql資料檔案:show variables like 『%datadir%』;

.ibd和.ibdata檔案:用來儲存innodb儲存引擎的表資料和索引資訊

.myd檔案:主要用來儲存使用myisam儲存引擎的表資料資訊。

.myi檔案:主要用來儲存使用myisam儲存引擎的表資料檔案中任何索引的資料樹。

mysql索引

使用索引的主要目的是為了優化查詢速度

索引分為

單例索引:

1.普通索引

2.唯一索引

3.主鍵索引

組合索引:

* 在表中的多個字段組合上建立的索引,只有在查詢條件中使用了這些欄位的左邊欄位時,索引才會被使用,使用組合索引時遵循最左字首集合。

全文索引,只有在myisam引擎上才能使用,只能在char,varchar,text型別欄位上使用全文索引。

空間索引(不常用)

索引的使用:

create index index_name on table(column(length)) 建立索引

drop index index_name on table 刪除索引

索引的儲存結構:

b tree和b+ tree的特點與區別

* 樹的高度一般都是在2-4這個高度,樹的高度直接影響io讀寫的次數。

* 如果是三層樹結構---支撐的資料可以達到20g,如果是四層樹結構---支撐的資料可以達到幾十t

*  b tree和b+ tree的最大區別在於非葉子節點是否儲存資料的問題。b tree是非葉子節點和葉子節點都會儲存資料。而b+ tree只有葉子節點才會儲存資料,而且儲存的資料都是在一行上,而且這些資料都是有指標指向的,也就是由順序的。

非聚集索引

* 葉子節點只會儲存資料行的指標,簡單來說資料和索引不在一起,就是非聚集索引。

* 主鍵索引和輔助索引都會儲存指標的值

聚集索引(innodb)

* 主鍵索引(聚集索引)的葉子節點會儲存資料行,也就是說資料和索引是在一起,這就是聚集索引。

* 輔助索引只會儲存主鍵值

* 如果沒有沒有主鍵,則使用唯一索引建立聚集索引;如果沒有唯一索引,mysql會按照一定規則建立聚集索引。

mysql 組合查詢 mysql組合查詢

使用union 多數sql查詢都只包含乙個或多個表中返回資料的單條select語句。mysql也允許執行多個查詢 多條select語句 並將結果作為單個查詢結果集返回。這些組合查詢通常稱為並 union 有兩種情況需要使用組合查詢 在單個表查詢中從不同的表返回類似結構的資料 對單個表執行多個查詢,按...

MySQ樹狀結構資料 遞迴查詢

for example create table products id int,name varchar 100 parent id int insert into products values 15,category15 0 not a descendant of 19 16,category...

MySQL組合查詢

組合查詢 mysql允許執行多個查詢 多條select語句 並將結果作為單個查詢結果集返回。一 建立組合查詢 可用union操作符來組合數條sql查詢。利用union,可給出多條select語句,將它們的結果組合成單個結果集。下面是兩個單個查詢例子 select vend id,prod id,pr...