mysql拼接两个字段_重拾MySQL之创建计算字段和函数
一、計算字段
有時候,數(shù)據(jù)庫中的數(shù)據(jù)格式不一定是使用所需要的數(shù)據(jù)格式,需要對原數(shù)據(jù)進行拼接、裁剪、計算等操作,這時就要創(chuàng)建計算字段。
1 拼接
顧名思義,拼接就是將原屬于表中兩個列的字段拼成一個列,在其他的大部分DBMS中,拼接往往通過+ 或者||來實現(xiàn),而在MySQL中,需要借用Concat函數(shù)來實現(xiàn),如下列,將原顧客名稱、顧客國家拼成一個列:
2.命名
在拼接工作完成后,新得到的列實現(xiàn)了計算功能,但是并沒有名字,我們需要利用AS 關鍵字為其命名:
(Rtrim()為去除右側空格的函數(shù),相關的還有Ltrim()去除左邊空格、Trim() 去除左右兩邊空格)
3,執(zhí)行算術計算
MySQL支持加減乘除幾個基本的算數(shù)操作符(+ - * /):
二、函數(shù)
和其他的DBMS一樣,SQL支持利用函數(shù)來處理數(shù)據(jù),前面的Rtrim等就是函數(shù),但是需要注意的是,不同DBMS之間的函數(shù)兼容性并不好,所以在使用了函數(shù)時,最好做好注釋,為以后可能的DBMS 之間的移植提供方便。
大多數(shù)SQL 支持以下幾種類型 的函數(shù):
(1)?處理文本串的文本函數(shù)(如大小寫,刪除或者填充值等等)
(2)用在數(shù)值數(shù)據(jù)上進行算術操作的數(shù)值函數(shù)
(3)用于處理日期和時間并從這些值中提取特定成分的日期和時間函數(shù)
(4)返回DBMS正使用的特殊信息(如返回用戶登錄信息、檢查版本信息)的系統(tǒng)函數(shù)。
(1)文本處理函數(shù)
left()? ??返回串左邊的字符
length()?? ?返回串的長度
locate()? ??返回串的一個子串
lower()? ??將串轉換為小寫
Ltrim()? ??去掉串左邊的空格
Right()? ? 返回串右邊的字符
Rtrim() 去掉串右邊的空格
Soundex()? ??返回串的Soundex值
SubString()? ? 返回字串的字符
Upper()? ? 將串轉換為大寫
例子如下:
其中soundex函數(shù)值得解釋一下,這是根據(jù)讀音來進行匹配的函數(shù),有時候知道數(shù)據(jù)的大致讀音但并不精確知道數(shù)據(jù),就可以利用這個函數(shù)匹配數(shù)據(jù)庫中讀音類似或者相同的數(shù)據(jù),如數(shù)據(jù)為Y.Lee,但利用讀音相近的Y.lie也可以匹配:
(2)日期和時間函數(shù)
在SQL 中,日和時間函數(shù)使用特殊的數(shù)據(jù)類型和格式儲存,日期和時間函數(shù)就是用來讀取、統(tǒng)計和處理這些值。
AddDate()? ??增加一個日期
AddTime()? ? 增加一個時間
CurDate()? ??返回當前日期
CurTime()? ? 返回當前時間
Date()?? ?返回日期時間的日期部分
DateDiff()? ? 計算兩個日期之差
Date_Add()? ??日期運算函數(shù)
Date_Format()? ??返回一個格式化的日期或者時間串
Day()? ?返回一個日期的天數(shù)部分
Day0fweek()? ? ?返回一個日期對應的星期幾
Hour()? ??返回一個時間的小時部分
Minute()? ? 返回一個時間的分鐘部分
Month()? ? 返回一個日期的月份部分
Now() 返回當前時間和日期
Second()? ? 返回一個時間的秒數(shù)部分
Time()? ? 返回一個日期時間對應的時間部分
Year()? ? 返回一個日期的年數(shù)部分
在SQL中不管是更新還是插入新的時間數(shù)據(jù)時,都需要使用固定的日期格式:yyyy-mm-dd,使用兩位數(shù)的年份SQL 也可以識別,但可能會造成不必要的誤解,這也是編碼的一個好習慣。
但在進行日期數(shù)據(jù)匹配時,我們并不能保證數(shù)據(jù)庫中 的數(shù)據(jù)格式是yyyy-mm-dd還是yyyy-mm-dd hh-mm-ss,如果是后者,再使用select進行搜索,where date=‘2005-09-01’這樣的條件行就永遠不會返回數(shù)據(jù),因此,在匹配之前,最好使用date()函數(shù)將時間數(shù)據(jù)格式固定為日期格式,就算之后時間數(shù)據(jù)格式有沒有變化,代碼都不用修改。
例:返回2005年9月份的訂單行
有兩種方法:
(3)數(shù)值處理函數(shù)
數(shù)值處理函數(shù)是DBMS中一致性最高的函數(shù)類型
Abs()? ? 返回絕對值
Cos()? ? 返回余弦值
Exp()? ? 返回一個數(shù)的指數(shù)值
Mod()? ? 返回除操作的余數(shù)
Pi()? ? 返回圓周率
Rand()? ? 返回一個隨機數(shù)
Sin()? ? 返回正弦值
Sqrt()?? ?返回平方根
Tan()? ? 返回正切值
總結
以上是生活随笔為你收集整理的mysql拼接两个字段_重拾MySQL之创建计算字段和函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用python中django创建网页终端
- 下一篇: python mysql数据库长连接_p