之前学过存储 这就是存储.,函数与存储的区别就是函数必须返回一个值 。
函数创建
mysql> CREATE FUNCTION test(sex VARCHAR(20) ) RETURNS INT
-> BEGIN
-> DECLARE c INT ;
-> SELECT COUNT(*) INTO c FROM student WHERE s_sex = sex;
-> RETURN c ;
-> END $
Query OK, 0 rows affected (0.03 sec)
函数调用
mysql> SELECT test('M')$
+-----------+
| test('M') |
+-----------+
| 3 |
+-----------+
1 row in set (0.01 sec)
函数查看
mysql> SHOW CREATE FUNCTION test
-> $
+----------+--------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| Function | sql_mode | Create Function | character_set_client | collation_connection | Database Collation |
+----------+--------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| test | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | CREATE DEFINER=`root`@`localhost` FUNCTION `test`(sex VARCHAR(20) ) RETURNS int(11)
BEGIN
DECLARE c INT ;
SELECT COUNT(*) INTO c FROM student WHERE s_sex = sex;
RETURN c ;
END | gbk | gbk_chinese_ci | utf8mb4_0900_ai_ci |
+----------+--------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
1 row in set (0.00 sec)
函数删除
mysql> DROP FUNCTION test$
Query OK, 0 rows affected (0.04 sec)