DB/오라클(Oracle)

오라클 테이블 생성(CREATE TABLE, CONSTRAINT, COMMENT)

푸코잇 2023. 11. 9. 22:13

 

오라클 테이블 생성(CREATE TABLE)

 

오라클에서 테이블을 생성하기 위해서는 CREATE TABLE 명령어를 사용한다.

 

CREATE TABLE 테이블명 (
	컬럼명 데이터타입(SIZE) [DEFAULT 기본값] [제약조건]
);

 

CREATE TABLE 명령어의 형태이다.

 

테이블명 / 컬럼명

  • 문자(영문, 한글)로 시작해야한다.
  • 문자, 숫자, 특수문자(_, #, $)만 입력가능하다.

데이터타입(자료형)

  • 데이터를 효율적으로 처리하기 위해 식별하는 분류이다.
 

오라클 데이터타입(Data Type) 정리

데이터타입(Data Type) 이란? 자료형으로도 불리며 프로그래밍 언어에서 실수치, 정수, 불린 등 여러 종류의 데이터를 식별하는 분류이다. 데이터를 효율적으로 처리하기 위해 적절한 데이터타입

foco.tistory.com

DEFAULT

  • 값을 입력하지 않은경우 기본으로 설정되는 값이다.

제약조건(CONSTRAINT)

  • 컬럼에 조건을 부여하여 들어오는 데이터를 검사한다.
제약조건 설명
기본키(PK, Primary Key) 중복이 없고 NULL을 허용하지 않는다.
고유한 값으로 각 행의 구분점으로 사용된다.
고유키(UK, Unique Key) NULL은 허용하지만 중복을 허용하지 않는다.
외부 참조키(FK, Foregin Key) 다른 테이블과 관계를 맺기 위한 다른 테이블의 기본키이다.
NOT NULL NULL을 허용하지 않는다.
체크(CHECK) 컬럼에 입력할 수 있는 값의 범위나 조건을 지정한다.

 

코멘트(Comment)

 

우리가 테이블을 만들어놓고 시간이 지나면 테이블과 칼럼이 무슨 용도였는지 까먹을때가 종종있다.

그래서 코멘트(Comment)를 통해 테이블과 컬럼에 설명을 적을 수 있다

 

테이블 및 컬럼 Comment 설정

-- 테이블 Comment 형식
COMMENT ON TABLE [테이블명] IS [설명];

-- 테이블 Comment 설정 예시
COMMENT ON TABLE TBL_TEST IS '테스트 테이블';

-- 컬럼 Comment 형식
COMMENT ON COLUMN [테이블명].[컬럼명] IS [설명];

-- 컬럼 Comment 설정 예시
COMMENT ON COLUMN TBL_TEST.NAME IS '이름';

 

테이블 및 컬럼 Comment 삭제

-- 테이블 Comment 삭제 형식
COMMENT ON TABLE [테이블명] IS '';

-- 테이블 Comment 삭제 예시
COMMENT ON TABLE TBL_TEST IS '';

-- 컬럼 Comment 삭제 형식
COMMENT ON COLUMN [테이블명].[컬럼명] IS '';

-- 컬럼 Comment 삭제 예시
COMMENT ON COLUMN TBL_TEST.NAME IS '';

 

테이블 생성 예제

 

CREATE TABLE TBL_STUDENT(
	ID NUMBER,
	NAME VARCHAR2(100) NOT NULL,
	GENDER CHAR(1) DEFAULT 'W' CONSTRAINT BAN_CHAR CHECK(GENDER IN('M', 'W')),
	CONSTRAINT STD_PK PRIMARY KEY(ID)
);

COMMENT ON TABLE TBL_STUDENT IS '학생 테이블';
COMMENT ON COLUMN TBL_STUDENT.ID IS '아이디(PK)';
COMMENT ON COLUMN TBL_STUDENT.NAME IS '이름';
COMMENT ON COLUMN TBL_STUDENT.GENDER IS '성별';

 

★ 테이블 생성결과

컬럼
제약조건

 

▶ ID 컬럼

  • STD_PK 이름으로 기본키(PK)가 설정되었다.
  • 기본키(PK) 설정하는 다른 방법 (기본키 이름을 시스템에서 자동으로 부여한다.)
CREATE TABLE TBL_STUDENT (
	ID NUMBER PRIMARY KEY,
    ...
);

기본키 이름을 시스템에서 자동부여

 

NAME 컬럼

  • NOT NULL 제약조건이 있으므로 NULL을 허용하지 않는다.

 

▶ GENDER 컬럼

  • 디폴트 값으로 'W'를 가진다.
  • CHECK 제약조건을 통해 입력한 데이터가 'M', 'W' 중에 있는지 체크한다.