Post

테이블 생성

1. 테이블 생성

데이터베이스에 저장할 새 엔터티와 관계가 있는 경우 CREATE TABLE문을 사용하여 새 데이터베이스 테이블을 만들 수 있다.

1
2
3
4
5
CREATE TABLE IF NOT EXISTS mytable (
    column DataType TableConstraint DEFAULT default_value,
    another_column DataType TableConstraint DEFAULT default_value,
    ...
);

새 테이블의 구조는 일련의 열을 정의하는 테이블 스키마에 의해 정의된다. 각 열에는 이름, 해당 열에 허용되는 데이터 유형, 삽입되는 값에 대한 선택적 테이블 제약 조건 및 선택적 기본값이 있다.

동일한 이름의 테이블이 이미 존재하는 경우 SQL 구현은 일반적으로 오류를 발생시키므로 오류를 억제하고 테이블 생성을 건너뛰려면 IF NOT EXISTS 절을 사용할 수 있다.

2. 테이블 데이터 유형

데이터베이스마다 다른 데이터 유형을 지원하지만 공통 유형은 숫자, 문자열 및 날짜, 부울 또는 이진 데이터와 같은 기타 잡다한 것들을 지원한다. 다음은 실제 코드에서 사용할 수 있는 몇 가지 예이다.

데이터 형식설명
INTEGER, BOOLEAN정수 데이터 유형은 숫자 또는 연령의 수와 같은 전체 정수 값을 저장할 수 있다. 일부 구현에서 부울 값은 0 또는 1의 정수 값으로 표현된다.
FLOAT, DOUBLE, REAL부동소수점 데이터 유형은 측정값 또는 분수값과 같은 보다 정밀한 수치 데이터를 저장할 수 있다. 해당 값에 필요한 부동소수점 정밀도에 따라 다른 유형을 사용할 수 있다.
CHARACTER(num_chars), VARCHAR(num_chars), TEXT텍스트 기반 데이터 유형은 문자열과 텍스트를 모든 종류의 로케일에 저장할 수 있다. 다양한 유형의 차이는 일반적으로 이러한 열로 작업할 때 데이터베이스의 효율성을 떨어뜨리는 것과 같다. CHARACTER 및 VARCHAR(변수 문자) 유형은 모두 저장할 수 있는 최대 문자 수로 지정되므로(길수록 값이 잘릴 수 있음) 큰 테이블을 사용하여 저장하고 쿼리하는 것이 더 효율적일 수 있다.
DATE, DATETIME또한 SQL은 날짜 및 타임스탬프를 저장하여 시계열 및 이벤트 데이터를 추적할 수 있다. 특히 시간대에 걸쳐 데이터를 조작할 때 작업하기가 까다로울 수 있다.
BLOB마지막으로, SQL은 이진 데이터를 데이터베이스의 블록에 저장할 수 있다. 이러한 값은 데이터베이스에 대해 불투명하기 때문에 일반적으로 올바른 메타데이터와 함께 저장하여 재쿼리해야 한다.

3. 테이블 제약 조건

각 열에 추가 제약 조건이 있어 해당 열에 삽입할 수 있는 값을 제한할 수 있다. 이 목록은 포괄적인 목록은 아니지만 유용할 수 있는 몇 가지 일반적인 제약 조건을 보여 준다.

제약 조건설명
PRIMARY KEY이 열의 값은 고유하며 각 값을 사용하여 이 표의 단일 행을 식별할 수 있다.
AUTOINCREMENT정수 값의 경우, 이는 각 행 삽입에 따라 값이 자동으로 채워지고 증가함을 의미한다. 일부 데이터베이스에서 지원되지 않는다.
UNIQUE이 열의 값은 고유해야 하므로 표의 다른 행과 같은 값을 가진 다른 행을 이 열에 삽입할 수 없다. 표의 행에 대한 키가 될 필요가 없다는 점에서 Primary KEY와 다르다.
NOT NULL삽입된 값은 NULL일 수 없다.
CHECK (expression)복잡한 식을 실행하여 삽입된 값이 유효한지 테스트할 수 있다. 예를 들어 값이 양수이거나 특정 크기보다 큰지 확인하거나 특정 접두사 등으로 시작할 수 있다.
FOREIGN KEY열의 각 값이 다른 테이블의 열에 있는 다른 값과 일치하는지 확인하는 일관성 검사이다. 예를 들어, ID별로 모든 직원을 나열하는 테이블과 해당 직원의 급여 정보를 나열하는 테이블이 두 개 있는 경우, FOREIGN KEY는 급여 테이블의 모든 행이 마스터 직원 목록에 있는 유효한 직원과 일치하도록 보장할 수 있다.

[출처 및 참고]

This post is licensed under CC BY 4.0 by the author.