본문 바로가기
DB/DBMS

DDL과 자료형

by 코딩하는 랄로 2023. 8. 12.
728x90

DDL이란

sql문(query문)은 사용자가 dbms와 소통하기 위한 script언어이다. 그렇기 때문에 sql문을 통해서 테이블을 생성 및 조작하기도 하고 테이블 내에 있는 데이터를 다루기도 한다.

DDL = Data Definition Language

DDL은 이름 그대로 데이터 정의어로서, sql문 중에서도 테이블을 담당하는 언어이다. 가장 기본적으로 테이블 생성, 삭제, 수정, 데이터 삭제에 대한 문법이 있다.

 

각 문법의 사용법은 다음과 같다.(oracle dbms 문법이기 때문에, 다른 dbms와 다른점이 존재하지만 전체적인 틀은 같기 때문에 익혀둔다면 다른 dbms도 손쉽게 익힐 수 있다.)

 

  • CREATE(생성)
    • CREATE TABLE [TABLE명] (column1_name column1_type, column2_name column2_type, ... )
    • 뒤에 칼럼명과 타입을 지정해주는 부분은 생략할 수 있다.
  • DROP(삭제)
    • DROP TABLE [TABLE명] (CASECADE CONSTRAINTS)
    • CASECADE CONSTRAINTS : RDBMS는 테이블 간의 제약관계, 참조 관계 등 다양한 관계를 맺고 있기 때문에 이러한 관계에 있는 테이블을 삭제하기 위해서는 다음의 문구를 넣어주어야 한다. 단일 테이블의 경우는 생략이 가능하다.
  • ALTER(수정)
    • 테이블명 변경 : ALTER TABLE [TABLE명] RENAME TO [NEW_TABLE명]
    • 컬럼 추가 : ALTER TABLE [TABLE명] ADD [NEW_COLUMN_NAME       TYPE(SIZE)]
    • 컬럼 수정 : ALTER TABLE [TABLE명] MODIFY [COLUMN_NAME       NEW_TYPE(SIZE)]
    • 컬럼명 변경 : ALTER TABLE[TABLE명] RENAME COLUMN [COLUMN명] TO [NEW_COLUMN명]
    • 컬럼 삭제 : ALTER TABLE [TABLE명] DROP COLUMN [COLUMN명]
  • TRUNCATE(데이터 삭제)
    • TRUNCATE TABLE [TABLE명]
    • 테이블 안에 모든 데이터를 삭제한다.

 

 

자료형(Type)

테이블을 생성할 때 칼럼도 생성하게 되는데, 이 때에 칼럼의 자료형과 함께 자료형의 크기도 같이 지정해주어야 한다. Oracle DBMS에는 여러 가지 종류의 자료형이 존재하는 데, 이 글에서는 기본적인 자료형 2가지에 대해서 알아보겠다.

 

숫자

COLUMN_NAME   NUMBER(크기, 소수점 자리수)

정수는 소수점 자리수가 0이기 때문에 NUMBER(크기, 0)으로 표기하여야 하지만 뒤에 0은 생략가능하여 NUMBER(크기)로 주로 표기한다.

 

뒤에 크기와 소수점 자리수를 모두 생략한 단순 NUMBER로만 자료형을 지정하여 줄 경우, 22byte(38자리)크기의 정수가 할당된다.

 

문자열

CHAR(크기)             - 고정형
VARCHAR(크기)      - 가변형
VARCHAR2(크기)    - 가변형

위에 3가지 모두 자료형인 문자열일 경우 사용하는 문법이다. 여기서 CHAR와 VARCHAR에 차이점으로는 선언한 크기를 고정하느냐 변화시키느냐의 차이이다.

 

CHAR는 크기를 4로 선언하였을 때, 크기를 2만 사용하여도 나머지 2칸은 공백으로 채우기 때문에 2칸을 사용하지만 크기가 4를 그대로 유지한다. 그렇기 때문에 주민번호, 형식이 정해진 날짜 등 고정된 크기를 가지는 변수에 대해 자료형을 지정해줄 때 주로 사용된다.

 

VARCHAR, VARCHAR2는 가변형이기 때문에 선언된 크기 보다 적게 사용할 경우, 그 크기에 맞춰 크기가 변한다. 그렇기 때문에 넉넉하게 공간을 할당할 수 있다는 장점이 있다. 할당되는 값의 길이가 고정되어 있지 않을 때 사용된다.

 

Oracle에서 VARCHAR2를 사용하기를 권장한다.(자세한건 구글링...)

 

DATE(날짜)

정해진 FORMAT에 맞춰 날짜를 저장하는 자료형이다. 여기서 FORMAT의 경우, 미리 약속된 다양한 형태에 FORMAT이 있기 때문에 필요에 따라 해당 FORMAT을 사용하면 된다.

 

DATE 자료형과 문자열 자료형은 엄연히 다른 자료형이기 때문에 두 자료형을 비교하기 위해서는 문자열 자료형을 DATE 자료형으로 변경하여야 한다.

to_Date('YYYY-MM-DD')

to_Date 함수에 약속된 해당 format에 맞는 문자열을 집어 넣으면 DATE 자료형과 비교가 가능해진다. 위에 예시에 YYYY-MM-DD이외에도 시간까지 나타내는 format 등 다양한 format이 있다.

 

 

 

2023.08.12 - [Programming 공부/DBMS] - DDL과 제약조건1

 

DDL과 제약조건1

제약조건 DDL에서 테이블을 생성할 때 CONSTRAIN(제약조건)올 통해 테이블의 칼럼에 대해서 조건을 부여할 수 있다. 이전 글에서 배운 PK와 FK 또한 이러한 제약조건에 해당한다. TABLE생성 시 제약조

codingralro.tistory.com

 

728x90

'DB > DBMS' 카테고리의 다른 글

제약조건과 무결성  (0) 2023.08.12
DDL과 제약조건2  (0) 2023.08.12
DDL과 제약조건1  (0) 2023.08.12
TABLE과 기본 개념  (0) 2023.08.10
DBMS란  (0) 2023.08.10