新人研修の一環で、
mysqlの変数についての説明やサンプル例が欲しいと思ったので、ChatGPTに聞いてみた内容をメモしておきます。
MySQLでは、ユーザー定義変数とシステム変数の二つの主なタイプの変数が存在します。ユーザー定義変数は一時的な値を格納するために使うことができ、セッション全体で利用可能です。一方、システム変数はMySQLサーバの動作を制御します。
ユーザー定義変数を設定するには SET
または SELECT
を使い、@var_name := value
の形式を使います。変数名は大文字小文字を区別し、変数の値は数値、文字列、日付またはNULLが可能です。
以下に、変数を使った具体的な例を5つ紹介します
1.変数の設定と参照:
SET @user_name := 'John';
SELECT @user_name;
2. 変数を使った計算:
SET @num1 := 10, @num2 := 20; SELECT @num1 + @num2;
3. CASE文と変数を使った条件分岐:
SET @user_role := 'admin';
SELECT
CASE
WHEN @user_role = 'admin' THEN '管理者'
WHEN @user_role = 'user' THEN 'ユーザー'
ELSE 'ゲスト'
END;
4.ループ構造と変数: MySQLには直接的なループ構造が存在しませんが、手続きを使って似たような動作を実現できます。以下にプロシージャを使って変数を1ずつ増やす例を示します:
DELIMITER //
CREATE PROCEDURE increaseNum(INOUT num INT)
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i < 10 DO
SET num = num + 1;
SET i = i + 1;
END WHILE;
END //
DELIMITER ;
CALL increaseNum(@num);
SELECT @num;
5. 変数を使った一時的な結果の保存とその再利用:
SET @user_count = (SELECT COUNT(*) FROM users WHERE status = 'active');
SELECT @user_count AS active_users;
この記事へのコメントはありません。