[13강.zip_code_DB]변경분 처리sql관련
258
58 asked
안녕하세요.
세세한 설명 감사드립니다.
sql 초급이라 자세한 설명에 맞추어 잘 따라가고 있었는데요.
13강의 변경분처리 sql 에대해
loop 처리관련하여서는
전체 코드를 좀 공유해주시면 안될까요?
개념적으로는 알곘는데
아직 loop 문과 변수에 대해서 적용하는 것에는 익숙하지가 않아서 어떻게 해야 할 지를 모르겠습니다. ㅡㅡ;
Answer 1
1
안녕하세요 류재안님.
말씀하시는 내용을 보니 해당 내용에 대한 솔루션보다는 프로시저나 루프에 관해 도움이 될만한 내용을 답변드리는 것이 더 나을 듯 판단됩니다.
아래 링크에 MariaDB 프로시저와 관련된 샘플 및 소스, 컴파일 방법 등을 your_table에 맞도록 수정하여 놓았습니다. 소스 중 UPDATE와 LOOP 부분을 참고하시면 좋을 듯하며 이곳에는 프로시저 소스코드만 기재합니다.
이하 소스 코드)
/*
-- 이하 코드 모두를 선택하여 HeidiSQL창에 붙여넣고 전체 컴파일
*/
DELIMITER $$
CREATE OR REPLACE PROCEDURE pr_cursor_exam(
IN Param1 VARCHAR(20),
OUT Param2 INT,
OUT Param3 INT
)
BEGIN
DECLARE v_uid VARCHAR(20);
DECLARE v_name VARCHAR(100);
DECLARE v_age INT DEFAULT 0;
DECLARE v_birthday DATE;
DECLARE v_isnosql TINYINT DEFAULT 0;
DECLARE tot_age, avg_age INT DEFAULT 0;
DECLARE rowcnt INT DEFAULT 0; -- 커서에 담긴 데이터의 카운트
DECLARE EOR BOOLEAN DEFAULT FALSE; -- 커서의 끝 여부
DECLARE resultCursor CURSOR FOR
SELECT uid, name, COALESCE(age,0), birthday, isnosql
FROM your_table
WHERE birthday > STR_TO_DATE(Param1,'%Y%m%d');
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET EOR = TRUE;
OPEN resultCursor;
curloop: LOOP
FETCH resultCursor INTO v_uid,v_name,v_age,v_birthday,v_isnosql;
IF EOR THEN LEAVE curloop;
END IF;
SET rowcnt = rowcnt + 1;
SET tot_age = tot_age + v_age;
-- 업데이트문 예시 시작
IF v_isnosql = 1 THEN
UPDATE your_table SET name=CONCAT(name,' -NOSQL')
WHERE isnosql = v_isnosql;
END IF;
-- 업데이트문 예시 끝
END LOOP curloop;
IF rowcnt = 0 THEN
SET rowcnt = 0;
SET avg_age = 0;
ELSE
SET avg_age = tot_age/rowcnt;
END IF;
SELECT FLOOR (rowcnt) INTO Param2;
SELECT FLOOR (avg_age) INTO Param3;
CLOSE resultCursor;
END $$
DELIMITER ;열공하시는 모습 응원합니다.
노션 링크도 안 열리고, 알려준 vercel도 실행이 안됩니다.
0
11
1
코드를 첨부해야하는 이유가 있나요?
0
20
2
간단한 오타 제보입니다.
0
19
1
큰 범위 조회 시 EXPLAIN의 rows 값이 정확하지 않은 이유가 궁금합니다.
0
35
2
실제 FK제약조건을 설정하지 않는이유
0
36
2
Free Edition 실습 영상은 아직 업데이트전인가요?
0
22
1
상품 정보 크롤링
0
29
2
강의에 적용한 스크립트를 받아 볼수 있을까요?
0
40
2
실습소실행안되요
0
39
1
수강기간 연장
0
27
1
BCNF 질문
0
49
2
연관 엔티티 네이밍 규칙
0
40
1
ORA-01017 오류 때문에 진도가 못나가고있습니다.!
0
38
2
히스토리 관련 질문
0
58
2
SSMS 설치 오류
0
50
1
제공된 홈페이지 로그인 ,출력값, 건의사항 오류
1
49
1
최신 하드웨어에서 SQL Express 설치에러 해결법
0
59
1
자료가 남지않은 프로젝트는 어떻게 적어야 할까요?
0
42
2
진짜 강의 듣는거 너무 고문
0
114
1
vs code
0
48
2
맥북용 자료 부탁드립니다.
0
38
2
로그인이 안되네요
0
33
1
[14강 도로명 주소db 구축(2)]관련
1
432
2
[14강]도로명주소 DB구축(1) 관련
1
509
2

