暂无 |

2 在MySQL Workbench中管理Stored routines

Stored routines元件中可以包含许多要执行的SQL叙述,在后续的讨论中,它也可以包含宣告与设定变数,和控制执行流程的指令。所以Stored routines元件其实就有一点类似开发应用程式用的程式语言,不过它不会像程式语言那么复杂,而且大部份都是跟资料库相关的SQL叙述。

2.1 SQL Script、DELIMITER与Stored routines

建立需要的Stored routines元件要使用「CREATE PROCEDURE」或「CREATE FUNCTION」叙述,虽然它们跟其它的SQL叙述一样,也是请资料库执行一件工作,不过Stored routines通常会包含许多需要的叙述,所以通常会使用「SQL script」来执行建立Stored routines的工作。

SQL script是一个包含许多SQL叙述的档案,你可以把想要执行的SQL叙述都集中在一个档案中。以建立课程范例资料库的「cmdev.sql」档案来说,它的内容会像这样:

mysql_13_snap_13

MySQL使用分号作为预设的delimiter,delimiter在SQL script档案中的使用是很重要的,MySQL在执行档案中的叙述时,是以delimiter来分辨一个SQL叙述的范围。MySQL提供「DELIMITER」指令,可以修改预设的delimiter符号:

mysql_13_snap_14

在一般的应用时,你通常不会去修改预设的delimiter符号;可是在建立Stored routines元件的SQL script档案中就一定要使用了。下列是建立Stored procedure元件的基本内容:

mysql_13_snap_15

在「MySQL Workbench」中选择功能表「File > New Query Tab」,接下来就可以输入下列建立procedure的叙述:

mysql_13_snap_16

完成建立procedure的叙述后,要执行这个叙述来建立需要的procedure元件:

mysql_13_snap_65

上列范例所建立的「show_countries」procedure元件中,只有包含一个查询国家资料的叙述,如果一个procedure元件执行的工作只是这样的话,应该就不需要建立procedure元件了。所以procedure元件通常会包含许多要执行的叙述,这时候就一定要使用「BEGIN」与「END」。下列是建立包含多个叙述Stored procedure元件的基本内容:

mysql_13_snap_19

以下列的「my_world_count」procedure元件来说,它可以一次查询国家、语言与城市三个表格的数量:

mysql_13_snap_20

使用SQL script建立functions同样要使用「DELIMITER」关键字设定delimiter。「CREATE FUNCTION」的语法另外包含「RETURNS」与「RETURN」两个关键字。下列是建立Stored functions的基本内容:

mysql_13_snap_21

以下列的「my_date」Stored function来说,它会传回「年/月/日时:分:秒星期」格式的日期时间资料:

mysql_13_snap_22

如果function元件包含许多要执行的叙述,也一定要使用「BEGIN」与「END」。下列是建立包含多个叙述Stored functions元件的基本内容:

mysql_13_snap_23

下列建立「my_date2」Stored function的叙述中,因为包含多个叙述,所以一定要使用「BEGIN」与「END」:

mysql_13_snap_24

注:在Stored routines中使用「DECLARE」与「SET」在「Sotred Routines的变数与流程」中讨论。

2.2 管理Stored Procedures

除了使用SQL script建立需要的Stored Procedures外,你也可以使用「MySQL Workbench」提供的功能来管理Stored Procedures。以建立procedure元件来说,在「Stored Procedures」目录上按滑鼠右键后选择「Create Stored Procedure…」:

mysql_13_snap_63

MySQL Workbench会帮你准备一个建立procedure元件的样版,你只要在「BEGIN」与「END」之间,输入这个procedure元件需要执行的叙述,再选择「Apply」按钮:

mysql_13_snap_57

在确认的视窗选择「Apply」按钮:

mysql_13_snap_58

最后选择「Finish」就可以建立指定的Stored Procedure:

mysql_13_snap_59

在建立好的Stored Procedure上按滑鼠右键后选择「Alter Stored Procedure…」和「Drop Stored Procedure…」可以修改或删除指定的Stored Procedure。

2.3 管理Stored Functions

你也可以使用「MySQL Workbench」提供的功能来管理Stored functions。以建立function元件来说,在「Functions」目录上按滑鼠右键后选择「Create Function…」:

mysql_13_snap_64

MySQL Workbench会帮你准备一个建立Function元件的样版,输入这个Function的内容后,再选择「Apply」按钮:

mysql_13_snap_60

在确认的视窗选择「Apply」按钮:

mysql_13_snap_61

最后选择「Finish」就可以建立指定的Function:

mysql_13_snap_62

在建立好的Function上按滑鼠右键后选择「Alter Function…」和「Drop Function…」可以修改或删除指定的Function。

java教程
php教程
php+mysql教程
ThinkPHP教程
MySQL
C语言
css
javascript
Django教程

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论