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

MySQL에서 준비된 명령문을 어떻게 사용할 수 있습니까?


MySQL 서버는 준비된 명령문을 지원하며, 이는 아주 작은 세부 사항에서만 다른 많은 쿼리를 실행하려는 경우에 유용합니다. 명령문을 준비한 다음 여러 번 실행할 수 있으며 매번 다른 데이터 값으로 실행할 수 있습니다. 기본적으로 MySQL에서 준비된 명령문은 클라이언트/서버 바이너리 프로토콜을 활용합니다. 준비된 명령문은 완전한 명령문이 서버에서 하나만 구문 분석되기 때문에 향상된 성능을 제공합니다.

다음은 MySQL에서 준비된 문을 사용하는 단계입니다 -

문장 준비

PREPARE 문을 사용하여 문을 준비하는 첫 번째 단계입니다. 예를 들어, 다음은 'Tender' 테이블의 데이터를 사용하여 작성된 진술입니다 -

예시

PREPARE stmt FROM ‘Select tender_value from Tender Where Companyname = ?;’

PREPARED 문 실행

'PREPARE' 문을 사용하여 준비된 문을 실행하는 두 번째 단계입니다. 예를 들어 다음 구문을 사용하여 준비된 명령문 stmt를 실행합니다 -

예시

EXECUTE stmt USING @variable_name;

여기서 @variable_name은 tp가 전달하려는 값을 ? PREPARE 문에서. 준비된 명령문을 실행하기 전에 SET 명령문을 사용하여 @variable_name 값을 설정해야 합니다.

PREPARED 문 DEALLOCATE

DEALLOCATE 문을 사용하여 준비된 문을 릴리스하는 마지막 단계입니다. 예를 들어, 다음 구문의 도움으로 준비된 명령문 stmt를 할당 해제합니다 -

예시

DEALLOCATE PREPARE stmt;

다음은 준비된 명령문을 실행하는 데 도움이 되는 쿼리입니다 -

mysql> PREPARE stmt FROM 'SELECT tender_value from Tender WHERE
Companyname = ?';
Query OK, 0 rows affected (0.09 sec)
Statement prepared

mysql> SET @A = 'Singla Group.';
Query OK, 0 rows affected (0.00 sec)

mysql> EXECUTE stmt using @A;
+--------------+
| tender_value |
+--------------+
|   220.255997 |
+--------------+
1 row in set (0.07 sec)

mysql> DEALLOCATE PREPARE stmt;
Query OK, 0 rows affected (0.00 sec)