在PHP開發(fā)的過程中,基本標(biāo)配的數(shù)據(jù)庫為MySQL。我們不用像數(shù)據(jù)庫DBA那樣熟悉所有的MySQL知識,作為一個(gè)PHP程序員我們還是必須會MySQL基本的數(shù)據(jù)增刪查改。下面PHP程序員雷雪松總結(jié)歸納一些MySQL基礎(chǔ)知識點(diǎn)分享給大家。
數(shù)據(jù)庫操作
創(chuàng)建數(shù)據(jù)庫
mysql>CREATEDATABASEdbname;
刪除數(shù)據(jù)庫
mysql>DROPDATABASEdbname;
選擇數(shù)據(jù)庫
mysql>USEdbname;
基本的SQL語句
增
mysql>INSERTINTOTABLE_NAME(column1,column2...)VALUES(value1,value2...);//插入指定字段
INSERTINTOTABLE_NAMEVALUES(column1,column2...);//插入所有字段
刪
mysql>DELETEFROMTABLEWHERECOLUMN=VALUE;//刪除指定的記錄
查
mysql>SELECTcolumn1,column2...FROMTABLE;//所有列為SELECT*FROMTABLE
改
mysql>UPDATETABLESETcolumn1=value1,column2=value2,...WHERECOLUMN=VALUE;//修改
指定的記錄一個(gè)值或多個(gè)值
刪改的時(shí)候一定要帶where條件,
刪除時(shí)分為物理刪除,邏輯刪除,一般建議邏輯刪除,通過一個(gè)狀態(tài)字段判斷是否刪除。
高級SQL查詢
LIKE模糊匹配
1、SQL通配符(LIKE和NOT LIKE)
% 匹配0個(gè)或多個(gè)字符
_ 匹配一個(gè)字符
mysql>SELECTcolumn1,column2...FROMTABLEWHERECOLUMNLIKE"%lei%";//模糊匹配
2、正則模式匹配(REGEXP、NOT REGEXP和RLIKR、NOT RLIKE)
. 匹配任何單個(gè)的字符
* 匹配零個(gè)或多個(gè)在它前面的東西
[charlist] 字符列中的任何單一字符[a-z][0-9]
[^charlist] or [!charlist] 不在字符列中的任何單一字符
mysql>SELECTcolumn1,column2...FROMTABLEWHERECOLUMNRLIKR"lei*";//模糊匹配
ORDER BY排序
mysql>SELECTcolumn1,column2...FROMTABLEWHEREORDERBYCOLUMNASC|DESC;//字段順序或者倒序
LIMIT返回條數(shù)
mysql>SELECTcolumn1,column2...FROMTABLEWHERELIMIT5,10;//檢索記錄行6-15
NULL處理
IS NULL: 當(dāng)列的值是NULL,此運(yùn)算符返回true。
IS NOT NULL: 當(dāng)列的值不為NULL,運(yùn)算符返回true。
<=>: 比較操作符(不同于=運(yùn)算符),當(dāng)比較的的兩個(gè)值為NULL時(shí)返回true。
關(guān)聯(lián)
INNER JOIN(內(nèi)連接或等值連接):獲取兩個(gè)表中字段匹配關(guān)系的記錄。
LEFT JOIN(左連接):獲取左表所有記錄,即使右表沒有對應(yīng)匹配的記錄。
RIGHT JOIN(右連接): 與 LEFT JOIN 相反,用于獲取右表所有記錄,即使左表沒有對應(yīng)匹配的記錄。
分組查詢
GROUP BY column;//根據(jù)字段分組查詢
分組結(jié)果篩選
HAVING
標(biāo)簽:MySQL數(shù)據(jù)庫