본문 바로가기
  • 개발 삽질 블로그
데이터/데이터베이스

[Database] Oracle 문법 복습/ DDL(CREATE, ALTER, DELETE)

by 갹둥 2024. 2. 19.

학교에서 무슨 평가보는데 DBMS 관련 문제도 나와서

시험 대비 복습 겸 오라클 문법을 벼락치기 정리해 봅니다...

 

 

1. Table 생성문 CREATE

CREATE 테이블명 (
    컬럼명  컬럼타입 [UNIQUE] [NULL, NOT NULL] [CHECK] [PRIMARY KEY],
    컬럼명  컬럼타입 [UNIQUE] [NULL, NOT NULL],
    ...
)

위와 같은 구조로 작성하면 된다.

*[] 안에 있는 내용은 생략 가능

 

(1) 테이블명 /  컬럼명

  • 테이블, 컬렴명 최대 크기는 30byte
  • 오라클 예약어는 사용할 수 없음 (예약어 확인)
  • 첫글자는 문자만
  • 최대 255컬럼 사용 가능

 

(2) 컬럼타입

많으니 자주 사용하는 대표적인것만 적어보자면

CHAR(N) : 고정 길이 문자열

VARCHAR(N): 가변 길이 문자열

NUMBER(P, S): 가변 숫자 *P(1~38)는 소숫점 포함 자릿수, S(-84~127) 소수점 자리수

DATE: BC 4712 ~ AD 9999년까지의 날짜, 년도, 월, 일, 시, 분, 초 포함

TIMESTAMP: DATE 타입의 확장, 9자리 밀리초 단위까지 저장 가능

BLOB: 이미지, 동영상 등 구조화되지 않은 이진 데이터 저장

CLOB: 문자형 대용량 데이터 저장

 

(3) UNIQUE

-UNIQUE: 해당 컬럼은 유니크한 값을 가져야함

 

(4) NULL / NOT NULL

-해당 컬럼이 NULL 값이 가능한지 아닌지 여부 결정, Default: NULL

 

(5) CHECK 인라인 제약조건

-컬럼에 범위 또는 값 지정 등 제약조건 추가

CHECK(컬럼 조건)

ex) tmp NUMBER CHECK(tmp > 10)

      tmp2 NUMBER CHECK(tmp2 BETWEEN 100 AND 200)

      tmp3 NUMBER CHECK(tmp3 IN(10, 20, 30))

 

(6) CONSTRAINTS 제약조건

-무결성 보장 용도, PRIMARY KEY, FOREIN KET, UNIQUE NOT NULL 등이 있음

CONSTRAINTS 제약조건명 제약조건(해당 컬럼)

 

(7) PK 지정 방식

두 가지 방법이 있음

  • 컬럼 정의할 때 PRIMARY KEY 명시 
  • PRIMARY KEY 제약 조건으로 추가 -> 2개 이상의 컬럼이 PK로 묶일 때는 이 방법을 사용해야함

(8) FK 지정 방식

CONSTARINT 제약조건명 FOREIGN KEY(컬럼명) 

REFERENCE 참조테이블명(참조 컬럼명)

 

 

테이블 생성 예시

CREATE TABLE DM_TBL (
    dmno Number(8) NOT NULL PRIMARY KEY,
    custid VARCHAR(10),
    maildate DATE,
    contents VARCHAR(13),
    dept CHAR(2),
    grade CHAR(1),
    campagin CHAR(2)
    // CONSTRAINTS pk_constraint PRIMARY KEY(dmno)
    CONSTRAINTS fk_custid FOREIGN KEY(custid) REFRENCE bookinfo_tbl(custid)
);

 

 

 

2. 테이블 수정 ALTER

ALTER TABLE 테이블명 테이블수정내용

 테이블 수정

1) ADD COLUNM: 컬럼 추가

ALTER TABLE ADD COLUMN col1 CHAR(3) [...]

 

2) MODIFY COLUMN: 컬럼 타입 수정

ALTER TABLE MODIFY col1 VARCHAR(3) [...]

 

2) RENAME COLUMN: 컬럼 타입 수정

ALTER TABLE RENAME col1 TO col2

 

4) DROP COLUMN: 컬럼 삭제

ALTER TABLE DROP COLUMN col1 [CASCADE]

 

 

 

3. 테이블 삭제 DROP

DROP TABLE 테이블명 [CASCADE | RESTRICTED]

 

-CASCADE: 참조 관계에 있는 데이터도 연쇄 삭제

-RESTRICTED: 참조하고 있는 데이터가 있다면 삭제 취소