這一篇就夠啦,帶你瞭解MySQL的常用技巧
1. SQL執行順序
編寫順序
SELECT DISTINCT
<select list>
FROM
<left_table> <join_type>
JOIN
<right_table> ON <join_condition>
WHERE
<where_condition>
GROUP BY
<group_by_list>
HAVING
<having_condition>
ORDER BY
<order_by_condition>
LIMIT
<limit_params>
執行順序
FROM <left_table>
ON <join_condition>
<join_type> JOIN <right_table>
WHERE <where_condition>
GROUP BY <group_by_list>
HAVING <having_condition>
SELECT DISTINCT <select list>
ORDER BY <order_by_condition>
LIMIT <limit_params>
2. 正規表示式使用
正規表示式(Regular Expression)是指一個用來描述或者匹配一系列符合某個句法規則的字串的單個字串。
符號 | 含義 |
---|---|
^ | 在字串開始處進行匹配 |
$ | 在字串末尾處進行匹配 |
. | 匹配任意單個字元, 包括換行符 |
[…] | 匹配出括號內的任意字元 |
[^…] | 匹配不出括號內的任意字元 |
a* | 匹配零個或者多個a(包括空串) |
a+ | 匹配一個或者多個a(不包括空串) |
a? | 匹配零個或者一個a |
a1|a2 | 匹配a1或a2 |
a(m) | 匹配m個a |
a(m,) | 至少匹配m個a |
a(m,n) | 匹配m個a 到 n個a |
a(,n) | 匹配0到n個a |
(…) | 將模式元素組成單一元素 |
select * from emp where name regexp '^T';
select * from emp where name regexp '2$';
select * from emp where name regexp '[uvw]';
3. MySQL 常用函式
數字函式
函式名稱 | 作 用 |
---|---|
ABS | 求絕對值 |
SQRT | 求二次方根 |
MOD | 求餘數 |
CEIL 和 CEILING | 兩個函式功能相同,都是返回不小於引數的最小整數,即向上取整 |
FLOOR | 向下取整,返回值轉化為一個BIGINT |
RAND | 生成一個0~1之間的隨機數,傳入整數引數是,用來產生重複序列 |
ROUND | 對所傳引數進行四捨五入 |
SIGN | 返回引數的符號 |
POW 和 POWER | 兩個函式的功能相同,都是所傳引數的次方的結果值 |
SIN | 求正弦值 |
ASIN | 求反正弦值,與函式 SIN 互為反函式 |
COS | 求餘弦值 |
ACOS | 求反餘弦值,與函式 COS 互為反函式 |
TAN | 求正切值 |
ATAN | 求反正切值,與函式 TAN 互為反函式 |
COT | 求餘切值 |
字串函式
函式名稱 | 作 用 |
---|---|
LENGTH | 計算字串長度函式,返回字串的位元組長度 |
CONCAT | 合併字串函式,返回結果為連線引數產生的字串,引數可以使一個或多個 |
INSERT | 替換字串函式 |
LOWER | 將字串中的字母轉換為小寫 |
UPPER | 將字串中的字母轉換為大寫 |
LEFT | 從左側字擷取符串,返回字串左邊的若干個字元 |
RIGHT | 從右側字擷取符串,返回字串右邊的若干個字元 |
TRIM | 刪除字串左右兩側的空格 |
REPLACE | 字串替換函式,返回替換後的新字串 |
SUBSTRING | 擷取字串,返回從指定位置開始的指定長度的字元換 |
REVERSE | 字串反轉(逆序)函式,返回與原始字串順序相反的字串 |
日期函式
函式名稱 | 作 用 |
---|---|
CURDATE 和 CURRENT_DATE | 兩個函式作用相同,返回當前系統的日期值 |
CURTIME 和 CURRENT_TIME | 兩個函式作用相同,返回當前系統的時間值 |
NOW 和 SYSDATE | 兩個函式作用相同,返回當前系統的日期和時間值 |
MONTH | 獲取指定日期中的月份 |
MONTHNAME | 獲取指定日期中的月份英文名稱 |
DAYNAME | 獲取指定曰期對應的星期幾的英文名稱 |
DAYOFWEEK | 獲取指定日期對應的一週的索引位置值 |
WEEK | 獲取指定日期是一年中的第幾周,返回值的範圍是否為 0〜52 或 1〜53 |
DAYOFYEAR | 獲取指定曰期是一年中的第幾天,返回值範圍是1~366 |
DAYOFMONTH | 獲取指定日期是一個月中是第幾天,返回值範圍是1~31 |
YEAR | 獲取年份,返回值範圍是 1970〜2069 |
TIME_TO_SEC | 將時間引數轉換為秒數 |
SEC_TO_TIME | 將秒數轉換為時間,與TIME_TO_SEC 互為反函式 |
DATE_ADD 和 ADDDATE | 兩個函式功能相同,都是向日期新增指定的時間間隔 |
DATE_SUB 和 SUBDATE | 兩個函式功能相同,都是向日期減去指定的時間間隔 |
ADDTIME | 時間加法運算,在原始時間上新增指定的時間 |
SUBTIME | 時間減法運算,在原始時間上減去指定的時間 |
DATEDIFF | 獲取兩個日期之間間隔,返回引數 1 減去引數 2 的值 |
DATE_FORMAT | 格式化指定的日期,根據引數返回指定格式的值 |
WEEKDAY | 獲取指定日期在一週內的對應的工作日索引 |
聚合函式
函式名稱 | 作用 |
---|---|
MAX | 查詢指定列的最大值 |
MIN | 查詢指定列的最小值 |
COUNT | 統計查詢結果的行數 |
SUM | 求和,返回指定列的總和 |
AVG | 求平均值,返回指定列資料的平均值 |
相關文章
- 瞭解 MongoDB 看這一篇就夠了MongoDB
- 瞭解HandlerThread這一篇就夠了thread
- 瞭解Java中的鎖,看這一篇就夠了!Java
- 瞭解SSL證書,看這一篇就夠了!!
- MySQL,你只需看這一篇文章就夠了!MySql
- 瞭解JS壓縮圖片,這一篇就夠了JS
- [翻譯]瞭解NodeJS看這一篇就夠了NodeJS
- PHP正規表示式,看這一篇就夠啦!PHP
- 理解線段樹這一篇文章就夠啦!
- MySQL查詢這一篇就夠了MySql
- 學習MySQL這一篇就夠了MySql
- 理解樹狀陣列這一篇文章就夠啦陣列
- 快速瞭解Java多執行緒,有這一篇就夠了Java執行緒
- MySQL入門看這一篇就夠了MySql
- Nginx 配置常用引數,看這一篇就夠了Nginx
- Android混淆——瞭解這些就夠了Android
- 打造輕量級 WebIDE,看這一篇文章就夠啦WebIDE
- git這一篇就夠用了Git
- 一篇文章帶你瞭解高質量代理ip的使用技巧
- Mysql索引(一篇就夠le)MySql索引
- 前端er瞭解GraphQL,看這篇就夠了前端
- 瞭解 HTTPS,讀這篇文章就夠了HTTP
- 學Mybatis,入門看這一篇就夠你學的了!MyBatis
- Mybatis-Plus常用的查詢方法--看這一篇就夠了!!!MyBatis
- 一篇帶你瞭解TCP/IP 概念TCP
- APP瘦身這一篇就夠了APP
- 深入Babel,這一篇就夠了Babel
- 學Nginx,這一篇就夠了Nginx
- Git 看這一篇就夠了Git
- 想知道有哪些熱門、常用API,這一篇就夠了API
- C++做演算法題,容器知識看這一篇就夠啦!C++演算法
- Ubuntu搭建Pytorch,就這一篇就夠了UbuntuPyTorch
- Flutter DataTable 看這一篇就夠了Flutter
- Git【入門】這一篇就夠了Git
- 學習JDBC這一篇就夠了JDBC
- 代理模式看這一篇就夠了模式
- Java 集合看這一篇就夠了Java
- 學習Jmeter,這一篇就夠了JMeter