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