摸魚看完的書,筆記扔在這裡記錄一下:)
in
的最大優點?
in
能夠包含其他select
語句
mysql
中not
支援對什麼語句進行取反?
not
支援對in
、between
、exists
取反
mysql
中like
是什麼?
like
是謂詞,不是操作符
null
能被%
萬用字元匹配嗎?
null
不能被%
萬用字元匹配
使用萬用字元%
、_
的技巧
正規表示式匹配的謂詞?
regexp
like
和regexp
的區別?
mysql
中正規表示式匹配區分大小寫的關鍵字?
binary
soundex
函式的作用?
採用演算法,將串變成其語音表示的字母數字演算法,實現能夠對串進行發音比較。
count(*)
會對null
進行匹配嗎?
count(*)
會對null
進行匹配,但是count(column)
就不會對該列為null
的行進行計數
distinct
能用於count(*)
嗎?
不能,如果使用的話,語句為count(distinct)
,產生錯誤,故不能
group by
對於null
值的處理?
當分組列中存在null
值的時候,把所有的null
值放在一起,作為乙個單獨的分組
group by
和order by
的語句順序?
group by
一定要放在where
語句後,order by
前
with rollup
的作用
當使用group by
的時候,在group by
語句後加上with rollup
,會在每乙個分組下面加上一行,表示該分組的彙總資料
slect
語句順序?
給表名起別名的理由?
自聯結通常比子查詢要更加迅速?
mysql
中的自然聯結需要自己實現,內部沒有預實現
*=
和=*
在mysql
中不支援,在其他dbms
中用於表示左外部聯結和右外部聯結
使用union
的規則
union
會自動去除重複的行嗎?
union
會自動去除重複的行,如果不想要去除重複的行,可以使用union all
對union
的輸出進行排序?
此時的order by
必須放在最後一條select
語句之後,並作用在整個union
並集中
所有引擎都支援全文本搜尋嗎?
並不是,常見的引擎有myisam
和innodb
,其中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 table
比delete 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表中。現在假設...