小白終是踏上了這條不歸路----小文的mysql學習筆記(22)--------函數

**
小白終是踏上了這條不歸路----小文的mysql學習筆記(1)

小白終是踏上了這條不歸路----小文的mysql學習筆記(2)----條件查詢

小白終是踏上了這條不歸路----小文的mysql學習筆記(3)----排序詢查

小白終是踏上了這條不歸路----小文的mysql學習筆記(4)----常見的基本函數

小白終是踏上了這條不歸路----小文的mysql學習筆記(5)----分組查詢


小白終是踏上了這條不歸路----小文的mysql學習筆記(目錄)
**
我覺得函數和前面的存儲過程很像,都是將一段代碼語句封裝起來,方便我們使用。
但是和存儲過程還是具有一定的區別。
**

函數和存儲過程的區別:
存儲過程: 可以有0個返回,也可以有多個返回,適合做批量插入、批量更新
函數: 有且僅有1個返回,適合做處理數據後返回一個結果

ps: 在創建函數的時候同樣要用delimiter語句來設置結束標記。

一、函數的創建和調用語法

1、創建語法

語法: create   function 函數名(參數列表)   returns    返回類型
            begin
                        函數體
             end

解釋:
參數列表: 一共包含參數名參數列表兩部分。
函數體: 是我們封裝的所有sql語句,在寫完函數體後,一定要寫上 return 語句 ,不然會報錯。
               我們一般是在前面寫函數體,寫完之後在後面寫上return值

注意: 如果函數體中僅有一句話,則可以省略begin end

2、調用語法

語法:select    函數名(參數列表)

下面我們來分別舉幾個栗子來演示一下

在創建函數前,我們需要看看我們是否有創建函數的權限
在這裏插入圖片描述
很明顯小文的是0,是沒有權限的所以我們要將它開啓才能創建函數,不然會報錯

所以我們需要:SET @@global.log_bin_trust_function_creators = 1;來開啓權限
在這裏插入圖片描述
開啓之後我們就可以創建函數了。

補充: 在存儲過程中有返回的變量,所以我們不用對此進行設置;但是,在我們的函數中沒有所以我們便需要用到 declare來聲明變量,並且賦值給我們的sql語句

1、演示無參函數

例(1):返回我們男神表中男神的個數
在這裏插入圖片描述
然後我們調用:返回的便是我們男神表中男神的個數
在這裏插入圖片描述
2、演示有參函數

ps:當然設置局部變量和用戶變量都是可以的,所以這裏使用一下設置用戶變量

例(1):根據我輸入的女神名,返回她的電話號碼
在這裏插入圖片描述
調用:查詢柳巖的電話號碼。
在這裏插入圖片描述

例(2) :創建函數實現,根據部門名,返回該部門的最高工資
在這裏插入圖片描述
調用函數:返回Mar部門的最高工資
在這裏插入圖片描述

二、函數的查看和刪除

查看語法: show create function 已創建的函數名稱;

就是查看函數的定義和狀態

舉例: 查看我們剛剛創建的函數hs3。
在這裏插入圖片描述
刪除語法: drop function 已創建的函數名。

ps:將已創建的函數從庫中刪除

例子: 將我們剛剛創建的函數hs3刪除。
在這裏插入圖片描述

ps:函數和流程控制一樣,我們的函數中已經封裝了的sql語句是不能更改的,所以如果想要更改我們一般是,將其刪除,然後重新創建符合我們需要的新函數

**
Like   the song quietly listening to far to see the one you like .
                                                            ---------喜歡的歌靜靜聽,喜歡的人遠遠看
**

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章