標籤:
MySQL中的運算子和函數:
1、字元函數;2、數值運算子與函數;3、比較子與函數;4、日期時間函數;5、資訊函數;6、彙總函式;7、加密函數等; 6-1、字元函數:CONCAT() 字元串連 #SELECT CONCAT(first_name,last_name) AS fullname FROM name_test; 從name表中 串連顯示 first lastCONCAT_WS() 使用指定的分隔字元進行字元串連#SELECT CONCAT_WS(‘|‘,‘A‘,‘b‘,‘C‘) ; 第一個參數指定分隔字元 結果 A|b|CFORMAT() 數字格式化,傳回型別為字元型#SELECT FORMAT(12560.75,2); 後面的2 指保留幾位小數LOWER() 轉換為小寫字母 #SELECT LOWER(MySQL); 結果為mysqlUPPER() 轉換為大寫字母LEFT() 擷取左側字元#SELECT LEFT(MySQL,2); 結果為 MyRIGHT() 擷取右側字元LENGTH() 擷取字串長度#SELECT LENGTH(‘My SQL‘) 結果為6 中間有個空格LTRIM() 刪除前置空格# SELECT LENGTH(SELECT LTRIM(‘ MySQL ‘);) 計算刪除前置空格之後的字元長度RIRIM() 刪除後續空格TRIM() 刪除前置和後續空格 #SELECT TRIM(LEADING‘?‘ FROM ‘???mysql???’) 將?替換掉空格 刪除前置和後續的? 但中間的?去不掉SUBSTRING() 字串截取#SELECT SUBSTRING(‘MySQL‘,1,2) 截取位置第1個,長度為2#SELECT SUBSTRING(‘MySQL‘,3) 截取第3位以及以後的
#SELECT SUBSTRING(‘MySQL‘,-1) 截取位置為-1,長度不能為負數[NOT] LIKE 模式比對#SELECT * FROM test WHERE first_name LIKE ‘%1%%‘ ESCAPE ‘1‘; 告訴1後面的%不需要作為萬用字元匹配REPLACE() 字串替換#SELECT REPLACE(‘???My??SQL???‘,‘?‘,‘!‘); 結果為!!!My!!SQL!!! 將?替換成!,也可以將?替換成Null 字元串(去空格,去符號) 6-2 數值運算子CEIL() 進一取整#SELECT CEIL(3.01) 結果為4DIV() 整數除法#SELECT 3 DIV 4 結果為0 #SELECT 3/4 結果為0.75FLOOR() 舍一取整#SELECT FLOOR(3.01 ) 結果為3MOD() 取餘數(模數)#SELECT 5.3 MOD 3; 結果為2.3 等價於 5%3POWER() 冪運算#SELECT POWER(3,2); 結果為9ROUND() 四捨五入#SELECT ROUND(3.132432); 結果為3TRUNCATE() 數字截取#SELECT TRUNCATE(125.89,0) 結果為125 截取不做四捨五入操作[NOT] BETWEEN ... AND ... (不)在多少與多少之間的範圍[NOT] IN() (不)在列出值的範圍內 IS [NOT] NULL (不)是空嗎? 6-3日期時期函數NOW() 當前的日期和時間CURDATE() 當前的日期CURTIME() 當前的時間DATE_ADD() 日期變化#SELECT DATE_ADD(‘2015-3-12‘,INTERVAL -365 DAY); 日期減少365天#SELECT DATE_ADD(‘2015-3-12‘,INTERVAL 3 WEEK); 日期增加3周DATEDIFF() 日期差值#SELECT DATEDIFF(‘2013-3-12‘,‘2014-3-12‘); 計算日期的差值DATE_FORMAT() 日期格式化#SELECT DATE_FORMAT(‘2013-3-12‘,‘%m/%d/%Y‘); 把日期格式變為 3/12/2013 6-4 資訊函數CONNECTION_ID() 串連IDDATEBASE() 當前資料庫LAST_INSERT_ID() 最後插入記錄的ID號 多條資料同時插入,只列印第一條USER() 目前使用者VERSION() 版本資訊 6-5 彙總函式AVG() 平均值COUNT() 計數MAX() 最大值MIN() 最小值SUM() 求和6-6 加密函數MD5() 資訊摘要演算法#SELECT MD5(‘admin‘)PASSWORD() 密碼計算#主要用來修改密碼 SET PASSWOER=PASSWORD(‘admin‘)
菜鳥的MySQL學習筆記(四)