[SQL] 1_1. DDL(CREATE TABLE/제약조건)

Programming/데이터베이스|2022. 8. 12. 13:23
반응형

안녕하세요. Playground입니다.

앞으로 SQL을 공부하게 되면서 제가 배운 내용을 블로그에 포스팅하려고 합니다.

DDL, DCL, DML, 또 데이터 모델 및 데이터베이스 개념에 대해서는 따로 포스팅하겠습니다.

이번에 포스팅할 내용은 DDL(Data Definition Language, 데이터 정의 언어)

CREATE TABLE
제약 조건(CONSTRAINT)

입니다.

SQL Create Table / Constraint

 


  • CREATE TABLE

말 그대로 테이블을 생성하는 문법입니다.

CREATE TABLE 테이블명

     변수명 데이터유형 제약조건,
     변수명 데이터유형 제약조건,
);

보통 위와 같은 유형으로 테이블을 생성합니다.

참고로 개념만 보면 감이 안 잡히니 아래와 같은 예제 1번을 살펴보겠습니다.

 

예제1)

CREATE TABLE CLIENT


     CLIENT_NO CHAR(5) NOT NULL,
     CLIENT_NAME VARCHAR2(100),
);

CLIENT(고객)테이블을 만들고

안에 컬럼인 CLIENT_NO(고객번호), CLIENT_NAME(고객이름)을 추가했습니다.

 

CLIENT_NO(고객번호)CHAR형 제약조건으로는 NOT NULL,

CLIENT_NAME(고객이름)VARCHAR2형,

 

제약조건은 넣어도 되고 안 넣어도 되는데 NOT NULL이 무엇이냐?

에 대해서는 아래 제약조건쪽에서 설명하겠습니다.

 

또 CREATE TABLE을 만들 때 아래와 같은 조건을 반드시 참고하셔야됩니다.


- 테이블 생성 끝에 ';'로 끝나야 한다.

- 데이터 유형은 반드시 지정.

- 같은 Owner내 다른 테이블과 테이블명 중복 x

- 한 테이블 내에서 컬럼 명이 중복x (위 예제에서 CLIENT_NO, CLIENT_NO와 같이 똑같이 못만듬)

- 테이블명과 컬럼명은 반드시 문자로 시작.

- 0~9, A~Z, a~z, _, $, #문자만 허용

 

반응형

  • 제약 조건(CONSTRAINT)

 

- 제약 조건의 정의

- 사용자가 원하는 조건의 데이터로만 생성하게 해줌
- 데이터의 무결성을 유지하기 위한 방법으로 테이블의 특정 컬럼에 제약을 설정하는 것.

 

- 제약 조건의 종류

타입 설명
기본 키(Primary Key) - 테이블 행을 식별하기 위해 하나의 테이블단 하나의 기본 키만 정의 가능.
- 기본 키 생성 시 DBMS는 자동으로 UNIQUE 인덱스를 생성.
- 기본 키 컬럼에는 NULL 입력 불가.
고유 키(Unique Key) - 테이블에 저장된 행 데이터를 고유하게 식별하기 위해 생성.
- NULL은 입력 가능.
외래 키(Foreign Key) - 다른 테이블의 기본 키외래 키로 지정하는 경우 생성함(참조무결성제약조건).
NOT NULL - NULL값의 입력을 금지, 해당 컬럼에 NULL이 아닌 값이 들어가도록만 정의 가능.
CHECK - 입력할 수 있는 값 종류 및 범위를 제한.

 

* SQL에서 NULL이란?

공백이나 숫자 0과는 전혀 다른 값이며, 조건에 맞는 데이터가 없을 때 공집합과도 다르다.

'아직 정의되지 않은 미지의 값' 이거나 '현재 데이터를 입력하지 못하는 경우'를 의미합니다.

 

* DEFAULT란?

기본값으로 컬럼의 값이 지정되어 있지 않을 경우 자동으로 들어가는 값입니다.

보통 명시된 값을 지정하지 않을 경우 NULL값이 입력되는데, DEFAULT값을 정의 하면 NULL값 대신

정의된 기본값이 자동으로 입력이 됩니다.

 


  • 데이터 유형

데이터베이스의 테이블에 특정 자료를 입력할 때, 그 자료의 유형별로 나누는 기준.

아래는 SQL에서 쓰이는 데이터 유형(타입)입니다.

타입 설명
CHAR(L) - 고정 길이 문자열.
- 고정 길이를 가지고 있으므로 할당된 변수의 값이 L보다 작은 경우 그 차이만큼 공백으로 채워짐.
VARCHAR2(L) - 가변 길이 문자열
- L만큼의 최대 길이를 가진다.
- L값보다 작을 경우 해당 값만큼만 공간을 차지.
NUMBER(L, D) - 정수, 실수
- L값은 전체 자리수, D값은 소수점 자리 수
DATE - 날짜시각정보
- "년월일시분초"를 표현

 

 

반응형

'Programming > 데이터베이스' 카테고리의 다른 글

[SQL] 2_3. DML(DELETE)  (0) 2022.09.13
[SQL] 2_2. DML(UPDATE)  (0) 2022.09.05
[SQL] 2_1. DML(INSERT INTO)  (0) 2022.08.31
[SQL] 1_2. DDL(ALTER TABLE)  (0) 2022.08.30

댓글()