字符串函數
- concat(s1,s2,s3…sn):連接S1,S2,S3..Sn 爲一個字符串;需要注意的是任何字符串與NULL串連,結果都將是NULL
- Insert(str,x,y,instr):將字符串 str 從第x個開始,y個字符長得子串替換爲字符串instr ,如果字符串instr長度大於Y也都會插入。。。
- Lower(str): 將字符串str 中所有字符變爲小寫,如果str 是Null--答案是還是null
- upper(str): 將字符串str 中所有字符變爲大寫
- left(str,x):返回字符串str的最左邊X個字符
- right(str,x):返回字符串str的最右邊X個字符
對於left和right函數如果第二個參數是NULL 則不返回任何字符串,
- Lpad(str,n,pad):用字符串pad 對字符串str最左邊進行填充,直到長度爲n個字符長度。
- Rpad(str,n,pad):用字符串pad 對字符串str最右邊進行填充,直到長度爲n個字符長度。
對於Lpad和Rpad 函數如果字符串的長度n不能容納完整的字符串pad,字符個數夠了以後的pad後面的字符都會被截去
- Ltrim(str):去掉字符串左側的空格
- Rtrim(str):去掉字符串行尾的空格
Repeat(str,x):返回字符串str 重複X次以後的結果
Replace(str,a,b):用字符串b替換字符串str中所有出現的字符串a
Strcmp(s1,s2):比較字符串s1和s2—比較的是字符串ASCII碼值的大小。
strcmp類似編程語言中的比較字符串函數(依據ascll碼?),會從左到右逐個比較,直到有一個不等就返回結果,否則比較到結尾。
Trim(str):去掉字符串行尾和行頭的空格
Substring(str,x,y):返回字符串str x位置起y個字符長度的字符串
length(str):用於獲取字符串長度
獲取字符串字符數函數:char_length(str)
字符串查找函數:
- find_in_set(str1,str2):返回字符串str1在str2中的位置,str2包含若干個以逗號分隔的字符串(可以把str2看出一個列表,元素是多個字符串,查找結果是str1在str2這個列表中的索引位置,從1開始)
- field(str,str1,str2,str3…):與find_in_set類似,但str2由一個類似列表的字符串變成了多個字符串,返回str在str1,str2,str3…中的位置。
- locate(str1,str2):返回子串str1在字符串str2中的位置
- position (str1 IN str2):返回子串str1在字符串str2中的位置
- instr(str1,str2):返回子串str2在字符串str1中的位置【注意這裏調轉了】
數值函數:
-
日期和時間函數
Date_FORMATE(date,format ):按字符串 fmt 格式化日期date的值,此函數能夠按指定的格式顯示日期,可用到的格式符如下
/*
* 時間函數
* date_format (date,format):用於以不同格式顯示時間/日期數據
* date :合法日期
* format:輸出日期的格式
*
* 主要作用是根據不同格式提取日期,從而提取不同時間的數據
* */
select date_format(order_date,'%Y-%m-%d') from aimme_order_20181210 ;
-- 例: 按天統計訂單金額:查看一個月中某一天各月份訂單總金額,
select date_format(order_date,'%e') as days,
sum(order_amt)
from aimme_order_20181210
group by date_format(order_date,'%e');
輸出結果:
其他常用時間函數:
關於函數的驗證,詳見完整代碼
其他常用函數
此處僅做一些列舉,更多詳見Mysql的官方手冊
Database():返回當前的數據庫名
Version()返回當前的數據庫版本
User():返回當前登錄的用戶名
Inet_aton(IP):返回IP地址的數字表示
Inet_ntoa(num):返回數字表示的IP地址
Inet_aton(IP):和Inet_ntoa(num):的主要用途是將字符串的IP地址轉換爲數字表示的網絡字節序,這樣可以更方便的進行IP或者網段的比較
Password(str):返回字符串str的加密版本
MD5():返回字符串str的MD5值—加密
本文所有測試代碼連接
https://download.csdn.net/download/fengkaungdewoniu/10849040