DBMS 37

0. Trigger

TRIGGER 테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업 데이터 조작 언어(DML)의 데이터 상태의 관리를 자동화하는 데 사용된다. 데이터 작업 제한, 작업 기록, 변경 작업 감사 등을 할 수 있다. 1. 트리거의 목적 일반적으로 이벤트와 관련된 테이블의 데이터 삽입, 추가, 삭제 작업을 자동적으로 실행시키는 데 목적이 있다. 데이터 무결성 유지 및 로그 메시지 출력 등의 별도 처리를 위해 사용되기도 한다. 데이터 무결성이란? 데이터베이스에 저장된 데이터 값과 그것이 표현하는 실제 값이 일치하는 정확성을 의미한다. 2. 트리거의 구성 DELIMITER $$ CREAT TRIGGER TRIGGER_NAME [ AFTER / BEFORE ] [ INSERT / UPDATE / DELETE ] ON..

DBMS/공부 2024.02.08

0. 예외 (Exception)

예외 (Exception) 데이터베이스 작업 중 발생할 수 있는 오류 또는 예기치 않은 상황 경미한 오류의 일종 실행 오류의 하위 카테고리 예외 발생 시 전체 프로그램의 Runtime 이 유지되도록 처리하는 작업을 예외처리라고 한다. DECLARE (ACTION) HANDLER FOR (ERROR) BEGIN 예외 처리 작업 END; 1. 특정 에러코드의 예외 처리 특정 에러코드 1146, 1136에 대한 예외 처리 작업을 만들어주었다. 에러코드에 대한 예외 처리 작업을 만들어주니 에러로 인한 중단 없이 끝까지 실행이 되었다. 2. 발생한 에러 코드와 메시지 조회 SHOW ERRORS; 이전에 발생했던 에러에 대한 정보를 출력해준다. 3. SQLEXCEPTION DECLARE (ACTION) HANDLE..

DBMS/공부 2024.02.08

0. 오류 처리

오류 처리 (조건 핸들러) 오류가 발생할 경우 직접 오류를 처리하는 방법 1. 오류 처리 DECLARE 액션 HANDLER FOR 오류조건 처리할 문장; Primary Key 값을 중복으로 삽입하여 에러를 발생시켜보았다. 문제점 에러가 발생한 INSERT INTO TBL_TX VALUES (2, 'FF', 35, 'W'); 이전까지 실행된 쿼리문은 적용이 되어있다. (ROLLBACK 이 안되어 있음) 해결법 예외 처리 문장에 ROLLBACK을 추가하거나 SAVEPOINT를 사용한다. 트랜잭셕은 예외, 오류 처리와 같이 사용된다. 출처 https://dang-dang12.tistory.com/28 MySQL 오류 처리(조건 핸들러) MySQL은 오류가 발생할 경우 직접 오류를 처리하는 방법을 제공한다. 형..

DBMS/공부 2024.02.08

0. TRANSACTION

TRANSACTION 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 이련의 연산들을 의미한다. 1. 트랜잭션의 특징 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위이다. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업단위이다. 하나의 트랜잭션은 Commit되거나 Rollback 된다. 예시 INSERT INTO TBL_NAME VALUES (...) 해당 쿼리문이 실행되어 Commit되는 과정이 상태 변환 과정이다. INSERT INTO ~ AUTO COMMIT INSERT INTO ~ AUTO COMMIT UPDATE ~ AUTO COMMIT FAIL 이때, 쿼리문 ..

DBMS/공부 2024.02.08

0. STORED PROCEDURE

STORED PROCEDURE(저장 프로시저) DB 내부에 저장된 일련의 SQL 명령문들을 하나의 함수처럼 실행하기 위한 쿼리의 집합이다. 즉, DB에 대한 작업을 정리한 절차를 RDBMS에 저장한 쿼리의 집합이다. SQL Server에서 제공되는 프로그래밍 기능이다 어떠한 동작을 일괄 처리하기 위한 용도로 사용한다 자주 사용되는 일반적인 쿼리를 모듈화시켜서 필요할 때마다 호출한다 테이블처럼 각 데이터베이스 내부에 저장한다 1. STORED PROCEDURE 사용법 1) PROCEDURE 정의 DELIMITER $$ CREATE PROCEDURE (PROCEDURE NAME) (PARAM) BEGIN ... END $$ DELIMITER ; DECLARE 변수명 변수타입을 통해 변수 선언 가능 SET 변..

DBMS/공부 2024.02.07

0. PIVOT

PIVOT 행을 열로 변환할 때 사용하는 기법 (테이블의 회전) 문제 1) BuyTBL 테이블의 prodName을 이용하여 유저 별 각 상품 구매 횟수를 조사하는 피벗 테이블을 만들어라 유저 별 상품 구매 횟수를 구해야 하므로 GROUP BY로 userID를 grouping 하였다 2) BuyTBL 테이블의 groupName을 이용하여 유저 별 각 상품 그룹의 구매 횟수를 조사하는 피벗 테이블을 만들어라 3) UserTBL 테이블의 addr을 이용하여 지역별 거주 인원을 조사하는 피벗 테이블을 만들어라 에러 1. SUM(IF(TEST=NULL, 1, 0)) TEST=NULL일 경우에 대한 조건문이 제대로 실행되지 않았다. 해결: TEST=NULL을 TEST IS NULL로 바꿔 작성하였다. 출처 http..

DBMS/공부 2024.02.07

0. JSON

JSON JavaScript Object Natation (JSON)은 Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷이다. 웹 어플리케이션에서 데이터를 전송할 때 일반적으로 사용한다. 1. JSON_OBJECT json 단위 생성 함수( Key1, Value1, Key2, Value2 ... ) 2. 메서드를 사용하지 않은 json 데이터 생성 3. 여러 json 데이터 저장 4. json 유효성 검사 1: true, 0: false 주의) json 데이터의 바깥쪽이 " " 이면 false가 뜨고 ' ' 이면 true가 뜬다. 4. json 유효성 검사를 하기 위해서 @json_data_3 데이터 값 형식을 변경하였다 5. JSON 데이터 탐색 'ONE': 첫 ..

DBMS/공부 2024.02.05

0. VIEW

VIEW 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위한 가상 테이블이다. 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주된다. SELECT 쿼리문의 결과를 VIEW로 만들 수 있다. 기본 테이블의 기폰키를 포함한 속성(열) 집합으로 뷰를 구성해야하지만 삽입, 삭제, 갱신, 연산 이 가능하다. 1. 가상 테이블 만들기 CREATE OR REPLACE VIEW 데이터베이스에서 뷰(VIEW)를 생성하거나 이미 존재하는 뷰를 대체하는 목적으로 사용된다. 2. 가상 테이블 확인하기 SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE 조건절 3. 가상 테이블 데이터 조회 (SELECT) 4. 가상 테이블 데이터 삽입 (INSERT) 뷰(VIE..

DBMS/공부 2024.02.05

0. JOIN

JOIN 2개 이상의 테이블을 서로 묶어서 하나의 조회 결과를 만드는데 사용한다. 1. JOIN 종류 1) INNER JOIN ON 이하의 조건절을 만족하는 행만 JOIN 한다. SELECT FROM INNER JOIN ON [WHERE 검색조건] INNER JOIN을 JOIN이라고만 써도 INNER JOIN으로 인식한다. (DEFAULT) 1-1) INNER JOIN 사용 컬럼 이름 userID가 같다. 1-2) 원하는 필드 데이터를 출력하고 싶을때 두 테이블의 필드 이름이 같은 문제 발생 필드를 작성할 때, 어떤 테이블인지 명시해준다. ( USERTBL.USERID ) 1-3) 테이블 별칭 설정 테이블의 별칭을 설정한다 ( USERTBL: U, BUYTBL: B ) 1-4) WHERE 조건절 추가하기..

DBMS/임시 2024.02.02