oracleDB_create

song·2023년 9월 27일

oracle

목록 보기
5/10

create

  • 테이블 생성

    create table 테이블명(
    	열이름 데이터타입 [옵션],
      열이름 데이터타입 [옵션]
    );
    
    create table classes(
      cno number(4) constraint classes_PK_con primary key,
      cname varchar2(255) not null
    );

    constraint : 제약조건을 추가하겠다.
    classes_PK_con : 별칭
    생성 후 테이블 누르고 새로고침 누르면 됨.

데이터타입 - 문자형

char(숫자) - 문자형

  • varchar2와 같지만 고정길이 문자 (짧은 문자)
  • 많이 사용되지 않음.

varchar2(숫자) - 문자형

  • 숫자 byte의 가변길이 문자
  • 최대 4000byte까지 가능
  • ex) 제목

long - 문자형

  • 가변길이 문자형 데이터
  • 최대 2G.
  • 테이블당 하나의 컬럼만 생성 가능.
  • ex) 게시글

number(n) - 숫자형

  • n자리 자변길이 정수
  • 최대 38자리까지 가능

number(n, m) - 숫자형

  • n자리 가변길이 정수와 m자리 가변길이 소수점.

date : 날짜형

코멘트

  • 많이 사용하지 않음.
  • 생성
    • 테이블 : comment on table 테이블명 is '쓸 말.
    • 컬럼 : comment on column 테이블명.컬럼명 is '쓸 말.
  • 수정
    • 테이블 : comment on table 테이블명 is '수정할 말'
    • 컬럼 : comment on column 테이블명.컬럼명 is '수정할 말'
      (덮어쓰기임)
  • 삭제
    • 테이블 : comment on table 테이블명 is ''
    • 컬럼 : comment on column 테이블명.컬럼명 is ''
  • 조회
    • select * from user_tab_comments;
    • select * from user_col_comments;

제약조건

  • constraint 종류
    • primary key(기본키) : unique와 not null이 포함되어 있음.
    • foreign key(외래키) : 다른 테이블의 기본키 값을 연결해서 현재 테이블에 가져다 쓰는 것 (연결된 것)
      • fk 걸어놓으면 fk키의 원 테이블 삭제 하기 번거로워서 보통 사용하지 않는다. (정석은 사용하는 것)
    • unique : 해당 컬럼에 중복되는 데이터 금지
    • NOT NULL : 해당 컬럼은 무조건 정보가 들어가 있어야 한다.
      • 최대한 null값이 없는 테이블로 설계하는 걸 추천.
      • NULL들어가게 하려면 조건을 NULL로 수정하면 됨
  • 사용 이유
    • 각 테이블에 해당 컬럼이 어떤 조건을 가져야하는지 결정하고, 그리고 해당 조건을 만족하지 않는 정보가 들어올 때 오류를 나타내준다.
    • 잘 못 된 정보가 들어가지 않게 제약을 걸어주기 위함.
  • select * from user_constraints; : 유저가 소유하고 있는 제약조건 검색
  • select * from user_cons_columns; : 컬럼별로 소유하고 있는 제약조건 검색
create table student(
    s_seqno number(4) constraint studentPK_s_seqno primary key,
    s_name varchar2(50) not null,
    s_phone varchar2(50),
    s_regDate date not null,
    c_seqno number(4) constraint studentFK_c_seqno REFERENCES classes(c_seqno),
    t_seqno number(4) constraint studentFK_t_seqno REFERENCES teacher(t_seqno)
);

foreign key는 t_seqno number(4) constraint studentFK_t_seqno REFERENCES teacher(t_seqno) 이렇게 해야한다. references 테이블명(컬럼명)

profile
계속 나아가기

0개의 댓글