MySQL存储过程(1)定义

为什么80%的码农都做不了架构师?>>>   hot3.png

USE test;
===============================================
存储过程的定义

DELIMITER $

CREATE PROCEDURE p1()
BEGIN
  SELECT 'Hello World!' AS 问候;
END$

DELIMITER ;

调用存储过程
CALL p1();

删除存储过程
DROP PROCEDURE p1;

===============================================
DELIMITER $

CREATE PROCEDURE p2_search_wlw17()
COMMENT '目的:查询17级物联网班的学生学号、姓名'
BEGIN
    SELECT xh,xm 
    FROM xuesheng
    WHERE bj LIKE '2017级【本科】物联网%';
END$

DELIMITER ;

CALL p2_search_wlw17();

===============================================
DELIMITER $$

#只是带一个简单的参数的存储过程
CREATE PROCEDURE p3_search_xm(sxm VARCHAR(20))
COMMENT '目的:按姓氏查找学生'
BEGIN
      SELECT xh,xm 
    FROM xuesheng
    WHERE bj LIKE '2017级【本科】物联网%'
    AND xm LIKE CONCAT(sxm,'%');
END$$

DELIMITER ;

CALL p3_search_xm('李');

===============================================
#声明变量
DELIMITER #
CREATE PROCEDURE p3()
BEGIN
  DECLARE a INT DEFAULT 0; 
  DECLARE b INT DEFAULT 0;
  DECLARE addsum INT DEFAULT 0;
  SET a=23;
  SET b=24;
  SET addsum=a+b;
  SELECT addsum;
END#
DELIMITER ;

CALL p3();

DROP PROCEDURE p3;

===============================================

DELIMITER $$
CREATE PROCEDURE p4()
BEGIN
  DECLARE age INT DEFAULT 21;
  DECLARE height INT DEFAULT 173;
  SELECT CONCAT('你的年龄:',age,'  你的身高:',height);
END$$
DELIMITER ;

CALL p4();

DROP PROCEDURE p4;

===============================================
DELIMITER $$
CREATE PROCEDURE p5()
BEGIN
  DECLARE age INT DEFAULT 21;
  DECLARE height INT DEFAULT 173;
  
  IF age>20 THEN
    SELECT  CONCAT('你的年龄:',age,'太老了!');
  END IF;
    SELECT CONCAT('你的年龄:',age,'  你的身高:',height);
END$$

DELIMITER ;

DROP PROCEDURE p5;

CALL p5();

===============================================
DELIMITER $$
CREATE PROCEDURE p6()
BEGIN
  DECLARE age INT DEFAULT 21;
  DECLARE height INT DEFAULT 173;
  
  IF age>=20 THEN
    SELECT  CONCAT('你的年龄:',age,'太老了!');
  ELSE
    SELECT  CONCAT('你的年龄:',age,'小年轻!');
  END IF;
END$$

DELIMITER ;

CALL p6();

===============================================
DELIMITER $$
CREATE PROCEDURE p7(age INT)
BEGIN
  IF age>=20 THEN
    SELECT  CONCAT('你的年龄:',age,'太老了!');
  ELSE
    SELECT  CONCAT('你的年龄:',age,'小年轻!');
  END IF;
END$$

DELIMITER ;

CALL p7(81);

===================================

下一节讲循环、带入参数

转载于:https://my.oschina.net/alkz/blog/3050223

你可能感兴趣的:(MySQL存储过程(1)定义)