MySQLのDECLARE文の構文と使用方法について教えてください。
ローカル変数またはカーソルを宣言するための DECLARE 文は、BEGIN ステートメントブロック内で使用されなければなりません。DECLARE 文の構文は次のとおりです。
DECLARE変数名データ型[DEFAULT初期値];
variable_nameは変数の名前。datatypeは変数のデータ型。initial_valueは変数の初期値。DECLARE文はBEGIN文ブロックの中で局所変数を宣言し、文ブロックの中でその変数を使用するためのものです。
たとえば、以下の例では、totalという整数の変数が宣言されそしてその初期値は0に設定されています。
DECLARE total INT DEFAULT 0;
次に、その変数は BEGIN ステートメントブロックで使用できます。例:
total に 1 を加算します。そして total の値を出力します。
上記の例では、total変数を宣言し、BEGIN構文ブロック内でtotalの値を1増やし、SELECT構文でtotalの値を出力します。
DECLARE ステートメントは、局所変数の宣言だけでなく、ストアドプロシージャや関数の中で結果セットを処理するためのカーソルの宣言にも使用できます。カーソルを宣言するときに使用する DECLARE ステートメントの構文はわずかに異なります。たとえば:
DECLARE cursor_name CURSOR FOR{SELECT文};
カーソル名であるcursor_nameと、カーソル結果セットを定義するSELECT文であるSELECT_statementが含まれます。
DECLARE文は、ストアドプロシージャ、ファンクション、トリガー内でしか使用できず、単独のSQL文としては使用できないことに注意してください。