ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Oracle] DB에 데이터 추가하기
    Database 2022. 7. 20. 18:54

    프로젝트 진행 중 백엔드 구현 전에 테스트 데이터를 넣어보려고 하는데 자꾸 뭐가 안됐다...😑

    해결하면서 우리 프로젝트에만 해당하는 부분들이 몇 가지 있길래 팀원분들한테도 공유하려고 지라에 정리해둔 것을 블로그에도 옮겨둔다.

    스티커 붙여둔 부분은 실명이라 가렸다.

     

    INSERT문 골격

    INSERT INTO 테이블명
    (
      열 이름1,
      열 이름2,
      열 이름3
    )
    VALUES
    (
      값 1,
      값 2,
      값 3
    );

     

    주의사항
    1. 열의 수와 값의 수는 반드시 일치해야 합니다.
      일치하지 않을 경우 오류 발생
      (ORA-00947: 값의 수가 충분하지 않습니다.)

    2. 열 이름은 큰 따옴표(“ “) 안에 작성해야 합니다.
      왜 이런지는 모르겠으나.. (아마 언더바(_) 때문이라 추측) 그냥 열 이름을 작성했을 시 오류가 발생합니다.
      또한, 큰 따옴표 안에 작성하는 열 이름은 대소문자를 구분하기 때문에 열 이름을 정확히 입력해야 합니다.
      (ORA-00904: 부적합한 식별자)
    3. VALUES에 해당하는 값이 varchar2타입 이라면 작은 따옴표(' ‘)안에 작성해야 합니다. 큰 따옴표에 넣거나, 따옴표 없이 작성할 경우 오류가 발생합니다. 핸드폰 번호같은 경우에도, varchar2타입으로 지정했기 때문에 '01012341234’ 이렇게 입력해야 합니다.
      (ORA-00984: 열을 사용할 수 없습니다)
    4. 해당 테이블 중 외래 키를 가지는 열이 있을 경우, 부모 테이블에 먼저 해당 데이터를 가지고 있어야 합니다. 부모 테이블에 없는 데이터를 추가할 경우 오류가 발생합니다.
      (ORA-02291: 무결성 제약조건이 위배되었습니다.부모 키가 없습니다.)
    5. Default값을 가지는 열의 경우, 값을 입력하지 않아도 자동으로 데이터가 들어갑니다. (시간을 설정할 때 매우 유용)

    6. NOT NULL 제약조건이 설정되어있는 열은 INSERT할 때 무조건 데이터를 추가해야 합니다.
      (단, Default값이 설정되어있는 열은 생략 가능합니다.)

    위의 주의사항을 지켜서 t_user테이블에 데이터를 추가한다고 가정했을 때,

    다음과 같이 작성하면 됩니다.

    t_user테이블의 열 구조입니다.

    8번 행 이후부터는 모두 default값이 설정되어있고, 모든 행이 NULL을 허용하지 않습니다.

    디폴트값이 없고 NULL을 허용하지 않는 열에 데이터를 직접 입력하고, 8행 이후부터의 열에는 데이터를 입력하지 않았습니다.

    SQL 문장 실행 후, 데이터가 잘 들어온 것을 확인할 수 있습니다. 값을 입력하지 않은 열에는 설정해둔 default값이 들어옵니다.

     


    +) 날짜 다루기

    current_date로 받아온 날짜는 현재 22/07/20 이렇게 저장되어있지만, 그 안에 시, 분, 초까지 모두 저장하고 있습니다. 이를 다룰 땐 to_char함수를 이용해 마음대로 날짜형식을 지정할 수 있습니다.

    to_char("date타입인 열 이름", '포맷팅 형식')
     

    주의사항
    1. 포맷팅 형식은 작은 따옴표(' ')안에 지정해야 합니다.
    2. 포맷팅 형식으로 한글을 입력할 경우, 한글은 꼭 큰 따옴표 안에 작성해야 합니다. 나머지 기호들은 그냥 입력하면 됩니다.

     

    Oracle 날짜 포맷팅 기호 정리

    yyyy: 년도 (yy는 뒷 두자리만 출력)
    MM: 월
    dd: 일

    HH: 시 (12시간단위)
    HH24: 시 (24시간단위)
    AM 또는 PM: 오전/오후를 표시(둘 중 하나만 입력하면 자동으로 시간에 맞춰 표시함)
    mm: 분
    ss: 초

     


    +) 오라클 디벨로퍼에서 직접 데이터 추가/삭제/변경하는 방법

    SQL문을 작성하지 않고도, 오라클 디벨로퍼에서 데이터의 추가/삭제/변경이 가능합니다.

    테이블 - 데이터 탭의 좌측 상단 메뉴를 이용해 추가/삭제/수정이 가능합니다.

    행 추가: 새로운 행 삽입

    행 삭제: 기존 행 삭제

    컬럼 데이터를 더블클릭하면 기존 데이터를 편집할 수 있습니다.

    데이터 변경 후 커밋(오른쪽에서 두번째)을 누르면 DB에 반영되고, 롤백(마지막)을 누르면 변경사항이 취소됩니다.

     

    제약조건 탭에서 편집을 눌러 테이블명, 컬럼명, 데이터유형, 크기, NULL제약 조건 등등을 모두 변경할 수 있습니다.

     

    'Database' 카테고리의 다른 글

    IE 표기법(Information Engineering)  (0) 2022.04.22
    정규화란 무엇인가?  (0) 2022.04.20
    데이터 모델링의 개념  (0) 2022.04.18
    데이터의 무결성 제약조건  (0) 2022.04.18
    데이터베이스 시스템  (0) 2022.04.14

    댓글

Designed by Tistory.