加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

MySql 5.0基础知识和常用命令详细详解

发布时间:2021-11-27 16:52:10 所属栏目:教程 来源:互联网
导读:CREATE PROCEDURE 建立一个存放在MySQL数据库的表格的存储过程。 CREATE FUNCTION 建立一个用户自定义的函数,尤其是返回数据的存储过程。 ALTER PROCEDURE 更改用CREATE PROCEDURE 建立的预先指定的存储过程,其不会影响相关存储过程或存储功能。. ALTER FUN
CREATE PROCEDURE 建立一个存放在MySQL数据库的表格的存储过程。   CREATE FUNCTION 建立一个用户自定义的函数,尤其是返回数据的存储过程。   ALTER PROCEDURE 更改用CREATE PROCEDURE 建立的预先指定的存储过程,其不会影响相关存储过程或存储功能。.   ALTER FUNCTION 更改用CREATE FUNCTION 建立的预先指定的存储过程,其不会影响相关存储过程或存储功能。.   DROP PROCEDURE 从MySQL的表格中删除一个或多个存储过程。   DROP FUNCTION 从MySQL的表格中删除一个或多个存储函数。   SHOW CREATE PROCEDURE 返回使用CREATE PROCEDURE 建立的预先指定的存储过程的文本。这一声明是SQL:2003规范的一个MySQL扩展。   SHOW CREATE FUNCTION 返回使用CREATE  FUNCTION建立的预先指定的存储过程的文本。这一声明是SQL:2003规范的一个MySQL扩展。   SHOW PROCEDURE STATUS 返回一个预先指定的存储过程的特性,包括名称、类型、建立者、建立日期、以及更改日期。这一声明是SQL:2003规范的一个MySQL扩展。   SHOW FUNCTION STATUS 返回一个预先指定的存储函数的特性,包括名称、类型、建立者、建立日期、以及更改日期。这一声明是SQL:2003规范的一个MySQL扩展。   CALL 调用一个使用CREATE PROCEDURE建立的预先指定的存储过程。   BEGIN ... END 包含一组执行的多声明。   DECLARE 用于指定当地变量、环境、处理器,以及指针。   SET 用于更改当地和全局服务器变量的值。   SELECT ... INTO 用于存储显示变量的纵列。   OPEN 用于打开一个指针。   FETCH 使用特定指针来获得下一列。   CLOSE 用于关闭和打开指针。   IF 一个An if-then-else-end if 声明。   CASE ... WHEN 一个 case声明的结构   LOOP 一个简单的循环结构;可以使用LEAVE 语句来退出。   LEAVE 用于退出IF,CASE,LOOP,REPEAT以及WHILE 语句。   ITERATE 用于重新开始循环。   REPEAT 在结束时测试的循环。   WHILE 在开始时测试的循环。   RETURNS 返回一个存储过程的值。       MySQL 5.0支持存储过程语句。       一.创建存储过程   1.基本语法:   create procedure sp_name() begin ......... end   2.参数传递   二.调用存储过程   1.基本语法:call sp_name() 注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递   三.删除存储过程   1.基本语法: drop procedure sp_name// 2.注意事项 (1)不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程   四.区块,条件,循环   1.区块定义,常用 begin ...... end; 也可以给区块起别名,如: lable:begin ........... end lable; 可以用leave lable;跳出区块,执行区块以后的代码 2.条件语句   if 条件 then statement else statement end if;   3.循环语句 (1).while循环   [label:] WHILE expression DO   statements   END WHILE [label] ;       (2).loop循环   [label:] LOOP   statements   END LOOP [label];     (3).repeat until循环   [label:] REPEAT   statements   UNTIL expression   END REPEAT [label] ;     五.其他常用命令   1.show procedure status 显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等 2.show create procedure sp_name   存储过程创建语法:   CREATE PROCEDURE procedure_name ([parameter[,...])   [LANGUAGE SQL]   [ [NOT] DETERMINISTIC ]   [{CONTAINS SQL|MODIFIES SQL DATA|READS SQL DATA|NO SQL}]   [SQL SECURITY {DEFINER|INVOKER} ]   [COMMENT comment_string]   procedure_statements     可用SHOW PROCEDURE STATUS 或 SHOW CREATE PROCEDURE 来查看存储过程信息 另,系统表INFORMATION_SCHEMA.ROUTINES也包含了存储过程的一些信息 同样地,函数也可以使用同样方式查看(SHOW FUNCTION STATUS)   函数的创建     CREATE FUNCTION function_name (parameter[,...])   RETURNS datatype   [LANGUAGE SQL]   [ [NOT] DETERMINISTIC ]   [ {CONTAINS SQL | NO SQL | MODIFIES SQL DATA | READS SQL DATA} ]   [ SQL SECURITY {DEFINER|INVOKER} ]   [ COMMENT comment_string ]   语句体   函数与存储过程基本一样,其区别主要有: 1、  要使用RETURNS指定返回类型 2、  函数必须返回值,且在语句体中使用RETURN返回(注意:指定返回类型用RETURNS,返回值用RETURN) 3、  参数不区分IN,OUT,全部为IN类形   例: CREATE FUNCTION cust_status(in_status CHAR(1))     RETURNS VARCHAR(20) BEGIN DECLARE long_status VARCHAR(20);     IF in_status="O" THEN SET long_status="Overdue";     ELSEIF in_status="U" THEN SET long_status="Up to date";     ELSEIF in_status="N" THEN SET long_status="new";     END IF;     RETURN(long_status); END;   调用: SELECT cust_status('O');   触发器   CREATE [DEFINER={user|CURRENT_USER}] TRIGGER trigger_name   {BEFORE|AFTER} {UPDATE|INSERT|DELETE}   ON table_name   FOR EACH ROW   trigger_statements     意义:当对表table_name执行update,insert,delete操作之前(before)或之后(after)时触发语句trigger_statements操作   例: mysql> CREATE TRIGGER account_balance_au AFTER UPDATE ON account_balance FOR EACH ROW BEGIN   DECLARE dummy INT;   IF NEW.balance<0 THEN      SET NEW.balance=NULL;   END IF; END   上述触发器表示:当更新表account_balance之后,如果更新的值balance小于0,则将它改为NULL, 注:如果为OLD.balance则表示更新前的原值

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读