흰 스타렉스에서 내가 내리지

SQL 에서의 변수 사용, 그리고 PREPARE 와 EXECUTE 절 본문

SQL

SQL 에서의 변수 사용, 그리고 PREPARE 와 EXECUTE 절

주씨. 2024. 4. 10. 16:59
728x90

# SQL 에서의 변수

  • SQL 도 다른 일반적인 프로그래밍 언어처럼 변수를 선언하고 사용할 수 있다. 
  • 변수는 MySQL 워크벤치를 재시작할 때까지는 유지되만, 종료하면 없어진다
SET @txt = '도시 이름 : ';
SET @population = 8000000;
SELECT @txt, Name, Population FROM city WHERE Population >= @population;

 

 

 

# LIMIT 에는 사용할 수 없다

 

  • 이 SQL 은 SELECT 문에서 오류가 발생한다. 
  • LIMIT 에는 변수를 사용할 수 없기 때문이다

 

# LIMIT 에 변수를 사용할 수 있게 하는 편법 → PREPARE 와 EXECUTE

SET @txt = '도시 이름 : ';
SET @population = 8000000;
SET @count = 3;
PREPARE mySQL FROM 'SELECT @txt, Name, Population FROM city WHERE Population >= @population LIMIT ?';
EXECUTE mySQL USING @count;
  • PREPARE 는 'SELECT ~~ LIMIT ?' 문을 실행하지 않고 mySQL 이라는 이름으로 준비만 해 놓는다.
    • ? 부분에는 변수가 들어갈 것이다. 
  • EXECUTE 로 mySQL 에 저장된 SELECT 문을 실행할 때, USING 으로 물음표(?) 에 @count 변수의 값을 대입한다. 
    • 결론적으로 아래와 같은 SQL 문이 실행된다
    • SELECT @@txt, Name, Populcation FROM city WHERE Population >= @populiation LIMIT 3;