mysql

推荐列表 站点导航

当前位置:首页 > 数据库 > mysql >

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

来源:网络整理  作者:网络  发布时间:2020-12-09 03:33
CREATE PROCEDURE 建立一个存放在MySQL数据库的表格的存储过程。 CREATE FUNCTION 建立一个用户自定义的函数,尤其是返回数...
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则表示更新前的原值

相关热词: MYSQL 命令

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://www.juheyunku.com/sql/mysql/1656.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

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

2020-12-09 编辑:网络

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则表示更新前的原值

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://www.juheyunku.com/sql/mysql/1656.shtml

相关文章

风云图片

推荐阅读

返回mysql频道首页