[TIL] 8/13 데브코스 W2D5 - Database

.·2021년 8월 16일
0

1.Transaction

  • autocommit 모드
    • MySQL에서는 true가 default
    1. True
      • 모든 레코드 작업이 자동 커밋됨
      • 트랜잭션으로 묶어주고 싶으면 BEGIN/END 작성 필요
    2. False
      • COMMIT을 쓸 때까지 커밋 안 된다.
      • 트랜잭션 개념 X

2. View

  • = 가상 테이블 = 이름이 있는 query
  • 쿼리가 View로 데이터베이스단에 저장된다.
  • 자주 사용하는 SELECT SQL문에 이름을 주고 사용을 쉽게 한다.
  • SELECT 결과가 테이블로 저장 X -> View가 사용되면 SELECT가 실행된다.
    // 1. 자주 사용하는 SQL문
    SELECT * FROM user u
    JOIN session s ON u.id = s.user_id;
    
    // 2. View 사용
    CREATE OR REPLACE VIEW user_details AS	-- view 생성
    SELECT * FROM user u
    JOIN session s ON u.id = s.user_id;
    
    // 1의 쿼리를 반복 작성하는 대신 view를 table 이름처럼 사용
    SELECT * FROM user_details;

3. View vs Stored Procedure vs Stored Function 비교

  • View: SELECT문에 이름을 주고 table처럼 호출
    • DB단에 저장, 레코드들 리턴
  • Stored Procedure: View 기능 + SELECT문 조건에 인자를 넣어서 원하는 레코드들/결과값 리턴
    • 인자: IN(입력), OUT(이 변수에 결과 저장 후 리턴), INOUT
    • 간단한 프로그래밍 가능 - if, loop 등
    • CALL proc_name(args)으로 명시적 호출
    • (-) 서버 부하 ⬆
  • Stored Function: SQL문 안에서 내장 함수처럼 사용
    • 인자는 IN만 가능하고, 값을 하나만 리턴한다.
    • SELECT func_name(age) from name;

0개의 댓글