16、mysql中函数的创建和使用
生活随笔
收集整理的這篇文章主要介紹了
16、mysql中函数的创建和使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
sql語言可以進行編程,說到編程,那一定少不了使用函數對代碼進行最小級別的封裝,接下來介紹一下mysql中函數的寫法以及應用
mysql中的函數可分為兩類:系統函數、用戶自定義函數。
簡單的介紹幾個常用的系統的函數:
| 函數 | 功能 |
| SUBSTRING | 截取字符串 |
| CHAR_LENGTH | 獲取字符串長度 |
| DATE_FORMAT | 格式化日期時間 |
| CONCAT | 字符串連接 |
| CONCAT_GROUP...GOURP BY | 將分組的各個字符串連接 |
| SUBSTRING_INDEX | 字符串截取 |
| ROUND | 數值保留幾位小數 |
| 官網地址 | https://dev.mysql.com/doc/refman/8.0/en/functions.html |
再說一下自定義函數:
創建函數:
// msyql中的函數一定有返回值 // 創建函數的語法,注意:參數和返回值一定要寫長度,避免使用到關鍵字 create function 函數名([形參列表]) returns 數據類型 begin-- 函數體-- 返回值 end// 寫一個實例,通過子訂單child_order_no 的訂單號獲取其最高父訂單的訂單金額sale_price create function calcPrice(child_order_no varchar(30)) returns decimal(12,2) begin// 聲明變量,注意:一定要寫長度declare sale_price decimal default 0.00;declare f_order_no varchar(30) default order_no;WHILE f_order_no is not null DOset order_no = f_order_no; SET f_order_no = (SELECT o.PARENT_ORDER_NO FROM order o WHERE o.ORDER_NO = f_order_no); END WHILE;SELECT f.SALE_PRICE AS SALE_PRICE FROM order f WHERE f.ORDER_NO = order_no into sale_price;return sale_price; end// 使用這個函數 select calcPrice(1000011);查看自定義函數:
// 查看自定義的所有函數 show function status// 可以根據名稱查看所有自定義的函數,支持模糊查詢 show function status like '名字'; show function status like '%me';// 查看函數的創建語句 show create function '函數名字'; show create function getName;使用函數:
// 使用select關鍵字查看 select getNames();刪除函數:
// 刪除對應函數 drop function '函數名'; drop function getNames;有的時候創建函數和使用函數時,會被告訴沒有權限,這時需要給用戶添加上權限,如下:
| create routine | 創建函數 |
| alter routine | 修改和刪除函數 |
| execute | 使用函數 |
上邊只是對mysql中函數的使用做了簡單的介紹,想要熟練使用還需要在實戰中多使用。
總結
以上是生活随笔為你收集整理的16、mysql中函数的创建和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 15、sql编程基本语法介绍
- 下一篇: 17、mysql中的存储过程的应用