Heim  >  Artikel  >  Datenbank  >  MySQL5.0存储过程详细讲解_MySQL

MySQL5.0存储过程详细讲解_MySQL

WBOY
WBOYOriginal
2016-06-01 14:03:25637Durchsuche

Introduction 简介 YI,Pj`T5  
pC/ 0'%  
MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的。简单的来说是介绍了“存储过程、触发器、视图、信息架构视图”,在此感谢译者陈朋奕的努力. ,J1|.b 5  
v+931ZV*q  
  希望这本书能像内行专家那样与您进行对话,用简单的问题、例子让你学到需要的知识。为了达到这样的目的,我会从每一个细节开始慢慢的为大家建立概念,最后会给大家展示较大的实用例,在学习之前也许大家会认为这个用例很难,但是只要跟着课程去学,相信很快就能掌握。 E{sA7  
v6grz{ {  
Conventions and Styles 约定和编程风格 "t-_2T%h  
PH$M.  
  每次我想要演示实际代码时,我会对mysql客户端的屏幕就出现的代码进行调整,将字体改成Courier,使他们看起来与普通文本不一样。 M6B~by  
^,MA5pj5v  
  在这里举个例子:mysql> DROP FUNCTION f;Query OK, 0 rows affected (0.00 sec) .~nSXEu  
Kl,#%  
  如果实例比较大,则需要在某些行和段落间加注释,同时我会用将“ nkqQqTv7  
W.-!>mU  
  例如: 2U"eF[1%G  
; {Re614hd  
mAt{h?G92  
mysql> CREATE PROCEDURE p () e8 [j&Pin  
-> BEGIN x4U &  
-> /* This procedure does nothing */ W,bCf3b{3  
-> END;//Query OK, 0 rows affected (0.00 sec) R g|\}'  
\ K+f*~>  
,d:H9VB  
  有时候我会将例子中的"mysql>"和"->"这些系统显示去掉,你可以直接将代码复制到mysql客户端程序中(如果你现在所读的不是电子版的,可以在mysql.com网站下载相关脚本)所以的例子都已经在Suse 9.2 Linux、Mysql 5.0.3公共版上测试通过。 melM%o  
';4(|M4%  
  在您阅读本书的时候,Mysql已经有更高的版本,同时能支持更多OS了,包括Windows,Sparc,HP-UX。因此这里的例子将能正常的运行在您的电脑上。但如果运行仍然出现故障,可以咨询你认识的资深Mysql用户,以得到长久的支持和帮助。 BQ])^~I`  
Why MySQL Statements are Legal in a Procedure Body z B'CzZ]  
  什么MySQL语句在存储过程体中是合法的? [.G 5y>,m%  
/]jP  
  什么样的SQL语句在Mysql存储过程中才是合法的呢?你可以创建一个包含INSERT, UPDATE,DELETE, SELECT, DROP, CREATE, REPLACE等的语句。你唯一需要记住的是如果代码中包含MySQL扩充功能,那么代码将不能移植。在标准SQL语句中:任何数据库定义语言都是合法的,如: C%r  
Y!V4) )I"  
BEz;Q8;  
?-2}9D!:  
_(8)ETMb  
CREATE PROCEDURE p () DELETE FROM t; // JR%GJ1'2q2  
lGs?i 2 4K  
  SET、COMMIT以及ROLLBACK也是合法的,如: I7iDsM  
t(!*x7F>PK  
FxD%+&E7H  
CREATE PROCEDURE p () SET @x = 5; // 2B;hZ'A  
_7ruKxZY  
F)c |OMH  
  MySQL的附加功能:任何数据操作语言的语句都将合法。 E mh D6)  
GJR.P^7t%!  
=4KN 0v4  
CREATE PROCEDURE p () DROP TABLE t; // )T@9ue4  
]Az"WF^;  
Qok (  
  MySQL扩充功能:直接的SELECT也是合法的: uQ.uOkq`  
pD& T3s1  
j&1o&2LD  
CREATE PROCEDURE p () SELECT 'a'; // TY_UUmRDs  
EZd&R1xp  
5ls[l}PxY  
  顺便提一下,我将存储过程中包括DDL语句的功能称为MySQL附加功能的原因是在SQL标准中把这个定义为非核心的,即可选组件。 O|K@/H!`  
"~!6Tw:9KS  
rz]sMTDN]  
The New SQL Statements 新SQL语句 s Dj>ZG"'  
J4{z"\  
Variables 变量 i;>6? O  
/BHC)VxUu  
  在复合语句中声明变量的指令是DECLARE。 y3D[^  
Q6T@cyVG  
  (1) Example with two DECLARE statements 'djnaVKz:!  
^>M[c_ Z  
  两个DECLARE语句的例子 O )V4`tN#  
f|tJ\Y,Ss  
qcN-pc4  
pcA_7@L  
Fzlmm7%  
;_iIl  
'7WWbz0rR  
CREATE PROCEDURE p8 () :q:?9 T[  
!oG  
BEGIN 2 M\`+a  
@b}oh#\r  
DECLARE a INT; F%nx()  
sergz+BW%  
DECLARE b INT; 9UEM8Z;bE9  
n!P7?]t  
SET a = 5; %$V]UQ_Q  
c"-#[>JA  
SET b = 5; TX.!\{%)  
1zOWZ?  
INSERT INTO t VALUES (a); 8

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn