Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

일반 쿼리에 대해 MySQL에서 변수를 선언하는 방법은 무엇입니까?

<시간/>

세션 변수인 @anyVariablename을 사용하여 변수를 선언할 수 있습니다. 세션 변수를 생성하기 위해서는 SET 명령어를 사용해야 합니다.

구문은 다음과 같습니다.

SET @anyVariableName:=anyValue;

DECLARE 명령을 사용하여 지역 변수를 선언할 수 있습니다. 구문은 다음과 같습니다.

DECLARE yourVariableName datatype

변수 생성 시 기본값을 설정할 수 있습니다. 구문은 다음과 같습니다.

DECLARE yourVariableName datatype default ‘yourValue’

다음은 세션 변수의 데모입니다. 이해를 돕기 위해 표를 만들어 보겠습니다.

테이블 생성 쿼리는 다음과 같습니다.

mysql> create table SessionVariableDemo
   -> (
   -> EmployeeId varchar(10),
   -> EmployeeName varchar(30),
   -> EmployeeAge int
   -> );
Query OK, 0 rows affected (0.70 sec)

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다

mysql> insert into SessionVariableDemo values('EMP-101','Carol',30);
Query OK, 1 row affected (0.20 sec)

mysql> insert into SessionVariableDemo values('EMP-102','John',26);
Query OK, 1 row affected (0.20 sec)

mysql> insert into SessionVariableDemo values('EMP-103','Bob',25);
Query OK, 1 row affected (0.19 sec)

mysql> insert into SessionVariableDemo values('EMP-104','Sam',32);
Query OK, 1 row affected (0.14 sec)

mysql> insert into SessionVariableDemo values('EMP-105','Mike',35);
Query OK, 1 row affected (0.11 sec)

mysql> insert into SessionVariableDemo values('EMP-106','David',33);
Query OK, 1 row affected (0.15 sec)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다

mysql> select *from SessionVariableDemo;

다음은 출력입니다.

+------------+--------------+-------------+
| EmployeeId | EmployeeName | EmployeeAge |
+------------+--------------+-------------+
| EMP-101    | Carol        |          30 |
| EMP-102    | John         |          26 |
| EMP-103    | Bob          |          25 |
| EMP-104    | Sam          |          32 |
| EMP-105    | Mike         |          35 |
| EMP-106    | David        |          33 |
+------------+--------------+-------------+
6 rows in set (0.00 sec)

이제 SET 명령을 사용하여 세션 변수를 생성합니다. 그런 다음 쿼리에서 이 변수를 사용하여 30세 이상의 모든 직원 레코드를 가져옵니다.

SET 명령을 사용하여 세션 변수를 생성해 보겠습니다.

mysql> set @AgeGreaterThan30:=30;
Query OK, 0 rows affected (0.00 sec)

다음은 세션 변수를 사용하여 30세 이상의 직원 레코드를 가져오는 쿼리입니다.

mysql> select *from SessionVariableDemo where EmployeeAge > @AgeGreaterThan30;

다음은 출력입니다.

+------------+--------------+-------------+
| EmployeeId | EmployeeName | EmployeeAge |
+------------+--------------+-------------+
| EMP-104    | Sam          |          32 |
| EMP-105    | Mike         |          35 |
| EMP-106    | David        |          33 |
+------------+--------------+-------------+
3 rows in set (0.00 sec)