最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL自定義函數(shù)簡(jiǎn)單用法示例

 更新時(shí)間:2018年12月27日 14:10:48   作者:菜鳥學(xué)編程$  
這篇文章主要介紹了MySQL自定義函數(shù)簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了mysql自定義函數(shù)的基本定義、使用方法及操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了MySQL自定義函數(shù)用法。分享給大家供大家參考,具體如下:

先來一個(gè)簡(jiǎn)單的,創(chuàng)建一個(gè)函數(shù)將'2009-06-23 00:00:00'這樣格式的datetime時(shí)間轉(zhuǎn)化為'2009年6月23日0時(shí)0分0秒'這樣的格式:

DELIMITER $$
DROP FUNCTION IF EXISTS `sp_test`.`getdate`$$
CREATE FUNCTION `sp_test`.`getdate`(gdate datetime) RETURNS varchar(255)
BEGIN
DECLARE x VARCHAR(255) DEFAULT '';
SET x= date_format(gdate,'%Y年%m月%d日%h時(shí)%i分%s秒');
RETURN x;
END $$
DELIMITER ;

解析:

第一句是定義一個(gè)結(jié)束標(biāo)識(shí)符,因?yàn)镸ySQL默認(rèn)是以分號(hào)作為SQL語(yǔ)句的結(jié)束符的,而函數(shù)體內(nèi)部要用到分號(hào),所以會(huì)跟默認(rèn)的SQL結(jié)束符發(fā)生沖突,所以需要先定義一個(gè)其他的符號(hào)作為SQL的結(jié)束符;

第二句是如果這個(gè)函數(shù)已經(jīng)存在了,就刪除掉,sp_test是數(shù)據(jù)庫(kù)的名字,函數(shù)是跟數(shù)據(jù)庫(kù)相關(guān)聯(lián)的,getdate是函數(shù)的名字;

第三句是創(chuàng)建一個(gè)函數(shù),()里是參數(shù)的名字和類型,RETURNS 定義這個(gè)函數(shù)返回值的類型;

函數(shù)體必須放在BEGIN END之間;

DECLARE 是定義函數(shù)體的變量,這里定義一個(gè)變量x,默認(rèn)是空,然后SET給x變量賦值;

RETURN 是返回值,這里把變量x返回,x的類型必須與第三句中定義的返回類型一致。

調(diào)用:

SELECT getdate('2009-06-23 00:00:00');

返回 '2009年06月23日00時(shí)00分00秒'

分支結(jié)構(gòu)

DELIMITER $$
DROP FUNCTION IF EXISTS `sp_test`.`cutString` $$
CREATE FUNCTION `sp_test`.`cutString`(s VARCHAR(255),n INT) RETURNS varchar(255)
BEGIN
IF(ISNULL(s)) THEN RETURN '';
ELSEIF CHAR_LENGTH(s)<n THEN RETURN s;
ELSEIF CHAR_LENGTH(S)=n THEN RETURN '相等';
ELSE RETURN CONCAT(LEFT(s,n),'...');
END IF;
END $$
DELIMITER ;

解析:

這是一個(gè)截取字符串的函數(shù),參數(shù)有兩個(gè),一個(gè)是字符串s,一個(gè)是數(shù)字n,將字符串s保留前n位,如果字符串的個(gè)數(shù)小于n,則返回字符串s,如果大于n,則返回前n位后面加...。

調(diào)用:

SELECT cutString('abcdefghijklmnopqrstuvwxyz',5);

返回 'abced...'

循環(huán)結(jié)構(gòu)

DELIMITER $$
DROP FUNCTION IF EXISTS `sp_test`.`morestar`$$
CREATE FUNCTION `sp_test`.`morestar`(n INT) RETURNS text
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE s TEXT DEFAULT '';
myloop:LOOP
SET i=i+1;
SET s = CONCAT(s,'*');
IF i > n THEN LEAVE myloop;
END IF;
END LOOP myloop;
RETURN s;
END $$
DELIMITER ;

解析:產(chǎn)生n個(gè)*。

調(diào)用:

SELECT morestar(5);

返回 '*****'

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過程技巧大全》及《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總

希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。

相關(guān)文章

  • mysql如何查詢當(dāng)前數(shù)據(jù)庫(kù)中不為空的表

    mysql如何查詢當(dāng)前數(shù)據(jù)庫(kù)中不為空的表

    這篇文章主要介紹了mysql如何查詢當(dāng)前數(shù)據(jù)庫(kù)中不為空的表問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 數(shù)據(jù)庫(kù)實(shí)現(xiàn)行列轉(zhuǎn)換(mysql示例)

    數(shù)據(jù)庫(kù)實(shí)現(xiàn)行列轉(zhuǎn)換(mysql示例)

    最近突然玩起了sql語(yǔ)句,想著想著便給自己出了一道題目:“行列轉(zhuǎn)換”。起初瞎折騰了不少時(shí)間也上網(wǎng)參考了一些博文,不過大多數(shù)是采用oracle數(shù)據(jù)庫(kù)當(dāng)中的一些便捷函數(shù)進(jìn)行處理,比如”pivot”。那么,在Mysql環(huán)境下如何處理?下面通過這篇文章我們來一起看看吧。
    2016-12-12
  • MySQL數(shù)據(jù)庫(kù)Shell import_table數(shù)據(jù)導(dǎo)入

    MySQL數(shù)據(jù)庫(kù)Shell import_table數(shù)據(jù)導(dǎo)入

    本文我們介紹一款高效的數(shù)據(jù)導(dǎo)入工具,MySQL Shell 工具集中的import_table,該工具的全稱是Parallel Table Import Utility,需要的朋友請(qǐng)參考下文
    2021-08-08
  • Mysql 日期時(shí)間 DATE_FORMAT(date,format)

    Mysql 日期時(shí)間 DATE_FORMAT(date,format)

    Mysql 日期時(shí)間 DATE_FORMAT(date,format) ,需要的朋友可以參考下。
    2010-12-12
  • MySQL8.0高可用MIC的實(shí)現(xiàn)

    MySQL8.0高可用MIC的實(shí)現(xiàn)

    本文介紹了如何實(shí)現(xiàn)MySQL8.0高可用MIC,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • Mysql DBA 20天速成教程

    Mysql DBA 20天速成教程

    準(zhǔn)備一臺(tái)pc,一根網(wǎng)線和20天無打擾的空余時(shí)間,把MySQL 5.1參考手冊(cè)設(shè)置為瀏覽器首頁(yè),按下面列表逐條學(xué)習(xí)即可,這本中文手冊(cè)包括基本上所有的內(nèi)容,補(bǔ)充知識(shí)google也都能查到,學(xué)習(xí)平臺(tái)采用linux
    2014-03-03
  • MySQL的常用命令集錦

    MySQL的常用命令集錦

    這篇文章主要介紹了MySQL的常用命令集錦,堪稱初學(xué)者需要掌握的MySQL命令大全,其中系統(tǒng)命令行環(huán)境是基于類Unix系統(tǒng)來作例子的,需要的朋友可以參考下
    2015-11-11
  • mysql8.0.11客戶端無法登陸的解決方法

    mysql8.0.11客戶端無法登陸的解決方法

    這篇文章主要為大家詳細(xì)介紹了mysql8.0.11客戶端無法登陸的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Mysql 出現(xiàn)故障應(yīng)用直接中斷連接導(dǎo)致數(shù)據(jù)被鎖(生產(chǎn)故障)詳解

    Mysql 出現(xiàn)故障應(yīng)用直接中斷連接導(dǎo)致數(shù)據(jù)被鎖(生產(chǎn)故障)詳解

    這篇文章主要介紹了 Mysql 出現(xiàn)故障應(yīng)用直接中斷連接導(dǎo)致數(shù)據(jù)被鎖(生產(chǎn)故障)詳解的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • mysql?窗口函數(shù)?ROW_NUMBER、NTILE詳解

    mysql?窗口函數(shù)?ROW_NUMBER、NTILE詳解

    這篇文章主要介紹了mysql?窗口函數(shù)?ROW_NUMBER、NTILE,本文通過sql語(yǔ)句給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07

最新評(píng)論

宜昌市| 汽车| 巴彦淖尔市| 兴安盟| 芜湖市| 云浮市| 皮山县| 平遥县| 大连市| 罗城| 调兵山市| 和龙市| 东丰县| 宁晋县| 灵武市| 韩城市| 陇西县| 英超| 长沙市| 常山县| 铜山县| 称多县| 葵青区| 石首市| 阜平县| 木里| 竹山县| 桃园市| 舞阳县| 松桃| 河南省| 观塘区| 铜陵市| 昭苏县| 阜阳市| 昭平县| 靖宇县| 民权县| 罗城| 武强县| 丰县|