MySQL(七)IF语句 | WITH子句 | 自定义函数

IF语句

IF( expr1 , expr2 , expr3 )
  • expr1 的值为 TRUE,则返回值为 expr2
  • expr1 的值为FALSE,则返回值为 expr3
SELECT IF(TRUE,1+1,1+2);
-> 2
SELECT IF(FALSE,1+1,1+2);
-> 3

WITH子句

  • WITH子句主要用来创建一个暂时的结果集,这个结果集在后续的查询中可以多次使用
WITH table_name (column_name1, column_name2, ...) 
AS ( SELECT column1, column2, ... 
     FROM table WHERE condition )

自定义函数

(1)自定义函数的两个必要条件:参数、返回值

CREATE FUNCTION function_name(parameter_nametype,[parameter_name type,...])
RETURNS {STRING|INTEGER|REAL}
runtime_body

(2)带复合结构的函数体的自定义函数的创建语法

DELIMITER //
CREATE FUNCTION function_name(parameter_name type,[parameter_name type,...])
RETURNS {STRING|INTEGER|REAL}
BEGIN
//body
END
//      /* 此处的"//"为告诉系统函数定义结束 */
  • 当函数体内需要执行的是多条语句时,要使用BEGIN...END语句;且当编写函数体内容的时候,需要使用DELIMITER关键字将分隔符先修改为别的,否则编写语句的时候写到';'的时候会直接执行,导致函数编写失败

(3)自定义函数中定义局部变量

  • 变量定义
DECLARE var_name[,varname]...date_type [DEFAULT VALUE];
  • 为变量赋值
SET parameter_name = value[,parameter_name = value...]
 
SELECT INTO parameter_name
  • 实例
DECLARE x int;
 
SELECT COUNT(id) FROM tdb_name INTO x;
 
SET @x = 100;

(4)删除自定义函数

DROP  FUNCTION  functionName;

(5)自定义函数的调用

SELECT function_name(parameter_value,...);
posted @ 2024-09-11 09:28  一年都在冬眠  阅读(71)  评论(0)    收藏  举报