MySql 5.0基礎知識和常用命令詳細介紹建站知識
導讀:1建站知識CREATE PROCEDURE 建立一個存放在MySQL數據庫的表格的存儲過程。 CREATE FUNCTION 建立一個用戶自定義的函數,尤其是返回數據的存seo網站排名優化軟件企業網站建設。
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 SQ企業網站建設L|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則表示更新前的原值相關seo網站排名優化軟件企業網站建設。
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-24 ,文章MySql 5.0基礎知識和常用命令詳細介紹建站知識主要講述詳細介紹,基礎知識,MySql 5.0基礎知識和常用命令詳網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_6701.html