mysql必知必會知識點彙總

2021-10-25 13:47:22 字數 3973 閱讀 6449

摸魚看完的書,筆記扔在這裡記錄一下:)

in的最大優點?

in能夠包含其他select語句

mysqlnot支援對什麼語句進行取反?

not支援對inbetweenexists取反

mysqllike是什麼?

like是謂詞,不是操作符

null能被%萬用字元匹配嗎?

null不能被%萬用字元匹配

使用萬用字元%_的技巧

正規表示式匹配的謂詞?

regexplikeregexp的區別?

mysql中正規表示式匹配區分大小寫的關鍵字?

binarysoundex函式的作用?

採用演算法,將串變成其語音表示的字母數字演算法,實現能夠對串進行發音比較。

count(*)會對null進行匹配嗎?

count(*)會對null進行匹配,但是count(column)就不會對該列為null的行進行計數

distinct能用於count(*)嗎?

不能,如果使用的話,語句為count(distinct),產生錯誤,故不能

group by對於null值的處理?

當分組列中存在null值的時候,把所有的null值放在一起,作為乙個單獨的分組

group byorder by的語句順序?

group by一定要放在where語句後,order by

with rollup的作用

當使用group by的時候,在group by語句後加上with rollup,會在每乙個分組下面加上一行,表示該分組的彙總資料

slect語句順序?

給表名起別名的理由?

自聯結通常比子查詢要更加迅速?

mysql中的自然聯結需要自己實現,內部沒有預實現

*==*mysql中不支援,在其他dbms中用於表示左外部聯結和右外部聯結

使用union的規則

union會自動去除重複的行嗎?

union會自動去除重複的行,如果不想要去除重複的行,可以使用union allunion的輸出進行排序?

此時的order by必須放在最後一條select語句之後,並作用在整個union並集中

所有引擎都支援全文本搜尋嗎?

並不是,常見的引擎有myisaminnodb,其中myisam支援全文本搜尋,innodb不支援全文本搜尋(mysql 5.6後兩者均支援)

使用全文本搜尋的時候,mysql不會分別檢視每個行,不需要分別分析和處理每個詞。而是建立列中各詞的索引,搜尋可以針對這些詞進行。

全文本搜尋必須索引搜尋的列

使用fulltext(column, column, ...)來標明全文本搜尋的列

匯入資料時,應當先不開始全文本搜尋,待所有資料匯入到新錶中,再開啟全文本搜尋,時間更快?

全文本搜尋會對結果進行排序,等級高的行先返回

布林文字搜尋一定要在fulltext開啟的情況下才能進行嗎?

不是,即使沒有定義fulltext索引,也可以使用,只是非常緩慢

布林方式搜尋時,會進行排序嗎?

不會,在布林方式中,不按等級值降序排序返回的行

全文本搜尋的重要說明?

insert語句一般不會產生輸出

簡單的insert語句中各個列必須以他們在表定義**現的次序進行填充

當使用insert語句的時候,總是使用包含列的列表的insert語句

insert語句的列名可以被省略,省略的列應當滿足的條件:

插入多個行資料時,盡量在一條insert語句中解決,因為用單條insert語句處理插入比使用多條insert語句快

update更新多行,如果其中一行發生錯誤,整個update操作被取消;如果想要發生錯誤也可以繼續,那麼要使用update ignore tablename為什麼truncate tabledelete from table更快?

因為truncate相當於是刪掉原來的表,並重新建立乙個新的表

如何僅在建立的表明不存在時建立新錶?

create table tablename if not exists主鍵只能使用not null的列

auto_increment允許存在乙個表的多列上嗎?

不允許,每個表只允許乙個auto_increment,而且它必須被索引

mysql在使用預設值default的時候,允許函式定義嗎?

mysql不允許使用函式作為預設值,只允許使用常量

mysql中常見的引擎型別?

外來鍵不能跨引擎使用

mysql 5之後提供了對檢視的支援

多個聯結和過濾建立了複雜的檢視或者巢狀了檢視,可能會造成效能下降很厲害

檢視不能有索引,也不能有關聯的觸發器或者預設值

create or replace view常用於更新檢視

如果從檢視檢索資料時使用了一條where字句,那麼在檢視中的where字句和傳遞給檢視的where字句會自動合併

更新乙個檢視將更新其基表

應將檢視用於檢索而不是更新

儲存過程:多條mysql語句的集合

使用儲存效能的三個主要好處:

僅當存在時刪除過程:drop procedure if exists所有的mysql變數必須以@開頭

mysql游標只能用於儲存過程(和函式)

MySQL必知必會知識點1

mysql 使用到預設埠是 3306 mysql 在執行匹配時預設不區分大小寫。選擇資料庫 usedatabasename 了解資料庫 show databases 了解資料庫中的表 show tables 從表中選擇特定的列 selectcolumnname from tablename 從表中選...

Qt 關於 pro必知必會知識點

pro是qt的工程檔案,這個檔案是給qmake用來生成makefile用的。makefile的三個關鍵點就是目標,依賴,命令,這裡也很類似。pro檔案中可以指明這個qt專案的標頭檔案,原始檔,鏈結的外部庫,目標檔名,模板 生成什麼樣的makefile 版本配置 debug release 等。下面是...

mysql必知必會 mysql必知必會(四)

十四 理解子查詢 1 通過子查詢過濾 這本書在所有的章節都關連到了資料庫表,訂單資料是儲存在兩個表中,orders表儲存著 訂單號碼 顧客id和訂單日期。個人的訂單列表關連著orderitems表,訂單表沒有儲存顧客資訊,它只是儲存著顧客id,這實際的顧客資訊是儲存在customers表中。現在假設...