有時從資料庫表中獲取到的資料需要進行一些處理。如將小寫字母替換為相應的大寫字母。這個處理過程可以在客戶機上進行,也可以在資料庫上進行。資料庫上進行會更高效。資料庫中有相應的資料處理函式來處理這些資料,但是在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語句計算每乙個名稱不為空 ...