【MySQL必知必會11】數(shù)據(jù)處理函數(shù)

1煮嫌、函數(shù)


與其他計算機語言一樣器净,sql支持利用函數(shù)來處理數(shù)據(jù)尖淘。函數(shù)一般是在數(shù)據(jù)上執(zhí)行的,他給數(shù)據(jù)的轉(zhuǎn)換和處理提供了方便倡勇。

*注:函數(shù)沒有sql的可移植性強(不同數(shù)據(jù)庫管理系統(tǒng)的兼容性較差)

2逞刷、使用函數(shù)


大多數(shù)sql實現(xiàn)支持以下函數(shù):

>用于處理文本串的(如刪除或填充值,轉(zhuǎn)換值為大寫或小寫)文本函數(shù)

>用于在數(shù)值數(shù)據(jù)上進(jìn)行算術(shù)操作(如返回絕對值译隘,進(jìn)行代數(shù)運算)的數(shù)值函數(shù)

>用于處理日期和時間值并從中提取特定成分(如:返回兩個日期之差亲桥,檢查日期有效性等)的日期和時間函數(shù)

2.1、文本處理函數(shù)

以Upper()函數(shù)為例:

輸入:

select vend_name, Upper(vend_name) AS vend_name_upcase

from vendors order by vend_name;

輸出:

分析:正如所見固耘,Upper()將文本轉(zhuǎn)換為大寫,因此本例中每個供應(yīng)商都列出兩次词身,第一次為vendors表中存儲的值厅目,第二次為轉(zhuǎn)換成大寫后的值。

常用的文本處理函數(shù)如下(一下str及Sx均可取表的列名):

Concat(S1,S2,...Sn):連接S1,S2,...Sn為一個字符串

Insert(str,x,y,instr):將字符串str從第x位置開始法严,y個字符長的子串替換為字符串instr

Left(str,x):返回字符串str最左邊的x個字符

Right(str,x):返回字符串str最右邊的x個字符

Lower(str):將字符串str中所有字符變?yōu)樾?/p>

Upper(str):將字符串str中所有字符變?yōu)榇髮?/p>

Lpad(str,n,padstr):用字符串padstr對str最左邊進(jìn)行填充损敷,直到str長度為n個字符長度

Rpad(str,n,padstr):用字符串padstr對str最右邊進(jìn)行填充,直到str長度為n個字符長度

Ltrim(str):去掉字符串左側(cè)的空格

Rtrim(str):去掉字符串右側(cè)的空格

Repeat(str,x):返回str重復(fù)x的次數(shù)

Replace(str,a,b):用字符串b替換字符串str中所有出現(xiàn)的字符串a(chǎn)

Strcmp(s1,s2):比較字符串s1和s2

Trim(str):去掉字符串行尾和行頭的空格

Substring(str,x,y):返回從字符串str x位置起y個字符長度的子串

Locate(str,x):找出str字符串的x子字符串(可以與count()結(jié)合使用)

Soundex():返回串的SOUNDEX值

其中Soundex需要做進(jìn)一步解釋:

soundex是一個將任何文本串轉(zhuǎn)換為描述其語音表示的字母數(shù)字模式的算法深啤。soundex考慮了類似的發(fā)音字符和音節(jié)拗馒,使得能對串進(jìn)行發(fā)音比較而不是字母比較。

使用例子如下:

customers表中有一個顧客Coyote Inc.溯街,其聯(lián)系名為Y.Lee诱桂。但是如果輸入錯誤,此聯(lián)系名實際為Y.Lie呈昔,怎么辦挥等,顯然按正確吧聯(lián)系名搜索不會返回數(shù)據(jù),如下所示:


現(xiàn)在使用soundex函數(shù)進(jìn)行搜索堤尾,結(jié)果如下:

在這個例子中肝劲,where子句使用soundex()函數(shù)來轉(zhuǎn)換cust_contact列值和搜索串為他們的soundex值,因為Y.Lee和Y.Lie發(fā)音相似,所以他們的soundex值匹配辞槐,因此where子句正確的過濾出了所需的數(shù)據(jù)掷漱。

2.2、日期和時間處理函數(shù)

日期和時間采用相應(yīng)的數(shù)據(jù)類型和特殊的格式存儲榄檬,以便能快速和有效的排序或過濾切威,并節(jié)省物理存儲空間。

一般應(yīng)用程序不使用用來存儲日期和時間的格式丙号,因此日期和時間函數(shù)總是被用來讀取先朦、統(tǒng)計和處理這些值。由于這個原因犬缨,日期和時間函數(shù)在MySQL語言中具有重要的作用喳魏。

常用的日期和時間處理函數(shù):

AddDate():增加一個日期(天、周等)

AddTime():增加一個時間(時怀薛、分等)

CurDate():返回當(dāng)前日期

CurTime():返回當(dāng)前時間

Date():返回日期時間的日期部分

DateDiff():計算兩個 日期之差

Date_add():高度靈活的日期運算函數(shù)

DateFormat():返回一個格式化的日期函數(shù)或者時間串

Day():返回一個日期的天數(shù)部分

DayOfWeek():對于一個日期刺彩,返回對應(yīng)的星期幾

Hour():返回一個時間的小時部分

Minute():返回一個時間的分鐘部分

Month():返回一個日期的月部分

Now():返回當(dāng)前日期和時間

Second():返回一個時間的秒部分

Time():返回一個日期時間的時間部分

Year():返回一個日期的年部分

2.3、數(shù)值處理函數(shù)

常用的數(shù)值處理函數(shù):

Abs():返回一個數(shù)的絕對值

Cos():返回一個角度的余弦

Exp():返回一個數(shù)的指數(shù)值

Mod():返回除操作余數(shù)

Pi():返回圓周率

Rand():返回一個隨機數(shù)

Sin():返回一個角度的正弦

Sqrt():返回一個數(shù)的平方根

Tan():返回一個角的正切

**********書山有路枝恋,學(xué)海無涯创倔,無數(shù)個孤獨的夜晚,需要一點小小的成就感焚碌!**********

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末畦攘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子十电,更是在濱河造成了極大的恐慌知押,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹃骂,死亡現(xiàn)場離奇詭異台盯,居然都是意外死亡,警方通過查閱死者的電腦和手機畏线,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門静盅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人寝殴,你說我怎么就攤上這事蒿叠。” “怎么了杯矩?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵栈虚,是天一觀的道長。 經(jīng)常有香客問我史隆,道長魂务,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮粘姜,結(jié)果婚禮上鬓照,老公的妹妹穿的比我還像新娘。我一直安慰自己孤紧,他們只是感情好豺裆,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著号显,像睡著了一般臭猜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上押蚤,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天蔑歌,我揣著相機與錄音,去河邊找鬼揽碘。 笑死次屠,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的雳刺。 我是一名探鬼主播劫灶,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼掖桦!你這毒婦竟也來了本昏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤滞详,失蹤者是張志新(化名)和其女友劉穎凛俱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體料饥,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年朱监,在試婚紗的時候發(fā)現(xiàn)自己被綠了岸啡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡赫编,死狀恐怖巡蘸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情擂送,我是刑警寧澤悦荒,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站嘹吨,受9級特大地震影響搬味,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一碰纬、第九天 我趴在偏房一處隱蔽的房頂上張望萍聊。 院中可真熱鬧,春花似錦悦析、人聲如沸寿桨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亭螟。三九已至,卻和暖如春骑歹,著一層夾襖步出監(jiān)牢的瞬間预烙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工陵刹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留默伍,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓衰琐,卻偏偏與公主長得像也糊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子羡宙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)狸剃,也就是一...
    悟名先生閱讀 4,149評論 0 13
  • 在挖掘分析的過程當(dāng)中對字符串的處理是極為重要的,且出現(xiàn)也較為頻繁狗热,R語言作為當(dāng)前最為流行的開源數(shù)據(jù)分析和可視化平臺...
    果果哥哥BBQ閱讀 5,821評論 0 8
  • MYSQL 基礎(chǔ)知識 1 MySQL數(shù)據(jù)庫概要 2 簡單MySQL環(huán)境 3 數(shù)據(jù)的存儲和獲取 4 MySQL基本操...
    Kingtester閱讀 7,817評論 5 116
  • 尼采是個個人主義者钞馁,他批判過去的哲學(xué),批判人們崇尚的美德匿刮,批判人們的生活僧凰。但是他最關(guān)注的就是生命的意義,人生的意義...
    海林_JS閱讀 477評論 0 0
  • 公司有個新來的小姑娘小玉熟丸,其實也不小了训措,剛剛結(jié)婚,看起來笨笨的光羞,或許剛剛結(jié)婚的緣故绩鸣,對誰都傻呵呵的笑。她來公司時是...
    稷下簡單哥閱讀 230評論 0 0