Oracle - 데이터 정의(CREATE, ALTER, DROP)

uglyduck.dev·2020년 9월 22일
0

따라해보기 🎭

목록 보기
3/12

TABLE 생성(CREATE)

  • Default format.
    CREATE TABLE 테이블 (필드 타입 제약조건, 필드 타입 제약조건);
    CREATE TABLE table(field1 data\_format(size), field2 data\_format(size));

  • 데이터 타입
    1) CHAR(10) : 고정 길이 문자열, 최대 길이 10
    2) VARCHAR2(10) : 가변 길이 문자열, 최대 길이 10
    3) NUMBER : 정수 또는 실수 모두 포함
    4) DATE : 날짜
    5) TIMESTAMP : 날짜

  • 제약조건
    1) NOT NULL : 공백이 불가능하다.
    2) UNIQUE : 중복이 불가능하다.
    3) DAFAULT : 입력되지 않으면 사용할 기본값이다.
    4) CHECK : 유효한 값의 범위를 제한한다.
    5) PRIMARY KEY : 기본키
    6) CONSTAINT 제약조건이름 FOREIGN KEY(필드) REFERENCES 기준테이블(기준필드) : 외래키 + 제약조건이름 설정

기준 테이블참조 테이블
테이블MEMBERBUY
제약조건PKFK
  • 제약 조건 이름 : 테이블_필드_PK, 테이블_필드_FK
CREATE TABLE MEMBER ( 
  NO NUMBER NOT NULL PRIMARY KEY, 
  ID VARCHAR2(20) NOT NULL UNIQUE, 
  PW VARCHAR2(20) NOT NULL, 
  EMAIL VARCHAR2(40) UNIQUE, 
  POINT NUMBER DEFAULT 1000 CHECK (POINT BETWEEN 0 AND 10000) NOT NULL, 
  --POINT NUMBER DEFAULT 1000 CHECK (POINT >= 0 AND POINT <= 10000) NOT NULL, 
  GRADE VARCHAR2(10) CHECK (GRADE = 'VIP' OR GRADE = 'GOLD'), 
  --GRADE VARCHAR2(10) CHECK (GRADE IN('VIP', 'GOLD')), 
  REGDATE DATE DEFAULT SYSDATE NOT NULL 
); 
CREATE TABLE BUY (
  BUYNO NUMBER NOT NULL PRIMARY KEY,
  NO NUMBER NOT NULL,
  PRODUCTNO NUMBER NOT NULL,
  AMOUNT NUMBER DEFAULT 1 NOT NULL
  CONSTRAINT MEMBER\_NO\_FK FOREIGN KEY (NO) REFERENCES MEMBER(NO)
);

TABLE 수정(ALTER)

  • Default format.
    CREATE TABLE 테이블 (필드 타입 제약조건, 필드 타입 제약조건);
    CREATE TABLE table(field1 data\_format(size), field2 data\_format(size));

  • 열 추가
    ALTER TABLE 테이블 ADD 필드 타입 제약조건;
    ALTER TABLE 테이블 ADD (필드 타입 제약조건, 필드 타입 제약조건);

  • 열 삭제
    ALTER TABLE 테이블 DROP COLUMN 필드;
    ALTER TABLE 테이블 DROP (필드, 필드);

  • 열 이름 바꾸기
    ALTER TABLE 테이블 RENAME COLUMN 기존이름 TO 새이름;

  • 열 데이터 형식 수정
    ALTER TABLE 테이블 MODIFY (필드 타입 제약조건);

  • 기본키 제약조건 추가
    ALTER TABLE 테이블 ADD PRIMARY KEY (필드);
    ALTER TABLE 테이블 ADD CONSTRAINT 제약조건이름 PRIMARY KEY (필드);

  • 기본키 제약조건 삭제
    ALTER TABLE 테이블 DROP PRIMARY KEY;
    ALTER TABLE 테이블 DROP CONSTRAINT 제약조건이름;

  • 외래키 제약조건 추가
    ALTER TABLE 참조테이블 ADD FOREIGN KEY (참조필드) REFERENCES 기준테이블 (기준필드);

    • 참조테이블의 참조필드는 기준테이블의 기준필드가 가진 값만을 가질 수 있다! => 참조 무결성)
      ALTER TABLE 참조테이블 ADD CONSTRAINT 제약조건이름 FOREIGN KEY (참조필드) REFERENCES 기준테이블 (기준필드);
  • 외래키 제약조건 삭제
    DROP TABLE 참조테이블 DROP CONSTRAINT 제약조건이름;

TABLE 삭제(DROP)

  • Default format.
    DROP TABLE 테이블; (참조테이블 삭제 후 기준테이블 삭제!)
    DROP TABLE table;

TABLE 삭제(DROP)

  • Default format.
    DESC 테이블;

SEQUENCE 생성(CREATE)

  • Default format.
    CREATE SEQUENCE 시퀀스;
    CREATE SEQUENCE 시퀀스 START WITH 1 INCEREMENT BY 1;
CREATE SEQUENCE sequence [START WITH n]
			 [INCREMENT BY n]
			 [MAXVALUE n | NOMAXVALUE]
			 [MINVALUE n | NOMINVALUE]
			 [CYCLE | NOCYCLE]
			 [CACHE | NOCACHE];
profile
시행착오, 문제해결 그 어디 즈음에.

0개의 댓글