MySQL 基礎(chǔ)---常用函數(shù)

MySQL支持的函數(shù):

  • 操作字符串的函數(shù)
  • 操作數(shù)值的函數(shù)
  • 操作日期的函數(shù)
  • 獲取系統(tǒng)信息的函數(shù)
  1. 字符串函數(shù)
字符串函數(shù).png

(1) 合并字符串函數(shù)CONCAT()和CONCAT_WS()

select concat('my','s','ql') '合并后字符串';
select concat_ws('-','my','sql') '合并后字符串';

(2) 比較字符串大小函數(shù)STRCMP()

 select strcmp('abc', 'abd'),
          strcmp('abc','abc'),
          strcmp('abc','abb');

(3) 獲取字符串長(zhǎng)度函數(shù)LENGTH()和字符數(shù)函數(shù)CHAR_LENGTH()

select 'MySQL' '英文字符串',
         length('MySQL') '字符串字節(jié)長(zhǎng)度',
         '麻再挺' '中文字符串',
         length('麻再挺') '字符串字節(jié)長(zhǎng)度';

(4) 實(shí)現(xiàn)大小寫(xiě)轉(zhuǎn)換函數(shù)UPPER()/UCASE()和LOWER()

select UPPER('mysql') '轉(zhuǎn)換后字符串',
        UCASE('mysql') '轉(zhuǎn)換后字符串',
        LOWER('MYSQL') '轉(zhuǎn)換后字符串';

(5) 查找字符串

  • 返回字符串位置的FIND_IN_SET()函數(shù)
select find_in_set('mysql','oracle,sql server,mysql') '位置';
  • 返回指定字符串位置的FIELD()函數(shù)
 select field('mysql','oracle','sql server','mysql') '位置';
  • 返回子字符串相匹配的開(kāi)始位置
    函數(shù): LOCATE()旷祸、POSITION()耕拷、INSTR()
select locate('sql','mysql') '位置',
         position('sql' in 'mysql') '位置',
         instr('mysql', 'sql') '位置';
  • 返回指定位置的字符串的ELT()函數(shù)
 select elt(1,'mysql','oracle','sql server') '第一個(gè)位置的字符串';
  • 選擇字符串的MAKE_SET()函數(shù)
select bin(7) '二進(jìn)制數(shù)',
    make_set(7,'mysql','oracle','sql server', 'postgresql') '選取后的字符串';

(6) 從現(xiàn)有字符串中截取子字符串

  • 從左邊或右邊截取子字符串
    LEFT(str,num)/RIGHT(str,num)
 select left('mysql',2) '前兩個(gè)字符串', right('mysql',3) '后三個(gè)字符串';
  • 截取指定位置和長(zhǎng)度子字符串
    SUBSTRING(str,num,len)/MID(str,num,len)
select substring('oraclemysql',7,5) '截取子字符串',
         mid('oraclemysql',7,5) '截取子字符串';

(7) 去除字符串的首尾空格

  • 去除字符串開(kāi)始處空格
    LTRIM(str)
 select concat('-',' mysql ','-') '原來(lái)的字符串',
        concat('-',ltrim(' mysql '),'-') '處理后字符串';
  • 去除字符串結(jié)束時(shí)空格
select concat('-',' mysql ','-') '原來(lái)的字符串',
       concat('-',rtrim(' mysql '),'-') '處理后字符串';
  • 去除字符串首尾空格
select concat('-',' mysql ','-') '原來(lái)的字符串',
       concat('-',trim(' mysql '),'-') '處理后字符串';

(8) 替換字符串

  • 使用INSERT()函數(shù)
select insert('這是MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)',3,5,'Oracle') '轉(zhuǎn)換后字符串';
  • 使用REPLACE()函數(shù)
select replace('這是MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)','MySQL','Oracle') '轉(zhuǎn)換后字符串';
  1. 數(shù)值函數(shù)
常用數(shù)值函數(shù).png

(1) 獲取隨機(jī)數(shù)

select rand(),rand(3);

(2) 獲取整數(shù)

select ceil(4.3), ceiling(-2.5);
select floor(4.3), floor(-2.5);

(3) 截取數(shù)值函數(shù)

select truncate(903.53567,2), truncate(903.53567,-1);

(4) 四舍五入函數(shù)

select round(903.53567), round(-903.53567);
  1. 日期和時(shí)間函數(shù)
常用日期和時(shí)間函數(shù).png

(1) 獲取當(dāng)前日期和時(shí)間

  • 獲取當(dāng)前日期和時(shí)間
 select now() 'now方式', current_timestamp() 'timestamp方式',
        localtime() 'localtime方式', sysdate() 'systemdate當(dāng)時(shí)';
  • 獲取當(dāng)前日期
 select curdate() 'curdate方式', current_date() 'current_date方式';
  • 獲取當(dāng)前時(shí)間
 select curtime() 'curtime方式', current_time() 'current_time方式';

(2) 通過(guò)各種方式顯示日期和時(shí)間

  • 通過(guò)UNIX顯示日期和時(shí)間
 select now() '當(dāng)前時(shí)間',
          unix_timestamp(now()) 'unix格式',
          from_unixtime(unix_timestamp(now())) '普通格式';
  • 通過(guò)UTC方式顯示日期和時(shí)間
 select now() '當(dāng)前日期和時(shí)間',
          utc_date() 'utc日期',
          utc_time() 'utc時(shí)間';

(3) 獲取日期和時(shí)間各部分值

 select now() '當(dāng)前日期和時(shí)間',
          year(now()) '年',
          quarter(now()) '季度',
          month(now()) '月',
          week(now()) '星期',
          dayofmonth(now()) '天',
          hour(now()) '小時(shí)',
          minute(now()) '分',
          second(now()) '秒';
  • 關(guān)于月的函數(shù)
 select now() '當(dāng)前日期和時(shí)間',
          month(now()) '月',
          monthname(now()) '月';
  • 關(guān)于星期的函數(shù)
 select now() '當(dāng)前日期和時(shí)間',
          week(now()) '年中第幾個(gè)星期',
          weekofyear(now()) '年中第幾個(gè)星期',
          dayname(now()) '星期',
          dayofweek(now()) '星期',
          weekday(now()) '星期';
  • 關(guān)于天的函數(shù)
 select now() '當(dāng)前日期和時(shí)間',
          dayofyear(now()) '年中第幾天',
          dayofmonth(now()) '月中第幾天';
  • 獲取指定值的EXTRACT()函數(shù)
 select now() '當(dāng)前日期和時(shí)間',
          extract(year from now()) '年',
          extract(month from now()) '月',
          extract(day from now()) '天',
          extract(hour from now()) '小時(shí)',
          extract(minute from now()) '分',
          extract(second from now()) '秒';

(4) 計(jì)算日期和時(shí)間

  • 與默認(rèn)日期和時(shí)間操作
 select now() '當(dāng)前日期和時(shí)間',
          to_days(now()) '相隔天數(shù)',
          from_days(to_days(now())) '一段時(shí)間后日期和時(shí)間';

# 計(jì)算兩個(gè)日期之間相隔的天數(shù)
  select now() '當(dāng)前日期和時(shí)間',
           datediff(now(), '2016-12-01') '相隔天數(shù)';
  • 與指定日期和時(shí)間操作
 select curdate() '當(dāng)前日期',
          adddate(curdate(), 5) '5天后日期',
          subdate(curdate(), 5) '5天前日期';

ADDDATE(d, INTERVAL expr type)
SUBDATE(d, INTERVAL expr type)

type可選值.png
# 時(shí)間操作
select curtime() '當(dāng)前時(shí)間',
         addtime(curtime(), 5) '5秒后時(shí)間',
         subtime(curtime(), 5) '5秒前時(shí)間';
  1. 系統(tǒng)信息函數(shù)
常用 系統(tǒng)信息函數(shù).png

(1) 獲取MySQL系統(tǒng)信息

 select version() '版本號(hào)',
          database() '數(shù)據(jù)庫(kù)名',
          user() '用戶名';

(2) 獲取AUTO_INCREMENT約束的最后ID值

select last_insert_id();

(3) 其他函數(shù)

流程函數(shù).png
特殊功能函數(shù).png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末么夫,一起剝皮案震驚了整個(gè)濱河市档痪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乐纸,老刑警劉巖汽绢,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酗宋,死亡現(xiàn)場(chǎng)離奇詭異斥扛,居然都是意外死亡稀颁,警方通過(guò)查閱死者的電腦和手機(jī)棱烂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)衬鱼,“玉大人,你說(shuō)我怎么就攤上這事抛蚤∷昃” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我叁丧,道長(zhǎng)蚊锹,這世上最難降的妖魔是什么牡昆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮掸刊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蚓炬。我一直安慰自己,他們只是感情好熄捍,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布苹熏。 她就那樣靜靜地躺著轨域,像睡著了一般朱巨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上洪唐,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音粒蜈,去河邊找鬼薪伏。 笑死嫁怀,一個(gè)胖子當(dāng)著我的面吹牛塘淑,可吹牛的內(nèi)容都是我干的槐沼。 我是一名探鬼主播岗钩,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼森枪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼浑娜!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤那伐,失蹤者是張志新(化名)和其女友劉穎畅形,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體竖席,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡艳馒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了什往。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贡必。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡衫樊,死狀恐怖炒事,靈堂內(nèi)的尸體忽然破棺而出姑躲,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站宪哩,受9級(jí)特大地震影響品抽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一诵闭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸贸宏。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至伶选,卻和暖如春抽诉,著一層夾襖步出監(jiān)牢的瞬間唉窃,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昨寞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓值纱,卻偏偏與公主長(zhǎng)得像疆偿,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

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

  • PHP常用函數(shù)大全 usleep() 函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() 函數(shù)從二進(jìn)制字符串對(duì)數(shù)據(jù)進(jìn)行解...
    上街買(mǎi)菜丶迷倒老太閱讀 1,352評(píng)論 0 20
  • php usleep() 函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() 函數(shù)從二進(jìn)制字符串對(duì)數(shù)據(jù)進(jìn)行解包。 uni...
    思?jí)鬚HP閱讀 1,981評(píng)論 1 24
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法辆亏,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法甸鸟,繼承相關(guān)的語(yǔ)法瞧省,異常的語(yǔ)法构拳,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,587評(píng)論 18 399
  • 一、字符串操作 PHP開(kāi)發(fā)中尸折,我們遇到最多的可能就是字符串贮配。 一個(gè)字符串 通過(guò)下面的3種方法來(lái)定義: 1圆存、單引號(hào) ...
    空谷悠閱讀 742評(píng)論 1 6
  • 最近一周陌兑,我發(fā)現(xiàn)有些孩子沉浸在自己的世界里饿凛,與外界的接觸很少碌宴;而有些孩子頻頻與外界交流碑隆,不停地與別的孩子...
    懂靜皆宜閱讀 536評(píng)論 1 14