DML(數(shù)據(jù)操作語言,用來對數(shù)據(jù)庫表中的數(shù)據(jù)進(jìn)行增刪改)
給指定字段添加數(shù)據(jù):
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);
給全部字段添加數(shù)據(jù):
INSERT INTO 表名 VALUES (值1, 值2, ...);
批量添加數(shù)據(jù):
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
INSERT INTO 表名 VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
插入數(shù)據(jù)時错敢,指定的字段順序需要與值的順序是一一對應(yīng)的腹鹉。
字符串和日期類型數(shù)據(jù)應(yīng)該包含在引號中
插入的數(shù)據(jù)大小應(yīng)該在字段的規(guī)定范圍內(nèi)
修改數(shù)據(jù)(UPDATE)
修改數(shù)據(jù):
UPDATE 表名 SET 字段名1 = 值1, 字段名2 = 值2, ... [ WHERE 條件 ];
注意事項:修改語句的條件可以有黎做,也可以沒有勇劣,如果沒有條件随夸,則會修改整張表的所有數(shù)據(jù)
刪除數(shù)據(jù):
DELETE FROM 表名 [ WHERE 條件 ];
注意事項:
DELETE語句的條件可以有九默,也可以沒有,如果沒有條件宾毒,則會刪除整張表的所有數(shù)據(jù)驼修。
DELETE語句不能刪除某一個字段的值(可以使用UPDATE,將該字段值置為NULL即可)诈铛。
當(dāng)進(jìn)行刪除全部數(shù)據(jù)操作時乙各,datagrip會提示我們,詢問是否確認(rèn)刪除幢竹,我們直接點(diǎn)擊Execute即可耳峦。
DQL(數(shù)據(jù)查詢語言,用來查詢數(shù)據(jù)庫中表的記錄)
查詢關(guān)鍵字:SELECT
語法:
SELECT? ?
? ? 字段列表
FROM? ?
? ? 表名字段
WHERE? ?
? ? 條件列表
GROUP BY? ?
? ? 分組字段列表
HAVING? ?
? ? 分組后的條件列表
ORDER BY? ?
? ? 排序字段列表
LIMIT? ?
? ? 分頁參數(shù)
查詢多個字段:
SELECT 字段1, 字段2, 字段3, ... FROM 表名;
SELECT * FROM 表名;
設(shè)置別名:
SELECT 字段1 [ AS 別名1 ], 字段2 [ AS 別名2 ], 字段3 [ AS 別名3 ], ... FROM 表名;
SELECT 字段1 [ 別名1 ], 字段2 [ 別名2 ], 字段3 [ 別名3 ], ... FROM 表名;
去除重復(fù)記錄:
SELECT DISTINCT 字段列表 FROM 表名;
轉(zhuǎn)義:
SELECT * FROM 表名 WHERE name LIKE '/_張三' ESCAPE '/'
/ 之后的_不作為通配符
注意:*號代表查詢所有字段焕毫,在實(shí)際開發(fā)中盡量少用(不直觀蹲坷、影響效率)。
語法:
SELECT 字段列表 FROM 表名 WHERE 條件列表;
條件:
常用的比較運(yùn)算符如下:
比較運(yùn)算符功能
>大于
>=大于等于
<小于
<=小于等于
=等于
<> 或 !=不等于
BETWEEN … AND …在某個范圍內(nèi)(含最小咬荷、最大值)
IN(…)在in之后的列表中的值冠句,多選一
LIKE 占位符模糊匹配(_匹配單個字符,%匹配任意個字符)
IS NULL是NULL
常用的邏輯運(yùn)算符如下:
邏輯運(yùn)算符功能
AND 或 &&并且(多個條件同時成立)
OR 或 ||或者(多個條件任意一個成立)
NOT 或 !非幸乒,不是
介紹:
將一列數(shù)據(jù)作為一個整體懦底,進(jìn)行縱向計算
常見聚合函數(shù):
函數(shù)功能
count統(tǒng)計數(shù)量
max最大值
min最小值
avg平均值
sum求和
語法:
SELECT 聚合函數(shù)(字段列表) FROM 表名;
注意:NULL值是不參與所有聚合函數(shù)運(yùn)算的。
語法:
SELECT 字段列表 FROM 表名 [ WHERE 條件 ] GROUP BY 分組字段名 [ HAVING 分組后的過濾條件 ];
where 和 having 的區(qū)別:
執(zhí)行時機(jī)不同:where是分組之前進(jìn)行過濾,不滿足where條件不參與分組聚唐;having是分組后對結(jié)果進(jìn)行過濾丐重。
判斷條件不同:where不能對聚合函數(shù)進(jìn)行判斷,而having可以杆查。
分組之后扮惦,查詢的字段一般為聚合函數(shù)和分組字段,查詢其他字段無任何意義
執(zhí)行順序:where > 聚合函數(shù) > having
支持多字段分組亲桦,具體語法為:group by columnA,columnB
排序查詢
排序在日常開發(fā)中是非常常見的一個操作崖蜜,有升序排序,也有降序排序客峭。
語法:
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1, 字段2 排序方式2;
排序方式:
ASC: 升序(默認(rèn))
DESC: 降序
如果是升序豫领,可以不指定排序方式ASC
如果是多字段排序,當(dāng)?shù)谝粋€字段值相同時舔琅,才會根據(jù)第二個字段進(jìn)行排序
分頁操作在業(yè)務(wù)系統(tǒng)開發(fā)時等恐,也是非常常見的一個功能,我們在網(wǎng)站中看到的各種各樣的分頁條备蚓,后臺都需要借助于數(shù)據(jù)庫的分頁操作随闽。
語法:
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查詢記錄數(shù);
起始索引從0開始贬循,起始索引 = (查詢頁碼 - 1) * 每頁顯示記錄數(shù)
分頁查詢是數(shù)據(jù)庫的方言艾恼,不同數(shù)據(jù)庫有不同實(shí)現(xiàn)约郁,MySQL是LIMIT
如果查詢的是第一頁數(shù)據(jù),起始索引可以省略流昏,直接簡寫 LIMIT 10