1、數學函數
ABS(x) 傳回x的絕對值
BIN(x) 傳回x的二進位(OCT返回八進位,HEX返回十六進位)
返回大於x的最小整數值- EXP(x) 返回值e(自然對數的底)的x次方
- FLOOR(x) 返回小於x的最大整數值
- GREATEST( x1,x2,…,xn)傳回集合中最大的值
- LEAST(x1,x2,…,xn) 傳回集合中最小的值
- LN(x) 傳回集合中最小的值
- LN(x) 回傳x的自然對數LOG( x,y)傳回x的以y為底的對數
- MOD(x,y) 傳回x/y的模(餘數) PI()傳回pi的值(圓周率)
- RAND()傳回0到1內的隨機值,可以透過提供一個參數(種子)使RAND()隨機數產生器產生一個指定的值。
- ROUND(x,y)回傳參數x的四捨五入的有y位小數的值
- SIGN(x) 傳回代表數字x的符號的值
- SQRT(平方根
- TRUNCATE(x,y) 傳回數字x截短為y位小數的結果
- 2、聚集函數
- AVG(col)傳回指定列的平均值col)傳回指定列的最小值
- MAX(col)傳回指定列的最大值
- SUM(col)傳回指定列的所有值總和
- GROUP_CONCAT(col) 傳回由屬於一類群組的列值連結組合而成的結果
- 3、字串函數
- ASCII(char)傳回字元的ASCII碼值BIT_LENGTH(str)傳回字串的位元長度
- ,s2…,sn)將s1,s2…,sn連接成字串
- CONCAT_WS(sep,s1,s2…,sn)將s1,s2…,sn連接成字串,並用sep字元間隔
- INSERT(str,x,y,instr) 將字串str從第x位置開始,y個字元長的子字串替換為字串instr,傳回結果
- FIND_IN_SET(str,list)分析逗號分隔的list列表,如果發現str,返回str在list中的位置
- LCASE(str)或LOWER(str) 返回將字串str中所有字元改變為小寫後的結果
- LEFT(str, x)回傳字串str中最左邊的x個字
- LENGTH(s)傳回字串str中的字元數
- LTRIM(str) 從字串str中切掉開頭的空格
LTRIM(str) 從字串str中切掉開頭的空格
- LTRIM(str) 從字串str中切掉開頭的空格 LTRIM(str) 從字串str
- POSITION(substr,str) 回傳子字串substr在字串str中第一次出現的位置
- QUOTE(str) 用反斜線轉義str中的單引號 str ,rplcstr)回傳字串str重複x次的結果
- REVERSE(str) 傳回顛倒字串str的結果
- RIGHT(str,x) 傳回字串中最右邊的x個字元
RIGHT(str,x) 傳回字串中最右邊的x個字元
RTRIM(str) 返回字符串str尾部的空格- STRCMP(s1,s2)比較字符串s1和s2
- TRIM(str)去除字符串首部和尾部的所有空格
- UCASE(str)或UPPER(str) 傳回將字串str中所有字元轉換成大寫後的結果
- 4、日期和時間函數
- CURDATE()或CURRENT_DATE() 傳回目前的日期
CURDATE()或CURRENT_DATE() 傳回目前的日期
CURDATE()或CURRENT_DATE() 傳回目前的日期CURDATE()或CURRENT_DATE() 傳回目前的日期
CURDATE()或CURRENT_DATE() 傳回目前的日期CURDATE()或CURRENT_DATE() 傳回目前的日期
CURDATE()或CURRENT_DATE() 傳回目前的日期CURDATE()或CURRENT_DATE() 傳回目前的日期
CURTIME()或CURRENT_TIME() 傳回目前的時間- CURRENT_DATE,INTERVAL 6 MONTH);
- DATE_FORMAT(date,fmt) 依照指定的fmt格式格式化日期date值
- DATE_SUB(date,INTERB(date,INdate int必須按照關鍵字進行格式化),如:SELECTDATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH);
- DAYOFWEEK(date) 返回date所代表的一星期中的第幾天(1~7)
- DAYOFMONTH(date) 回傳date是一個月的第幾天(1~31)
- DAYOFYEAR(date) 回傳date是一年的第幾天(1~366)
- DAYNAY(dateDAYNAY(date) 返回的星期名,如:SELECT DAYNAME(CURRENT_DATE);
- FROM_UNIXTIME(ts,fmt) 依據指定的fmt格式,格式化UNIX時間點傳回
- HOUR(time) 返回的戳time 23)
- MINUTE(time) 傳回time的分鐘值(0~59)
- MONTH(date) 傳回date的月份值(1~12)
- )名,如:SELECT
- 🎜MONTHNAME(CURRENT_DATE);🎜🎜🎜🎜NOW() 傳回目前的日期和時間🎜🎜🎜🎜QUARTER(date) 返回目前的日期和時間🎜🎜🎜🎜QUARTER(date) 返回144),如一年中的季度。 SELECT QUARTER(CURRENT_DATE);🎜🎜🎜🎜WEEK(date) 返回日期date為一年中第幾週(0~53)🎜
YEAR(date) 回報FROM CURRENT_DATE) ;
- SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);
- SELECT EXTRACT(HOUR_MINUTE FROM CURRENT_DATE);
SELECT PERIOD_DIFF (200302,199802)
- 在Mysql計算年齡:
- SELECT DATE_FYS age FROM employee;
- 這樣,如果Brithday是未來的年月日的話,計算結果為0。
下面的SQL語句計算員工的絕對年齡,即Birthday是未來的日期時,將得到負值。
- SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthday, '%Y') -(DATE_FORMAT(NOW(), '00-%m-%d')
- 、
- 加密函數
- AES_DECRYPT(str,key) 傳回以金鑰key對字串str利用高階加密標準演算法解密後的結果
- ENCRYPT (str,salt): 使用UNIXcrypt()函數,用關鍵字salt(一個可以惟一確定口令的字串,就像鑰匙一樣)加密字串str
- ENCODE(str,key): 使用key作為密鑰加密字串str,呼叫ENCODE()的結果是一個二進位字串,它以BLOB型別儲存
- MD5() 計算字串str的MD5校驗和
- PASSWORD(str) 傳回字串str的加密版本,這個加密過程是不可逆的,和UNIX密碼加密過程使用不同的演算法。 :
SELECT ENCRYPT('root','salt');
SELECT ENCODE('xufeng','key'); SELECT DECODE(ENCODE('xufeng','key'),'key'); 解密放在一起 - SELECT AES_ENCRYPT('root','key');
SELECT AES_DECRYPT(AES_ENCRYPT('root','key'),'key'); S
SELECT MD5('123456'); '123456'); - 6、控制流函數
- MySQL有4個函數是用來進行條件操作的,這些函數可以實現SQL的條件邏輯,允許開發者將一些應用程式業務邏輯轉換到資料庫後台。 ] WHEN[val1] THEN [result]…ELSE [default]END
- 如果test和valN相等,則返回resultN,否則返回default
- IF(test,t,f) 如果test是真,返回t;否則回傳f
這些函數的第一個是IFNULL(),它有兩個參數,並且對第一個參數進行判斷。如果第一個參數不是NULL,函數就會向呼叫者傳回第一個參數;如果是NULL,將會傳回第二個參數。
IFNULL(arg1,arg2) 如果arg1不是空,則回傳arg1,否則回傳arg2
NULLIF(arg1,arg2) 如果arg1=arg2回傳NULL;否則回傳
NULLIF(arg1,arg2) 如果arg1=arg2回傳NULL;否則回傳
- 如:SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,4+1);
- 和許多腳本語言提供的IF()函數一樣,MySQL的IF()函數也可以建立一個簡單的條件測試,這個函數有三個參數,第一個是要被判斷的表達式,如果表達式為真,IF()將會傳回第二個參數,如果為假,IF()將會傳回第三個參數。
- IF()函數在只有兩種可能結果時才適合使用。然而,在現實世界中,我們可能發現在條件測試中會需要多個分支。在這種情況下,MySQL提供了CASE函數,它就跟PHP和Perl語言的switch-case條件程式一樣。
CASE函數的格式有些複雜,通常如下所示: CASE [expression to be evaluated] WHEN [val 1] THEN [result 1] WHEN [val 2] THEN [result 2] WHEN [val 3] THEN [result 3] …… WHEN [val n] THEN [result n] ELSE [default result] END
這裡,第一個參數是要被判斷的值或表達式,接下來的是一系列的WHEN-THEN區塊,每一塊的第一個參數指定要比較的值,如果為真,就回傳結果。所有的WHEN-THEN區塊將以ELSE區塊結束,當END結束了所有外部的CASE區塊時,如果前面的每一個區塊都不匹配就會傳回ELSE區塊指定的預設結果。如果沒有指定ELSE區塊,而且所有的WHEN-THEN比較都不是真,MySQL將會傳回NULL。
CASE函數還有另外一種句法,有時使用起來非常方便,如下: CASE WHEN [conditional test 1] THEN [result 1] WHEN [conditional test 2] THEN [result 2] ELSE [default result] END在這種條件下,傳回的結果取決於對應的條件測試是否為真。
範例:
- 範例:
- mysql>SELECT CASE 'green' WHEN 'red' THEN 'stop' WHEN 'green' THEN 'go' END; , I WHEN 2 THEN 'b' ELSE 'N/A' END; SELECT CASE WHEN (2+2)=4 THEN 'OK' WHEN(2+2)4 THEN 'not OK' END ASSTATUS;
- SELECT Name,IF((IsActive = 1),'已啟動','未啟動') AS RESULT FROMUserLoginInfo; SELECT fname,lname,(math+sci+lit) AS total, CASE WHEN (math+sci+lit)
- DATE_FORMAT( ,fmt) 依照字串fmt格式化日期date值
- FORMAT(x,y) 把x格式化為以逗號隔開的數字序列,y是結果的小數位數
- INET_ATON(ip)傳回IP位址的數字表示
- INET_NTOA(num) 回傳數字所代表的IP位址
-
TIME_FORMAT(time,fmt) 依照字串fmt格式化時間值 其中最簡單的函數是FORMAT(fmt) ,它可以把大的數值格式化為以逗號間隔的易讀的序列。 - 範例:
- 範例:
- SELECT FORMAT(34234.34323432,3);
- Sv.D. SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');
- SELECT DATE_FORMAT(19990330,'%Y-%m-%d');
- S ,'%h:%i %p');
- SELECT INET_NTOA(175790383); 為了進行資料類型轉化,MySQL提供了CAST()函數,它可以把一個值轉換成指定的資料類型。
- 範例:
-
BENCHMARK(count,expr) 將表達式expr重複運行count次
CONNECTION_ID() 傳回目前客戶的連接ID
FOUND_ROWS() 傳回最後一個行查詢的最後一行編號()或SYSTEM_USER() 傳回目前登陸使用者名稱
VERSION() 傳回的現有登陸使用者名稱
VERSION() 回傳MySQL伺服器的版本
-
範例:
SELECT DATABASE(),VERSION(),ARKUS(998),ARKUS99ECT (RAND()*PI())); #該例中,MySQL計算LOG(RAND()*PI())表達式9999999次。
以上就是 【MySQL 09】常用函數的內容,更多相關內容請關注PHP中文網(www.php.cn)!
- 7、格式化函數
reee

InnoDBBufferPool通過緩存數據和索引頁來減少磁盤I/O,提升數據庫性能。其工作原理包括:1.數據讀取:從BufferPool中讀取數據;2.數據寫入:修改數據後寫入BufferPool並定期刷新到磁盤;3.緩存管理:使用LRU算法管理緩存頁;4.預讀機制:提前加載相鄰數據頁。通過調整BufferPool大小和使用多個實例,可以優化數據庫性能。

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。MySQL以其高性能、可扩展性和跨平台支持著称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

MySQL值得學習,因為它是強大的開源數據庫管理系統,適用於數據存儲、管理和分析。 1)MySQL是關係型數據庫,使用SQL操作數據,適合結構化數據管理。 2)SQL語言是與MySQL交互的關鍵,支持CRUD操作。 3)MySQL的工作原理包括客戶端/服務器架構、存儲引擎和查詢優化器。 4)基本用法包括創建數據庫和表,高級用法涉及使用JOIN連接表。 5)常見錯誤包括語法錯誤和權限問題,調試技巧包括檢查語法和使用EXPLAIN命令。 6)性能優化涉及使用索引、優化SQL語句和定期維護數據庫。

MySQL適合初學者學習數據庫技能。 1.安裝MySQL服務器和客戶端工具。 2.理解基本SQL查詢,如SELECT。 3.掌握數據操作:創建表、插入、更新、刪除數據。 4.學習高級技巧:子查詢和窗口函數。 5.調試和優化:檢查語法、使用索引、避免SELECT*,並使用LIMIT。

MySQL通過表結構和SQL查詢高效管理結構化數據,並通過外鍵實現表間關係。 1.創建表時定義數據格式和類型。 2.使用外鍵建立表間關係。 3.通過索引和查詢優化提高性能。 4.定期備份和監控數據庫確保數據安全和性能優化。

MySQL是一個開源的關係型數據庫管理系統,廣泛應用於Web開發。它的關鍵特性包括:1.支持多種存儲引擎,如InnoDB和MyISAM,適用於不同場景;2.提供主從復制功能,利於負載均衡和數據備份;3.通過查詢優化和索引使用提高查詢效率。

SQL用於與MySQL數據庫交互,實現數據的增、刪、改、查及數據庫設計。 1)SQL通過SELECT、INSERT、UPDATE、DELETE語句進行數據操作;2)使用CREATE、ALTER、DROP語句進行數據庫設計和管理;3)複雜查詢和數據分析通過SQL實現,提升業務決策效率。

MySQL的基本操作包括創建數據庫、表格,及使用SQL進行數據的CRUD操作。 1.創建數據庫:CREATEDATABASEmy_first_db;2.創建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入數據:INSERTINTObooks(title,author,published_year)VA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版
中文版,非常好用

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載
最受歡迎的的開源編輯器

禪工作室 13.0.1
強大的PHP整合開發環境