5、字段處理

1.計算字段

  • 若是想在一個字段中既顯示公司名,又顯示公司的地址,但這兩個信息通常包含在不一樣的表列中。
  • 列數據是大小寫混合的,但報表程序須要把全部數據按大寫表示出來。
  • 須要根據表數據進行總數、平均數計算或其餘計算。

存儲在表中的數據都不是應用程序所須要的。咱們須要直接從數據庫中檢索出轉換、計算或格式化過的數據;而不是檢索出數據,而後再在客戶機應用程序或報告程序中從新格式化。算法

簡單來講,就是直接從數據庫中檢索出幾個字段來轉成咱們須要的結果,而不是咱們檢索出來到客戶端再去轉換。數據庫

2.拼接字段

Concat函數:函數

將結果拼接起來。好比咱們有一個字段name和字段price,須要顯示成:name(price)的結果。3d

select Concat(name,'(',price,')') from tb2;

結果爲:code

3.去除空格的函數:

  • LTRIM(str): 字符串str只有左側空格字符被刪除。
  • RTRIM(str): 字符串str只有右側空格字符被刪除。
  • TRIM(str): 字符串str兩側空格字符被刪除。

4.別名AS。

上述Concat函數中,從圖片中能夠看到檢索出來的字段名字是一個Concat的語句名,而一般咱們不但願這麼顯示,用別名能夠解決這個問題:blog

select Concat(name,'(',price,')') as newName from tb2;

5.運算

MySQL支持加減乘除運算符。圖片

select id,price,id*price as total from tb2 ;

其中total字段是id*price的結果。字符串

6.文本處理函數

這張圖裏面的函數首字母都不用大寫,遵循以前的規則,所有大寫或者所有小寫便可。原型

(1) left,right函數。

原型:left(str,len); 即從str字符串左側開始截取len長度的字符。數學

select left(name,2) as len from tb2;

此語句截取name左側開始len長度字符串。

right函數同理,只是從右側開始而已。

(2) upper,lower函數。

轉換成大小寫:

select name,upper(name) as upper,lower(name) as lower from tb2;

結果:

(3) length函數。

原型爲:length(str);計算字符串長度。

select name, length(name) from tb2;

(4) locate函數。

原型爲:locate(substr,str,pos);檢索子串substr出現的位置。

當不使用pos時,可看作默認pos=1,即從字符串的第一個字符開始檢索。

好比從第二個字符開始檢索字符'h'出現的位置:

select name ,locate('h',name,2) as locate from tb2;

分析結果,好比第一條記錄,第二個字符開始檢索,'h'出現的位置爲3。

(5) substr函數。

原型爲:substr(str,pos),截取str從pos位置開始的字符串。

好比截取第三個位置開始的字符串:

select name,substr(name,3) as substr from tb2;

(6) soundex函數。

SOUNDEX 是一個將任何文本串轉換爲描述其語音表示的字母數字模式的算法。SOUNDEX考慮了相似的發音字符和音節,使得能對串進行發音比較而不是字母比較。

例子:

7.日期時間處理函數

假如咱們要檢索一個2005-09-01日期的訂單,那麼咱們若是直接使用where語句可能不能達到咱們指望的效果:

select order_name from tb where order_date='2005-09-01';

由於咱們存儲的時候,日期格式可能並非這麼存的。因此咱們要使用日期時間處理函數。

好比這個日期,咱們可使用上表中的date()函數:

select order_name from tb where date(order_date)='2005-09-01';

上述函數大可能是經過一個時間,來返回其中的日期、時間等部分。而Now函數是返回當前的日期和時間。

8.數值處理函數。

大可能是數學上的處理函數:

相關文章
相關標籤/搜索