使用MySQL儲存過程編寫九九乘法表

2020-10-20 11:00:51

進入資料庫編寫儲存過程

mysql> use school;
Database changed

mysql> create table 乘法表(九九 varchar(666));
Query OK, 0 rows affected (0.01 sec)

mysql> delimiter $$
mysql> create procedure D ( )
    -> begin
    -> declare a int;
    -> declare b int;
    -> declare c varchar(1000);
    -> set a=1;
    -> while a<=9
    -> do
    -> set b=1;
    -> set c='';
    -> while b<=a
    -> do
    -> set c=concat(c,'   ',a,'*',b,'=',a*b);
    -> set b=b+1;
    -> end while;
    -> set a=a+1;
    -> insert into 乘法表 select c;
    -> end while;
    -> end $$
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;


執行儲存過程,並檢視效果

mysql> call D();
mysql> select * from 乘法表;
+----------------------------------------------------------------------------------+
| 九九                                                                             |
+----------------------------------------------------------------------------------+
|    1*1=1                                                                         |
|    2*1=2   2*2=4                                                                 |
|    3*1=3   3*2=6   3*3=9                                                         |
|    4*1=4   4*2=8   4*3=12   4*4=16                                               |
|    5*1=5   5*2=10   5*3=15   5*4=20   5*5=25                                     |
|    6*1=6   6*2=12   6*3=18   6*4=24   6*5=30   6*6=36                            |
|    7*1=7   7*2=14   7*3=21   7*4=28   7*5=35   7*6=42   7*7=49                   |
|    8*1=8   8*2=16   8*3=24   8*4=32   8*5=40   8*6=48   8*7=56   8*8=64          |
|    9*1=9   9*2=18   9*3=27   9*4=36   9*5=45   9*6=54   9*7=63   9*8=72   9*9=81 |
+----------------------------------------------------------------------------------+
9 rows in set (0.00 sec)