[혼공S]6주_스토어드 프로시저 & SQL과 파이썬 연결

황동현·2025년 8월 13일
0

SQL

목록 보기
6/7

[숙제 인증!]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
USE market_db;
CREATE TABLE singer (SELECT mem_id, mem_name, mem_number, addr FROM member);
 
CREATE TABLE backup_singer
( mem_id        CHAR(8NOT NULL ,
  mem_name        VARCHAR(10NOT NULL,
  mem_number    INT NOT NULL,
  addr            CHAR(2NOT NULL,
  modType        CHAR(2),
  modDate        DATE,
  modUser        VARCHAR(30)
);
 
DROP TRIGGER IF EXISTS singer_updateTrg;
DELIMITER $$
CREATE TRIGGER singer_updateTrg
    AFTER UPDATE
    ON singer
    FOR EACH ROW
BEGIN
    INSERT INTO backup_singer VALUES( OLD.mem_id, OLD.mem_name,
        OLD.mem_number, OLD.addr, '수정', CURDATE(), CURRENT_USER() );
END $$
DELIMITER ;
 
DROP TRIGGER IF EXISTS singer_deleteTrg;
DELIMITER $$
CREATE TRIGGER singer_deleteTrg
    AFTER DELETE
    ON singer
    FOR EACH ROW
BEGIN
    INSERT INTO backup_singer VALUES( OLD.mem_id, OLD.mem_name,
        OLD.mem_number, OLD.addr, '삭제', CURDATE(), CURRENT_USER() );
END $$
DELIMITER ;
 
UPDATE singer SET addr = '영국' WHERE mem_id = 'BLK';
DELETE FROM singer WHERE mem_number >= 7;
 
SELECT * FROM backup_singer;
 
TRUNCATE TABLE singer;
 
SELECT * FROM backup_singer;
cs

[스토어드 프로시저 사용 방법]

  • BEGIN ~ END 사이에 코드를 구현함
  • 스토어드 프로시저 작성 후 CALL 문을 통해서 스토어드 프로시저를 호출함
  • 입력매개변수는 스토어드 프로시저에 값을 전달. IN을 앞에 붙임
  • 출력매개변수는 스토어드 프로시저에 계산된 결과를 돌려받음. OUT을 앞에 붙임
  • 동적 SQL은 PREPARE문과 EXECUTE문을 사용.

[스토어드 함수와 커서]

  • 내장함수로 제공되지 않는 기능을 스토어드 함수로 만들어서 사용할 수 있음
  • 스토어드 함수는 RETURNS 예약어를 통해 반환될 데이터 형식을 미리 지정해 놓아야 함
  • 커서는 한 행씩 처리되도록 하는 기능.
  • 커서는 행이 끝날 때까지 계속 반복. 행의 끝을 판단하기 위해 endOfRow를 준비하고 TRUE 값인지 체크하는 방식을 사용

[자동 실행되는 트리거]

  • 트리거는 테이블에서 DML문(INSERT, UPDATE, DELETE)의 이벤트가 발생할 때 작동
  • 트리거는 행 데이터가 삭제 또는 수정되면 기존 데이터를 백업 테이블에 저장하도록 할 수 있음

[파이썬과 MySQL 연동]

  • import pymysql 명령을 사용해서 연동
  • 커밋을 수행해야 변경된 내용이 확정

[GUI 응용 프로그램]

  • GUI는 윈도를 제공함으로써 사용자가 편리하게 데이터베이스에 접근하도록 도와줌
profile
개발 연습!

0개의 댓글