mysql的基本的查询语句_Mysql的基本查询语句
聚集函數(shù)
mysql有5個聚集函數(shù),分別是AVG,MAX,MIN,SUM,COUNT.
分組
分組的使用group by作為關(guān)鍵字,having作為條件關(guān)鍵字。
having和where的區(qū)別:1.where過濾的是指定的行,而不是分組,因為where沒有分組的概念。從技術(shù)上來說,
where的所有技術(shù)和選項都適用于having。2.where是在數(shù)據(jù)分組錢進行過濾,having是在數(shù)據(jù)分組后進行過濾。
分組與排序
分組有時候需要排序,用到order by ,一般放在having后面使用。
子查詢和自連接查詢
有時候兩個語句都能查詢出來對應(yīng)的需求,一般來說,自連接比子查詢要快一些
自連接和外連接
有的數(shù)據(jù)庫有全連接
自連接是排除了所有條件沒有匹配到的值,左外連接是以左表為準(zhǔn),如果有值是null,也能匹配上。
組合查詢 union 和unionall
組合查詢中必須包含相同的列,表達(dá)式或聚集函數(shù),列數(shù)據(jù)類型必須兼容。這樣兩個查詢出來的結(jié)果才能組合
union去除重復(fù)的行,unionall相反。即使有不匹配的列名的表,也可以用別名組合
組合查詢只能出現(xiàn)一條order by子句,一般放在最后面
全文本搜索
全文本搜索是引擎MYISAM支持的,INNODB并不支持。
使用全文本搜索:create table pro(noteid? int,note_text text,FULLTEXT(note_text))這樣就算創(chuàng)建了全文本搜索
select note_text from pro where Match(note_text) Against('rabbit');這就是使用了全文本搜索
表示在索索出包含rabbit文字的一行數(shù)據(jù)。搜索不區(qū)分大小寫。搜索出的順序是有等級的,等級高的提前輸出。
布爾文本搜索:即使沒有fulltext索引也可以使用文本搜索
select note_text from pro where Match(note_text) Against('rabbit' IN BOOLEAN MODE)
mysql定義了50%的規(guī)則,即一個詞出現(xiàn)了50%以上的行中,就不再輸出。比如有三行數(shù)據(jù),全文本
搜索是不返回數(shù)據(jù)的
也有操作符可以使用(這個查文檔,不再記錄)
刪除數(shù)據(jù):truncate和delete
truncate:直接刪除表然后再創(chuàng)建一個具有相同名稱的空表
delete: 值一行一行的刪除
所以清空表的時候需要使用truncate比較快。
主鍵可以這樣設(shè)置:
primary key(列名)
引擎簡介:
InnoDB:是一個可靠的事務(wù)處理引擎,它不支持全文本搜索。
MyISAM:是一個性能極高的引擎,它支持全文本,但是不支持事務(wù)
如果多張表用不同引擎創(chuàng)建,注意:外鍵不支持跨引擎
視圖:
視圖可以嵌套,視圖不能有索引,視圖可以和表一塊使用
create view 視圖名 來創(chuàng)建。show create view 視圖名稱? 查看創(chuàng)建視圖的語句。 drop view 視圖名稱刪除視圖
視圖的更新:一般來說視圖是可以更新的,但是如果存在? 分組 , 連接, 子查詢 , 并, 聚集函數(shù) , distinct, 計算列,不能更新
所以一般是不能更新的。
如果使用嵌套的視圖或者調(diào)用復(fù)雜的視圖,性能可能下降的特別厲害。
存儲過程:
游標(biāo):
觸發(fā)器:
總結(jié)
以上是生活随笔為你收集整理的mysql的基本的查询语句_Mysql的基本查询语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker 返回错误信息与本地不一致_
- 下一篇: mysql myisam 主从_MySQ