MySQLの変数を理解して、データベース操作をレベルアップ
MySQLで変数を宣言する方法
ユーザー定義変数
SET
ステートメントを使用して、ユーザー定義変数を宣言できます。
SET @変数名 = 値;
例:
SET @name = 'John Doe';
SET @age = 30;
代入演算子 (=
) を使用して、変数に値を代入できます。
@変数名 = 値;
@name = 'John Doe';
@age = 30;
ローカル変数
DECLARE 変数名 データ型 [DEFAULT デフォルト値];
DECLARE name VARCHAR(255) DEFAULT 'John Doe';
DECLARE age INT DEFAULT 30;
変数名 = 値;
name = 'John Doe';
age = 30;
その他
- クエリ内で直接変数を使用できます。
- ストアドプロシージャ内で変数を使用できます。
補足
- 変数は、
@
記号で始まります。 - 変数は、数字、文字、アンダースコア (_) を含む名前を使用できます。
- 変数は、文字列、数値、日付、時間など、さまざまなデータ型を持つことができます。
例
-- ユーザー定義変数
SET @name = 'John Doe';
SET @age = 30;
SELECT @name, @age;
-- ローカル変数
DECLARE name VARCHAR(255) DEFAULT 'John Doe';
DECLARE age INT DEFAULT 30;
SELECT name, age;
出力
John Doe
30
John Doe
30
-- ユーザー定義変数
SET @name = 'John Doe';
SET @age = 30;
-- ユーザー定義変数を使用して、クエリ内で直接変数を使用できます。
SELECT CONCAT(@name, ' is ', @age, ' years old.');
-- ローカル変数
DECLARE name VARCHAR(255) DEFAULT 'John Doe';
DECLARE age INT DEFAULT 30;
-- ローカル変数を使用して、クエリ内で直接変数を使用できます。
SELECT CONCAT(name, ' is ', age, ' years old.');
-- ストアドプロシージャ内で変数を使用できます。
DELIMITER //
CREATE PROCEDURE my_procedure()
BEGIN
DECLARE name VARCHAR(255) DEFAULT 'John Doe';
DECLARE age INT DEFAULT 30;
SELECT CONCAT(name, ' is ', age, ' years old.');
END;
//
DELIMITER ;
CALL my_procedure();
John Doe is 30 years old.
John Doe is 30 years old.
John Doe is 30 years old.
説明
- このコードは、ユーザー定義変数とローカル変数の両方を宣言する方法を示しています。
- ユーザー定義変数は、
SET
ステートメントを使用して宣言されます。
MySQLで変数を宣言するその他の方法
環境変数は、オペレーティングシステムによって提供される変数です。MySQLは、環境変数にアクセスして、その値を変数として使用することができます。
# 環境変数の設定
export NAME="John Doe"
export AGE=30
# MySQLで環境変数を使用する
SELECT $NAME, $AGE;
John Doe
30
システム変数は、MySQLによって提供される変数です。システム変数は、MySQLの設定や動作を制御するために使用されます。
SELECT @@version;
SET @@max_connections = 100;
5.7.36-log
セッション変数は、現在の接続にのみ有効な変数です。セッション変数は、SET SESSION
ステートメントを使用して設定されます。
SET SESSION @name = 'John Doe';
SELECT @name;
SET SESSION @name = NULL;
SELECT @name;
John Doe
NULL
MySQLで変数を宣言するには、いくつかの方法があります。それぞれの方法には、長所と短所があります。どの方法を使用するかは、状況によって異なります。
mysql sql