2024.02.16

김무영·2024년 2월 16일

insert

  • DML(Data Manipulation Language)
  • 테이블에 레코드를 삽입할 때 사용하는 조작어
  • 레코드는 순차적으로 들어가는 것이 아님.
  • transaction 대상 쿼리문. ( DCL로 통제 )
  • 구문 )
    insert into 테이블명(컬럼명,,,,)values(값,,,,);
    • 컬럼명 : 생략가능
      • 숫자 : 2, 2024.02
      • 문자열 : '문자열'
      • 날짜
        • sysdate - 시스템의 현재 날짜
        • '2024-02-16' - 날짜형식의 문자열
        • to_date("2024-02-16','yyyy-mm-dd')-함수
  • 숫자를 저장하는 TEST_NUMBER 테이블 생성 ( 레코드는 존재하지 않는다. )
  • TEST_NUMBER 테이블에 1,25,182.5 추가하고 싶은데
    INSERT INTO TEST_NUMNBER(NUM,AGE,HEIGHT) VALUES(1,25,182.5);
    //컬럼을 명시하면 테이블의 컬럼 순서와 상관 없이 값을 추가할 수 있다.
    INSERT INTO TEST_NUMNBER(AGE,HEIGHT,NUM) VALUES(27,170.3,2);
    INSERT INTO TEST_NUMNBER VALUES(3,22,180.7);
    // 컬럼을 생략하면 테이블의 컬럼순서대로 값을 입력해야한다.

Transaction

  • DB작업의 단위

  • DML중 insert, update, delete 쿼리문만 Transaction 대상 쿼리문이 된다.

  • 쿼리문 하나로 transaction이 구성되는 경우도 있고, 여러 개의 쿼리문이 조합되어
    transaction이 구성되는 경우도 있다.

    • 하나의 쿼리문
      • 회원가입
        • insert 하나로 끝이남.
    • 여러개의 쿼리문
      • 회원탈퇴
        • 회원 테이블에서 delete 한 후
        • 탈퇴한 회원 테이블에 insert 한 후 작업이 끝이남.
  • DCL의 commit과 rollback 사용하여 transaction을 처리한다.

    • transaction완료 => 모든 쿼리문이 성공한 경우

      • commit
        - 접속자 세션에서 변경된 내용들은 HDD에 기록하고, 변경된 내용을 모든 접속자에게 통지
        하는 일을 한다.
        - 저장점이 사라진다.
        - commit된 데이터는 rollback으로 작업 취소를 할 수 없다.
    • transaction취소 => 쿼리문 중 하나라도 실패한 경우.

      • rollback :

Commit

Select

  • 테이블에서 모든 레코드의 특정 컬럼(필드)을 검색하는 DML

  • 문법 ) - (선택)의 경우 생략이 가능하지만 기술할 떄에는 반드시 순서대로 기술해야한다.
    // 테이블의 모든 레코드를 검색

    • (필수)SELECT 컬럼명,,,,함수명(컬럼명), 컬럼명 연산자
    • (필수)FROM 테이블명

    // 조건에 맞는 레코드만 검색

    • (선택)WHERE 절

    그룹화 컬럼 값 중 중복된 값은 묶여서 하나로 검색

    • (선택)GROUP BY 절
    • (선택)HAVING 절

    // 검색 정렬

    • (선택)ORDER BY 절

    Update

  • DML 중 하나

  • Transaction 대상 쿼리 ( commit, rollback )

  • 최소 0건에서부터 최대 검색된 레코드 건까지 변경된다.

  • 문법 )

    • update 테이블명
      set 컬럼명 = 변경할 값 ,,,,
      where 컬럼명 = 찾을 값

    Delete

  • 레코드를 삭제할 때 사용하는 DML.

  • Transaction 대상 쿼리 ( Commit, rollback )

  • 최소 0건에서부터 최대 조건에 맞는 모든 레코드를 삭제한다.

    문법 ) - delete만 사용할시 모든 레코드 삭제

    • delete from 테이블명
      where 컬럼명 = 기준값

    truncate

  • 테이블에 모든 레코드를 절삭할 때 사용하는 DDL

  • transaction 대상 쿼리가 아님.

  • delete 보다 속도가 빠르다.

  • 특정 레코드만 자를 수 없다.

  • 문법 )

    • TRUCATE TABLE 테이블명;

    drop

  • DBMS의 모든 객체를 삭제할 때 사용하는 DDL

  • Oracle 11g 부터는 삭제된 테이블은 휴지통으로 이동한다.

  • 휴지통에 들어간 테이블은 복구가 가능.

    • 문법 )
      • DROP TABLE 테이블명;
      • BIN~~ : 삭제된 테이블명 -> 쿼리문을 사용한 DB작업을 할 수 없다.
  • 휴지통에 있는 테이블 살리기

    • 문법 )
      • flashback table 테이블명 to before drop
  • 휴지통 비우기

    • 문법 )
      • PURGE RECYCLEBIN;

0개의 댓글