一、數據查詢
1. Subquery 子查詢
簡介:
出現在其他 SQL 語句內的 SELECT 子句。
語法:
SELECT * FROM tbl_1 WHERE col1 = (SELECT col2 FROM tbl_2);
二、運算符
1. 比較運算符
運算符↓ 關鍵字→ |
ANY |
SOME |
ALL/[NOT] IN |
、>、>= |
最小值 |
最小值 |
最大值 |
<、<= |
最大值 |
最大值 |
最小值 |
= |
任意值 |
任意值 |
|
<>、!= |
|
|
任意值 |
2. 便捷運算符
關鍵字 |
描述 |
[NOT] EXISTS |
是否返回查詢結果記錄(boolean) |
HAVING |
一般結合 GROUP BY 使用對篩選查詢結果進行操作 |
SVG() |
獲取平均值 |
ROUND(float_num, dot_len) |
將小數 float_num 轉換小數點長度爲 dot_len 的數值 |
COUNT(col_name) |
符合條件下 col_name 的總量 |
三、表連接
連接模式 |
描述 |
INNER JOIN |
內連接:僅顯示符合連接條件的記錄 |
LEFT/RIGHT {OUTER} JOIN |
左外連接:顯示左表全部及右表符合連接條件的記錄 or 右外連接:顯示右表全部及左表符合連接條件的記錄 |
四、函數使用
1. 字符函數
函數名稱 |
描述 |
語法示例 |
CONCAT() |
字符連接 |
SELECT CONCAT({col_name1,col_name2,…); |
CONCAT_WS() |
使用指定的分隔符進行字符連接 |
SELECT CONCAT({ws_char},{col_name1,col_name2,…); |
FORMAT() |
數值格式化 |
SELECT FORMAT(float_num,dot_len); |
LOWER()/UPPER() |
大小寫轉換 |
SELECT {LOWER/UPPER}(str); |
LEFT()/RIGHT() |
字符截取 |
SELECT {LEFT/RIGHT}(str, position); |
LENGTH() |
獲取字符串長度(含空格) |
SELECT LENGTH(str); |
LTRIM()/RTRIM()/TRIM() |
刪除空格 |
SELECT {LTRIM/RTRIM/TRIM(LEADING/TRAILING/BOTH)}(str); |
SUBSTRING() |
字符串截取 |
SELECT SUBSTRING(str,start_position [,sub_len]); |
[NOT] LIKE |
內容匹配(%,_) |
SELECT str [NOT] LIKE str2 [ESCAPE char]; |
REPLACE() |
替換字符 |
SELECT REPLACE(str,old_char,new_char); |
2. 數值運算符與函數
函數名稱 |
描述 |
語法示例 |
CEIL() |
進一取整 |
SELECT CEIL(float_num); |
FLOOR() |
舍一取整 |
SELECT FLOOR(float_num); |
DIV |
整數除法 |
SLECT num1 DIV num2; |
MOD |
取餘除法 |
SLECT num1 MOD num2; |
POWER() |
冪運算 |
SELCT POWER(num1, num2);// num1的num2次方 |
ROUND() |
四捨五入 |
SELECT ROUND(num {,dot_len});// 保留小數點長度 dot_len |
TRUNCATE() |
數字截取 |
SELECT TRUNCATE(float_num, trun_len); |
3. 比較運算符與函數
函數名稱 |
描述 |
語法示例 |
[NOT] BETWEEN…AND… |
[不]在範圍內 |
SELECT num1 [NOT] BETWEEN num2 AND num3; |
[NOT] IN() |
[不]在列出值的範圍內 |
SELECT num1 [NOT] IN(num2,num3,…); |
IS [NOT] NULL |
[不]爲空 |
SELECT * IS [NOT] NULL; |
4. 日期時間函數
函數名稱 |
描述 |
語法示例 |
NOW() |
當前日期時間 |
SELECT NOW(); |
CURDATE() |
當前日期 |
SELECT CURDATE(); |
CURTIME() |
當前時間 |
SELECT CURTIME(); |
DATE_ADD() |
日期變化 |
SELECT DATE_ADD(date, INTERVAL add_num {DAY/WEEK/MOTH/YEAR}); |
DATEDIFF() |
日期間隔 |
SELEC DATEDIFF(date1, date2); |
DATE_FORMAT() |
日期格式化 |
SELECT DATE_FORMAT(date, date_type);// eg.’%m/%d/%Y %H:%i:%s’ |
5. 信息函數
函數名稱 |
描述 |
語法示例 |
CONNECTION_ID() |
當前連接用戶 ID |
SLECT CONNECTION_ID(); |
DATEEBASE() |
當前數據庫 |
SELECT DATEBASE(); |
LASET_INSERT_ID |
最後插入記錄的 ID |
SELECT LASERT_INSERT_ID();// 多條插入返回第一條 |
USER() |
當前用戶 |
SELECT USER(); |
VERSION() |
MySQL 版本信息 |
SELECT VERSION(); |
6. 聚合函數
函數名稱 |
描述 |
語法示例 |
AVG() |
平均值 |
SELECT AVG(num1,num2,…); |
COUNT() |
總數 |
SELECT COUNT(col_name) [AS symbol] FROM tbl_name; |
MAX() |
最大值 |
SELECT MAX(col_name) [AS symbol] FROM tbl_name; |
MIN() |
最小值 |
SELECT MIN(col_name) [AS symbol] FROM tbl_name; |
SUM() |
總和 |
SELECT SUM(num1,num2,…); |
7. 加密函數
函數名稱 |
描述 |
語法示例 |
MD5() |
信息摘要算法 |
SELECT MD5(value); |
PASSWORD() |
密碼加密計算 |
SET PASSWORD=PASSWORD(pwd_value);// 修改當前用戶密碼 |
五、UDF 自定義函數
語法
CREATE FUNCTION func_name RETURNS {STRING/INTEGER|REAL/DECIMAL} routine_body
MySQL啓程學習回憶錄1
MySQL啓程學習回憶錄2
MySQL啓程學習回憶錄3
感謝慕課平臺