MySQL資料處理函式

2021-12-30 13:15:50 字數 2431 閱讀 2513

有時從資料庫表中獲取到的資料需要進行一些處理。如將小寫字母替換為相應的大寫字母。這個處理過程可以在客戶機上進行,也可以在資料庫上進行。資料庫上進行會更高效。資料庫中有相應的資料處理函式來處理這些資料,但是在sql中使用特殊的資料處理函式會降低其可移植性。不同的dbms系統,其資料處理函式不同。

大多數的sql支援以下型別的函式

用於處理文字串的函式,如刪除、填充值、轉換大小寫;用於在數值資料上進行算術操作的函式;用於處理日期和時間值並從這些值中提取特殊成分,如兩個日期只差的函式;返回dbms正在使用的特殊資訊的系統函式,如返回使用者登入,檢查版本;例子:將某一列字元轉換為大寫字元

常用文字處理函式

函式說明

left()

返回串左邊的字元

length()

返回串的長度

locate()

找出串的乙個子串

lower()

將串轉換為小寫

ltrim()

去掉串左邊的空格

right()

返回串右邊的字元

rtrim()

去掉串右邊的空格

soundex()

返回串的soundex值

substring()

返回子串的字元

upper()

將串轉換為大寫

soundex()函式,找出發音類似的串,如由於拼寫錯誤,在表中記錄了發音相似的名字,這時如果使用like或者其他的匹配搜尋並不高效。使用soundex()會方便很多。

如下例子,真是名字為 y.lee,但是表中存放的名字為y.lie,如果使用匹配搜尋會發現搜尋不到,這時可以使用soundex()函式:

常用日期和時間處理函式

函式說明

adddate()

增加乙個日期(天、周)

addtime()

增加乙個時間(時,分)

curdate()

返回當前日期

curtime()

返回當前時間

date()

返回日期時間的日期部分

datediff()

計算兩個日期之差

date_add()

高度靈活的日期計算函式

date_format

返回乙個格式化的日期或字串

day()

返回乙個日期的天數部分

dayofweek()

對於乙個日期返回對應的星期幾

hour()

返回乙個時間的小時部分

minute()

返回乙個時間的分鐘部分

month()

返回乙個時間的月份部分

now()

返回當前日期

second()

返回乙個時間的秒部分

time()

返回乙個日期時間的時間部分

year()

返回乙個日期的年份部分

簡單的時間對比:

但是如果order_date後面跟的有時間,那麼上面的sql語句將匹配不出來,因此我們可以使用日期函式,僅比較表中的日期,而忽略時間:

搜尋出乙個月的訂單;

但是有時不想去算這個月到底有多少天,則可以實現如下:

數值處理函式僅處理數值資料,這些函式一般用於代數、三角或者幾何運算。

常用數值處理函式如下

函式說明

abs()

返回乙個數的絕對值

cos()

返回乙個角度的余弦

exp()

返回乙個數的指數值

mod()

返回除操作的餘數

pi()

返回圓周率

rand()

返回乙個隨機數

sin()

返回乙個角度的正弦

sqrt()

返回乙個數的平方根

tan()

返回乙個數的正切

下面是乙個正切的例子:

MySQL資料處理函式

有時從資料庫表中獲取到的資料須要進行一些處理。如將小寫字母替換為對應的大寫字母。這個處理過程能夠在客戶機上進行。也能夠在資料庫上進行。資料庫上進行會更高效。資料庫中有對應的資料處理函式來處理這些資料,可是在sql中使用特殊的資料處理函式會減少其可移植性。不同的dbms系統,其資料處理函式不同。大多數...

mysql資料處理與函式

大綱 列的別名 concat 函式 算術運算 字元處理函式 日期時間函式 數值處理函式 聚集函式 1.列的別名 就像人的外號一樣,列有時候不太好理解或者列名太長,可以給它起別名 如何使用呢?使用關鍵字 as as關鍵字為可選引數,因此可以省略 2.concat 函式含義 將多個字串連線成乙個字串 括...

資料處理函式

資料處理函式 1,計算字串長度 主流資料庫系統都提供了計算字串長度的函式,在mysql oracle db2中這個函式 名稱為length,而在mssqlserver中這個函式的名稱則為len。這個函式接受乙個字串類 型的字段值做為引數,返回值為這個字串的長度。下面的sql語句計算每乙個名稱不為空 ...