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;