TIL 7일차...

엄진환·2021년 8월 13일
0

오늘 배운 내용

데이터베이스

트랜젝션

SQL의 수정/추가/삭제에 대한 작업을 하나의 작업으로 처리하는 것

사용 키워드

BEGIN ... END, BEGIN ... COMMIT을 통해서 ...의 위치의 작업들을 한 트랜젝션으로 취급합니다.

AUTOCOMMIT

AUTOCOMMIT 값이 TRUE면 위 명령어 없이 INSERT 등의 하나의 작업이 트랙젝션의 단위가 됩니다.

  • 하나의 명령 실행 시마다 COMMIT을 호출한 것입니다.

AUTOCOMMIT 값이 FALSE면

  • 위 명령어 마지막에 COMMIT이 있어야 하나의 트랙젝션이 되어 DB에 저장됩니다.

ROLLBACK

  • 가장 최근의 COMMIT 위치까지 작업한 내용을 되돌립니다.

JDBC

java에서 DB와 연결되어 데이터를 조작할 수 있도록 해주는 인터페이스입니다.

JAVA에 dependency 추가하기

jdbc는 gradle에 내장으로 포함되지 않기 때문에 denpendency를 추가해줘야 합니다.

외부 사이트에서 gradle에 필요한 내용을 가져와서 build.gradle에 추가합니다. [링크]

View

자주 사용하는 SELECT 쿼리가 있을 때 그 사용을 쉽게 사용하도록 뷰 변수로 만드는 것

사용 키워드

CREATE OR REPLACE VIEW 뷰이름 AS SELECT ...

실행 시 CREATE으로 쿼리로 조회되는 내용의 가상 테이블이 생성됩니다.

Stored Procedure

간단한 분기문, 루프, 함수로 프로그래밍을 할 수 있습니다.

길어지면 서버에 부하가 생깁니다.

사용 키워드

DROP PROCEDURE IF EXISTS return_session_details;
DELIMITER //
CREATE PROCEDURE return_session_details(IN channelName varchar(64))
BEGIN
SELECT *
FROM test.keeyong_session_details
WHERE channel = channelName;
END //
DELIMITER ;
CALL return_session_details('Facebook');

A INTO B : A의 결과를 B에 넣습니다.

INOUT A : A를 인자로 받아서, PROCEDURE 내부 결과로 반환합니다.

호출 방법

CALL 함수명으로 함수를 호출하여 입력, 출력 처리를 합니다.

Stored Function

값을 하나 리턴하는 서버쪽 함수(특정 db 밑에 등록)

모든 함수의 인자는 IN 파라미터만 가능합니다.

결과는 RETURNS 키워드로 반환 타입을 정합니다.

호출 방법

SELECT안에서 함수의 결과 값을 사용

Trigger

사용 키워드

(BEFORE/AFTER) (INSERT/UPDATE/DELETE) ON 이름

추가/갱신/삭제 직전, 직후에 대한 처리를 도와주는 기능을 볼 수 있다.

DECLARE VS SET

DECLARE : 초기화하지 않은 빈 변수를 생성합니다.

SET : 이전에 선택한 값을 초기화합니다.(테스트 결과 변수 생성+초기화의 작업을 하는 것으로 보입니다.)

참고자료(링크)

느낀 점

오늘 DB 심화 공부를 하면서 Stored Function, Trigger 등을 써야 하는 상황을 몰라서 "아 이런 기능들이 있구나" 정도로 공부해서 Java 같은 프로그래밍 언어 공부하듯이 재미를 느끼지는 못했다.
매번 글을 쓰면서 작성하는 포맷이 다른게 마음에 들지 않는다. 일단 쉬지 않고 쓰면서 내가 원하는 TIL 작성 포맷, 작성하고 싶은 공부 내용 포스팅 등 글 쓰는 것에 있어서 내가 다시 봐도 이해할 수 있는 글을 쓰고 싶다. 내일부터는 글을 쓰기 전에 작성 양식을 정해서 글쓰기 방식을 활용해야겠다.

profile
개발 공부 블로그

0개의 댓글