Tom's Note
반응형

데이터를 넣고 수정하고 삭제하는, 즉 데이터를 담고 있는 객체가 테이블이다.

테이블은 DBMS상에서 가장 기본적인 객체로 행과 열로 구성된 2차원 형태의 객체로 사용한다. EX) 엑셀 표

테이블은 데이터가 저장되는 가장 기본이되는 단위이다.

 

1. 테이블 생성

※ [ ]은 생략 부분이므로 써도 되고 안써도 된다. 쓰지 않을 때는 디폴트 값이 적용된다.
※ 아래의 빨간글자를 테이블의 용도에 맞게 임의로 지정해주면 된다.
 참고로 실제로 만들 때 [ ]는 쓰지 않는다.

 

CREATE TABLE [스키마.]테이블명(

       컬럼명      데이터타입  [NULL, NOT NULL]      

       컬럼명      데이터타입  --- ⓐ [NULL, NOT NULL] --- ⓑ

       컬럼명      데이터타입  [DEFAULT   ]  --- ⓒ

...

)[TABLESPACE 테이블스페이스명];

 

▼ 테이블을 생성할 때, 데이터 타입제약조건을 정의하고 생성하기에 아래와 같은 기능을 파악해보자.

 

문자 데이터 타입 ---

      오라클에서 제공하는 문자형은 다음과 같다.

데이터 타입 설명
CHAR( 크기[ BYTE | CHAR ]) 고정길이 문자, 최대 2Kbyte, 디폴트 1byte
VARCHAR2( 크기[ BYTE | CHAR ]) 가변길이 문자, 최대 4Kbyte, 디폴트 1byte
NCHAR(크기) 고정길이 유니코드 문자, 최대 2Kbyte, 디폴트 1byte
NVARCHAR2(크기) 가변길이 문자, 최대 4Kbyte, 디폴트 1byte
LONG 최대 2GB 크기의 가변길이 문자형
  • 고정길이 CHAR(5) 선언 후 5개 중 3개의 데이터를 입력한다고 하자 그럼 2개의 빈 공간이 남는다. 빈 공간을 쓰지고 않고 가지고 있어 저장공간의 비효율성을 띈다. 주민등록번호처럼 한국에서 통일된 길이가 아니라면 쓰지 않는 것을 추천한다.
  • 반대로 가변길이는 5개 중 3개의 데이터를 써도 남은 2개의 빈 공간은 사라지게 된다. 저장공간 효율성이 올라간다. 
  • LONG은 너무 크기 때문에 잘 사용되지 않는다. 

 

 

제약조건 ---

     오라클에서 제공하는 제약조건은 다음과 같다.

 

NOT NULL --- 컬럼을 정의할 때, 반드시 값이 있어야 한다. 

    컬럼명 데이터타입 NOT NULL 

 

② UNIQUE --- 컬럼에 값이 유일해야 한다. 즉 중복 값을 허용하지 않는다.

    컬럼명 데이터타입 UNIQUE

    (또는)

    CONSTRAINTS 제약조건명 UNIQUE(컬럼명, ...)

 

③ PRIMARY

    컬럼명 데이터타입 PRIMARY KEY제약조건명 UNIQUE(컬럼명, ...)

    (또는)

    CONSTRAINTS 제약조건명 PRIMARY KEY(컬럼명, ...)

 

④ FOREIGN --- 반드시 참조 테이블이 먼저 생성 되어야 하며, 참조키가 참조 테이블의 기본키로 만들어야한다.

    CONSTRAINTS 외래키명 FOREIGN KEY(컬럼명, ...) REFERENCES 참조 테이블(참조 테이블 컬럼명,...)

 

⑤ CHECK

    CONSTRAINTS 체크명 CHECK(컬럼명 BETWEEN 최소값 AND 최대값) --- 사이값의 조건을 정의 할 수 있다.

    CONSTRAINTS 체크명 CHECK(컬럼명 IN( '값1', '값2')) --- 두 값만 정의 할 수 있다.  

 

DEFAULT ---

     DEFAULT 값은 컬럼을 생성한 다음 값은 넣지 않고 값을 생성하면 DEFAULT의 값이 자동으로 채워진다.

    컬럼명 데이터타입 DEFAULT 생성초기,

 

2. 테이블 삭제

DROP TABLE [스키마.]테이블명 [CASCADE CONSTRAINTS];

 

3. 테이블 변경

① 컬럼명 변경:

     ALTER TABLE [스키마.]테이블명 RENAME COLUMN 변경전컬럼명 TO 변경후컬럼명;

 

② 컬럼 타입 변경:

     ALTER TABLE [스키마.]테이블명 MODIFY 컬럼명 데이터타입;

 

③ 컬럼 추가:

     ALTER TABLE [스키마.]테이블명 ADD 컬럼명 데이터타입;

 

④ 컬럼 삭제:

     ALTER TABLE [스키마.]테이블명 DROP COLUMN 컬럼명;

 

⑤ 제약조건 추가:

     ALTER TABLE [스키마.]테이블명 ADD CONSTRAINTS 제약조건명 PRIMARY KEY(컬럼명);

 

⑥ 제약조건 삭제:

     ALTER TABLE [스키마.]테이블명 DROP CONSTRAINTS 제약조건명;

 

4. 테이블 복사

CREATE TABLE [스키마.]테이블명 AS SELECT 컬럼1, 컬럼2, ... FROM 복사할 테이블명;

반응형

'프로그래밍 언어 > SQL' 카테고리의 다른 글

2.3 뷰(VIEW)  (0) 2019.09.26
1. SQL이란?  (0) 2019.09.25
2.1 데이터베이스 객체  (0) 2019.09.25
profile

Tom's Note

@크크크크

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!