1、下面為乙個儲存過程的定義過程:
create procedure proc_name
(in parameter integer)
begin
declare variable varchar(20);
if parameter=1 then set variable=』mysql』;
else set variable=』php』;
endif;
insert into tb (name) values (variable);
end;
mysql中儲存過程的建立以關鍵字create
procedure開始,後面緊跟儲存過程的名稱和引數。mysql的儲存過程名稱不區分大小寫,例如proce1()和proce1()代表同乙個儲存過程名。儲存過程名不能與mysql資料庫中的內建函式重名。
儲存過程的引數一般由3部分組成。第一部分可以是in、out或inout。in表示向儲存過程中傳入引數;out表示向外傳出引數;inout表示定義的引數可傳入儲存過程,並可以被儲存過程修改後傳出儲存過程,儲存過程預設為傳入引數,所以引數in可以省略。第二部分為引數名。第三部分為引數的型別,該型別為mysql資料庫中所有可用的字段型別,如果有多個引數,引數之間可以用逗號進行分割。
mysql儲存過程的語句塊以begin開始,以end結束。語句體中可以包含變數的宣告、控制語句、sql查詢語句等。由於儲存過程內部語句要以分號結束,所以在定義儲存過程前應將語句結束標誌「;」更改為其他字元,並且該字元在儲存過程**現的機率也應該較低,可以用關鍵字delimiter更改。例如:
mysql>delimiter //
儲存過程建立之後,可用如下語句進行刪除,引數proc_name指儲存過程名。
drop procedure proc_name
實現過程
(1)mysql儲存過程是在「命令提示符」下建立的,所以首先應該開啟「命令提示符」視窗。
(2)進入「命令提示符」視窗後,首先應該登入mysql資料庫伺服器,在「命令提示符」下輸入如下命令:
mysql –u使用者名稱 –p使用者密碼
(3)更改語句結束符號,本例項將語句結束符更改為「//」。**如下:
delimiter //
(4)建立儲存過程前應首先選擇某個資料庫。**如下:
use 資料庫名
(5)建立儲存過程。
(6)通過call語句呼叫儲存過程。
舉一反三
– 建表
use test;
create table user(
id mediumint(8) unsigned not null auto_increment,
name char(15) not null default 」,
pass char(32) not null default 」,
note text not null,
primary key (id)
)engine=innodb charset=utf8;
– 示例一
delimiter //
create procedure proc_name (in parameter integer)
begin
if parameter=0 then
select * from user order by id asc;
else
select * from user order by id desc;
end if;
end;
delimiter ;
show warnings;
call proc_name(1);
call proc_name(0);
– 示例二
drop procedure
proc_name;
delimiter //
create procedure proc_name (in parameter
integer)
begin
declare variable
varchar(20);
if parameter=1 then
set variable=』windows』;
else
set variable=』linux』;
end if;
select parameter;
end;
delimiter ;
show warnings;
call proc_name(1);
call proc_name(0);
刪除drop
procedure proc_name;
附註:1.show procedure status;
顯示資料庫中所有儲存的儲存過程基本資訊,包括所屬資料庫,儲存過程名稱,建立時間等
2.show create procedure sp_name
顯示某乙個儲存過程的詳細資訊
mysql增刪改語法例項講解
形式1 insert into 表名 欄位名1,欄位名2,values 值表示式1,值表示式2,這是最常用的插入語句,可以一次性插入多行資料,用逗號隔開 插入語句,要理解為每次插入資料都是以 行 為單位進行插入。欄位名通常不推薦省略,其後續的 值列表 應該跟欄位名列表 一 一對應 其中的值表示式,可...
MySQL可以過等保嗎 Mysql等保部分加固
一 等保要求 作業系統和資料庫系統管理使用者身份標識應具有不易被冒用的特點,口令應有複雜度要求並定期更換。實施步驟 啟用口令複雜審核 5.6.6版本以上,才有此模組功能,需要重啟mysql 檢視版本 檢視當前複雜度配置 空白顯示沒有配置 show variables like validate pa...
mysql 語法 mysql的刪除語法
刪除資料庫 drop database test 刪除表 drop table ifexists test 刪除表資料 delete from test where id 1 不會減少表或索引所占用的空,可以加where條件,可以進行rollback回滾 truncate table test 執行...