婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > MySQL自定義函數(shù)和存儲(chǔ)過程示例詳解

MySQL自定義函數(shù)和存儲(chǔ)過程示例詳解

熱門標(biāo)簽:福建外呼電銷機(jī)器人加盟 自己做地圖標(biāo)注需要些什么 天津公司外呼系統(tǒng)軟件 百度地圖標(biāo)注要什么軟件 電話機(jī)器人的價(jià)格多少錢一個(gè)月 徐涇鎮(zhèn)騰訊地圖標(biāo)注 昌德訊外呼系統(tǒng) 中國地圖標(biāo)注公司 400電話申請廠家現(xiàn)貨

前言

本文主要給大家介紹的是關(guān)于MySQL自定義函數(shù)和存儲(chǔ)過程的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧

1、前置條件

MySQL數(shù)據(jù)庫中存在表user_info,其結(jié)構(gòu)和數(shù)據(jù)如下:

mysql> desc user_info;
+-----------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+----------+------+-----+---------+-------+
| id | int(10) | NO | PRI | NULL | |
| name | char(20) | NO | | NULL | |
| passwd | char(40) | NO | | NULL | |
| email | char(20) | NO | | NULL | |
| phone | char(20) | NO | | NULL | |
| role | char(10) | NO | | NULL | |
| sex | char(10) | NO | | NULL | |
| status | int(10) | NO | | NULL | |
| createAt | datetime | NO | | NULL | |
| exprAt | datetime | NO | | NULL | |
| validDays | int(10) | NO | | NULL | |
| delAt | datetime | YES | | NULL | |
+-----------+----------+------+-----+---------+-------+
12 rows in set (0.10 sec)

mysql> select * from user_info;
+----+--------------+----------+------------+-------------+--------+------+--------+---------------------+---------------------+-----------+-------+
| id | name  | passwd | email | phone | role | sex | status | createAt  | exprAt  | validDays | delAt |
+----+--------------+----------+------------+-------------+--------+------+--------+---------------------+---------------------+-----------+-------+
| 1 | StephenWang7 | py123456 | 123@qq.com | 15103887470 | admin | male | 200 | 2019-04-12 20:11:30 | 2019-04-19 20:11:30 | 30 | NULL |
| 2 | StephenWang8 | 123456 | 123@qq.com | 15103887470 | viewer | male | 200 | 2019-04-12 20:11:30 | 2019-04-19 20:11:30 | 30 | NULL |
+----+--------------+----------+------------+-------------+--------+------+--------+---------------------+---------------------+-----------+-------+
2 rows in set (0.00 sec)

2、自定義函數(shù)

函數(shù):可以完成特定功能的一段SQL集合。MySQL支持自定義函數(shù)來完成特定的業(yè)務(wù)功能。

創(chuàng)建自定義函數(shù)(User Defined Function 簡稱UDF)的語法如下:

create function 函數(shù)名稱> ([參數(shù)1] [類型1], [參數(shù)N] [類型N])
returns 類型>
return
函數(shù)主體>

調(diào)用UDF的語法如下:

select 函數(shù)名稱> ([參數(shù)])

創(chuàng)建無參的UDF

示例1:查詢user_info表中有多少條記錄

#定義函數(shù)
mysql> create function user_info_count()
 -> returns int(10)
 -> return
 -> (select count(*) from user_info);

調(diào)用函數(shù)user_info_count()

mysql> select user_info_count();
+-------------------+
| user_info_count() |
+-------------------+
|   2 |
+-------------------+
1 row in set (0.00 sec)

創(chuàng)建有參UDF

示例2:根據(jù)id查詢用戶name。

#定義函數(shù)
mysql> create function queryNameById(uid int(10))
 -> returns char(20)
 -> return
 -> (select name from user_info where id=uid);
Query OK, 0 rows affected (0.01 sec)

調(diào)用函數(shù),查詢id為1的用戶名稱。

mysql> select queryNameById(1);
+------------------+
| queryNameById(1) |
+------------------+
| StephenWang7 |
+------------------+
1 row in set (0.00 sec)

查看UDF

查詢系統(tǒng)中所有的UDF

show function status;

查詢指定的UDF

#
show create function 函數(shù)名稱;
mysql> show function queryNameById;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'queryNameById' at line 1
mysql> show function queryNameById();
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'queryNameById()' at line 1
mysql> show create function queryNameById();
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '()' at line 1
mysql> show create function queryNameById;
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| Function | sql_mode                 | Create Function                  | character_set_client | collation_connection | Database Collation |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| queryNameById | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | CREATE DEFINER=`root`@`localhost` FUNCTION `queryNameById`(uid int(10)) RETURNS char(20) CHARSET latin1
return (select name from user_info where id=uid) | utf8   | utf8_general_ci | latin1_swedish_ci |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
1 row in set (0.00 sec

修改UDF

如果想要修改函數(shù)的內(nèi)容,先刪除后再重新創(chuàng)建。

刪除UDF

刪除UDF語法如下:

drop function  函數(shù)名稱>;

示例3:刪除函數(shù)queryNameId后再次調(diào)用并觀察現(xiàn)象。

mysql> drop function queryNameById;
Query OK, 0 rows affected (0.45 sec)

mysql> select queryNameById(1);
ERROR 1305 (42000): FUNCTION rms.queryNameById does not exist
mysql>

3、存儲(chǔ)過程

存儲(chǔ)功能和自定義函數(shù)相似,也是一組完成特定功能的SQL語句集合。把復(fù)雜或頻繁調(diào)用的SQL提前寫好并指定一個(gè)名稱。待到要使用時(shí),直接調(diào)用即可。

定義存儲(chǔ)過程的語法如下:

CREATE PROCEDURE 過程名> ( [過程參數(shù)[,…] ] ) 過程體>
[過程參數(shù)[,…] ] 格式
[ IN | OUT | INOUT ] 參數(shù)名> 類型>
#語法定義來自:http://c.biancheng.net/view/2593.html

創(chuàng)建無參的存儲(chǔ)過程

示例4:查詢用戶name。

mysql> DELIMITER //
mysql> craete procedure queryName()
 -> begin
 -> select name from user_info;
 -> end //

關(guān)于DELIMITER命令,修改MySQL結(jié)束命令的字符。默認(rèn)的結(jié)束命令字符為分號(hào),當(dāng)存儲(chǔ)過程中包含多條語句時(shí),遇到第一個(gè)分號(hào)會(huì)作為存儲(chǔ)過程結(jié)束的標(biāo)志。這樣不符合預(yù)期,因此需要修改默認(rèn)結(jié)束命令字符。 DELIMITER //就是將結(jié)束命令字符修改為//。調(diào)用存儲(chǔ)過程的命令為:call 存儲(chǔ)過程名稱。

#此時(shí)的命令的結(jié)束符號(hào)為// 不是;
mysql> call queryName()//
+--------------+
| name   |
+--------------+
| StephenWang7 |
| StephenWang8 |
+--------------+
2 rows in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

創(chuàng)建帶參數(shù)的存儲(chǔ)過程

示例5:根據(jù)id查詢name。

mysql> create procedure queryNameById
 -> (In uid int(15))
 -> begin
 -> select name from user_info where id=uid;
 -> end
 -> //
Query OK, 0 rows affected (0.03 sec)

調(diào)用存儲(chǔ)過程queryNameById

mysql> call queryNameById(1);
 -> //
+--------------+
| name   |
+--------------+
| StephenWang7 |
+--------------+
1 row in set (0.03 sec)

Query OK, 0 rows affected (0.04 sec)

修改存儲(chǔ)過程

如果想創(chuàng)建存儲(chǔ)過程的內(nèi)容可以先刪除再重新創(chuàng)建存儲(chǔ)過程。

查看存儲(chǔ)過程

show create procedure 過程名稱>
mysql> show create procedure queryNameById; -> // +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+ | Procedure | sql_mode | Create Procedure | character_set_client | collation_connection | Database Collation | +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+ | queryNameById | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | CREATE DEFINER=`root`@`localhost` PROCEDURE `queryNameById`(In uid int(15)) begin select name from user_info where id=uid; end | utf8 | utf8_general_ci | latin1_swedish_ci | +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+ 1 row in set (0.04 sec)

刪除存儲(chǔ)過程

drop procedure 過程名稱>

刪除存儲(chǔ)過程queryNameById

mysql> drop procedure queryNameById//
Query OK, 0 rows affected (0.02 sec)


mysql> call queryNameById(1)//
ERROR 1305 (42000): PROCEDURE rms.queryNameById does not exist

4、總結(jié)

自定義函數(shù)和存儲(chǔ)過程都是完成特定功能的SQL集合,那么他們有什么不同呢?

a、調(diào)用方式不同

#自定義函數(shù)
select  函數(shù)名>
#存儲(chǔ)過程
call 存儲(chǔ)過程名>

b、自定義函數(shù)不能有輸出參數(shù),而存儲(chǔ)過程可以。

c、自定義函數(shù)必須要包含return語句,而存儲(chǔ)過程則不需要。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • MySQL 自定義函數(shù)CREATE FUNCTION示例
  • 深入mysql創(chuàng)建自定義函數(shù)與存儲(chǔ)過程的詳解
  • MySQL中文漢字轉(zhuǎn)拼音的自定義函數(shù)和使用實(shí)例(首字的首字母)
  • 淺談mysql 自定義函數(shù)
  • Mysql中實(shí)現(xiàn)提取字符串中的數(shù)字的自定義函數(shù)分享
  • mysql建立自定義函數(shù)的問題
  • MySQL自定義函數(shù)簡單用法示例
  • 關(guān)于MySQL的存儲(chǔ)函數(shù)(自定義函數(shù))的定義和使用方法詳解
  • MYSQL自定義函數(shù)判斷是否正整數(shù)的實(shí)例代碼
  • MySQL通過自定義函數(shù)實(shí)現(xiàn)遞歸查詢父級(jí)ID或者子級(jí)ID
  • mysql自定義函數(shù)原理與用法實(shí)例分析

標(biāo)簽:陜西 梅河口 昌都 黔西 鄂爾多斯 北京 駐馬店 荊門

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL自定義函數(shù)和存儲(chǔ)過程示例詳解》,本文關(guān)鍵詞  MySQL,自定義,函數(shù),和,存儲(chǔ),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL自定義函數(shù)和存儲(chǔ)過程示例詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL自定義函數(shù)和存儲(chǔ)過程示例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久99蜜桃精品| 高清国产一区二区| 国产一区欧美一区| 久久午夜电影网| 日韩高清不卡一区| 91黄视频在线观看| 久久精品视频一区二区| 亚洲影院在线观看| 99国产麻豆精品| 日韩女优av电影| 成人黄动漫网站免费app| 欧美羞羞免费网站| 不卡的看片网站| 亚洲午夜视频在线| 91影视在线播放| 国产精品久久国产精麻豆99网站| 久久精品国产免费看久久精品| av电影在线观看完整版一区二区| 国产性色一区二区| 色综合久久久久| 亚洲天堂精品视频| av在线播放一区二区三区| 欧美日韩精品欧美日韩精品一综合| 日韩女优视频免费观看| 欧美国产日韩亚洲一区| 国产精品久久免费看| 国内精品自线一区二区三区视频| 欧美视频在线观看一区| 亚洲一级电影视频| 欧美日韩aaaaa| 亚洲精品大片www| 99国产精品国产精品毛片| 久久综合精品国产一区二区三区| 日韩美女啊v在线免费观看| 欧美bbbbb| 欧美精品成人一区二区三区四区| 亚洲精品国产成人久久av盗摄| 884aa四虎影成人精品一区| 麻豆精品新av中文字幕| 精品欧美一区二区三区精品久久| 美女被吸乳得到大胸91| 欧美一级高清片| 不卡一区中文字幕| 亚洲国产精品久久艾草纯爱| 久久久亚洲国产美女国产盗摄| 91福利资源站| 国产日韩欧美精品一区| 亚洲欧洲一区二区在线播放| 欧美四级电影网| 国模大尺度一区二区三区| 中文字幕二三区不卡| 欧美电视剧免费观看| 日韩精品一区二区三区swag| 欧美大片在线观看一区二区| 99精品欧美一区二区三区小说| 国产精品久久久久久久久果冻传媒 | 视频在线在亚洲| 91精品久久久久久久99蜜桃 | 另类欧美日韩国产在线| 亚洲超碰97人人做人人爱| 亚洲欧洲成人精品av97| 日韩毛片在线免费观看| 日韩综合在线视频| 国产福利精品一区| 日本伊人午夜精品| 一区二区三区国产精品| 一区二区三区美女视频| 亚洲免费av网站| 亚洲一区二区三区中文字幕 | 亚洲国产色一区| 午夜精品福利一区二区三区av| 国产精品你懂的| 日韩精品自拍偷拍| 欧美大白屁股肥臀xxxxxx| 精品国产成人系列| 国产女主播一区| 亚洲综合一二区| av在线不卡网| 精品噜噜噜噜久久久久久久久试看| 久久久久免费观看| 亚洲日本中文字幕区| 蜜臀91精品一区二区三区 | 91麻豆123| 日韩一区二区在线看| 久久精品人人爽人人爽| 亚洲小少妇裸体bbw| 国产成人av电影在线观看| 懂色av一区二区三区免费看| 欧美日韩精品系列| 亚洲国产成人自拍| 成人免费毛片片v| 337p亚洲精品色噜噜| 国产91精品免费| 色综合色综合色综合| 亚洲精品美国一| 日韩激情av在线| 男人操女人的视频在线观看欧美| 99综合电影在线视频| 成年人国产精品| 国产精品狼人久久影院观看方式| 国产精品视频第一区| 成人app在线| 欧美性极品少妇| 久久影院视频免费| 中文字幕一区二区三区不卡| 国产成人免费网站| 91精品国产一区二区人妖| 亚洲女人的天堂| 五月婷婷综合激情| 毛片av中文字幕一区二区| 日本不卡一区二区三区 | 成人av资源在线观看| 欧美xxxxxxxxx| 久久蜜桃香蕉精品一区二区三区| 日韩欧美一级精品久久| 欧美一级搡bbbb搡bbbb| 欧美一级日韩免费不卡| 中文字幕精品三区| 国产欧美日韩另类一区| 图片区小说区国产精品视频 | 久久综合色鬼综合色| 日韩一区二区三区精品视频| 久久精品一区二区三区不卡牛牛| 欧美性欧美巨大黑白大战| 亚洲一级片在线观看| 色国产综合视频| 国产日韩欧美精品综合| 麻豆专区一区二区三区四区五区| 轻轻草成人在线| 极品瑜伽女神91| 欧美一级专区免费大片| 日本一区二区三区久久久久久久久不| 亚洲成人手机在线| 在线免费观看日韩欧美| 亚洲狠狠丁香婷婷综合久久久| 国产精品一级片| 国产永久精品大片wwwapp| 亚洲国产精品二十页| 91麻豆免费在线观看| 亚洲欧洲综合另类在线| 欧美性色综合网| 欧美精品一区二区三区在线播放| 国产成人免费视频网站高清观看视频| 欧美一个色资源| 日韩国产高清影视| 国产日韩欧美综合一区| 免费欧美高清视频| 欧美一区二区三区视频免费播放| 成人欧美一区二区三区白人| 麻豆极品一区二区三区| 精品国产乱码91久久久久久网站| 国产剧情一区二区三区| 久久久蜜桃精品| 久久国产三级精品| 国产片一区二区| 国产乱淫av一区二区三区| 337p日本欧洲亚洲大胆精品| 色999日韩国产欧美一区二区| 亚洲综合一二区| 欧美国产一区二区在线观看| 亚洲一区二区三区视频在线| 日韩视频一区二区三区在线播放| 色综合婷婷久久| 久久av资源站| 欧美大片拔萝卜| 欧美高清视频不卡网| 久久久久国产免费免费| 日韩欧美国产三级| 青青草97国产精品免费观看| 91社区在线播放| 一本大道久久精品懂色aⅴ| 不卡的av电影在线观看| 亚洲天堂精品在线观看| 久久综合成人精品亚洲另类欧美| 精品剧情v国产在线观看在线| 欧美精品乱人伦久久久久久| 久久久精品一品道一区| 亚洲色图清纯唯美| 亚洲综合色成人| 亚洲一区二区三区在线播放| 亚洲国产婷婷综合在线精品| 国产精品国产精品国产专区不片| 久久这里都是精品| 日韩午夜激情视频| 91精品国产一区二区三区| a在线欧美一区| 欧洲精品一区二区三区在线观看| 日本精品一区二区三区高清| 在线精品视频免费播放| 精品国产一区a| 亚洲免费观看视频| 一区二区国产盗摄色噜噜| 亚洲综合激情另类小说区| 国产欧美综合色| 日韩综合在线视频| 日韩一区精品字幕| 成人一级黄色片| 麻豆成人91精品二区三区| 丰满放荡岳乱妇91ww| 91在线精品秘密一区二区|