스토어드 프로시저 2

[혼공SQL] 커서

커서(Cursor)란? 커서는 MySQL에서 테이블의 행을 순차적으로 접근하면서 처리하는 기능을 제공하는 것을 말한다. 마치 Java에서의 .forEach()와 같다고 보면 된다. 사실 where문으로 원하는 데이터를 조회해서 처리하는 방식으로도 대체 가능하지만, 커서의 초점은 모든 행을 돌면서 처리하는 부분에서 쓰이는 것이다. 커서의 개념 커서는 다른 SQL의 개념들과 달리 조금 복잡한 과정을 가지고 있다. 아래의 그림을 통해서 커서의 처리 과정을 도식화할 수 있을 것 같다. 커서의 사용 앞서 말했듯이 커서는 다소 복잡한 사용 방법을 가지고 있으므로 실제 커서를 사용하는 방식을 예로 들며 설명한다. member 테이블에서 mem_number열의 평균값을 구하고자 한다. 사실 이 예제는 AVG함수를 이용..

CS/DB 2024.02.07

[혼공SQL] 스토어드 프로시저

프로시저의 생성 스토어드 프로시저는 데이터베이스의 개체 중 하나로써 SQL로 프로그래밍 기능(반복문, 조건문 등)을 제공해준다. 사용되는 완전한 형식은 복잡하므로, 자주 쓰이는 형태를 다뤄본다. DELIMITER $$ CREATE PROCEDURE 스토어드_프로시저_이름(IN 또는 OUT 매개변수) BEGIN -- SQL 프로그래밍 코드 작성 END $$ DELIMITER ; 여기서 눈여겨 보아야할 것은 DELIMTER이다. SQL의 구분자를 변경하는 키워드인데, 이를 사용하는 이유는 다음과 같다. 우리가 프로시저 생성에서 SQL 프로그래밍 코드를 작성할 때 사용하는 구분자인 세미콜론(;)은 내부 SQL 구문일 뿐이지, 실제 문장의 끝(프로시저의 끝)을 의미하지 않는다. 문장의 끝은 END 키워드와 구분..

CS/DB 2024.02.05