Postgresql_DB_가이드

테이블 기본 사항

구일칠구 2022. 8. 5. 11:11

관계형 데이터베이스의 테이블은 종이에 있는 테이블과 매우 유사합니다. 행과 열로 구성됩니다. 열의 수와 순서는 고정되어 있으며 각 열에는 이름이 있습니다. 행 수는 가변적입니다. 이는 주어진 순간에 저장되는 데이터의 양을 반영합니다. SQL은 테이블의 행 순서에 대해 어떠한 보장도 하지 않습니다. 테이블을 읽을 때 정렬이 명시적으로 요청되지 않는 한 행은 지정되지 않은 순서로 나타납니다. 이에 대해서는 7장 에서 다룹니다 . 또한 SQL은 행에 고유 식별자를 할당하지 않으므로 테이블에 완전히 동일한 여러 행이 있을 수 있습니다. 이것은 SQL의 기초가 되지만 일반적으로 바람직하지 않은 수학적 모델의 결과입니다. 이 장의 뒷부분에서 우리는 이 문제를 처리하는 방법을 볼 것입니다.

각 열에는 데이터 유형이 있습니다. 데이터 형식은 열에 할당할 수 있는 가능한 값 집합을 제한하고 계산에 사용할 수 있도록 열에 저장된 데이터에 의미 체계를 할당합니다. 예를 들어 숫자 형식으로 선언된 열은 임의의 텍스트 문자열을 허용하지 않으며 이러한 열에 저장된 데이터는 수학 계산에 사용할 수 있습니다. 대조적으로, 문자열 유형으로 선언된 열은 거의 모든 종류의 데이터를 허용하지만 문자열 연결과 같은 다른 작업을 사용할 수 있지만 수학 계산에는 적합하지 않습니다.

PostgreSQL 에는 많은 애플리케이션에 맞는 상당한 규모의 내장 데이터 유형 세트가 포함되어 있습니다. 사용자는 자신의 데이터 유형을 정의할 수도 있습니다. 대부분의 내장 데이터 유형은 이름과 의미가 분명하므로 자세한 설명은 8장 으로 미루 십시오. 자주 사용되는 데이터 유형 중 일부는 integer정수, numeric분수 가능성이 있는 숫자, text문자열, date날짜, time시간 값 및 timestamp날짜와 시간을 모두 포함하는 값에 대한 것입니다.

테이블을 생성하려면 적절하게 명명된 CREATE TABLE 명령을 사용합니다. 이 명령에서는 최소한 새 테이블의 이름, 열 이름 및 각 열의 데이터 유형을 지정합니다. 예를 들어:

테이블 생성 my_first_table(
first_column 텍스트,
second_column 정수
);

my_first_table이렇게 하면 두 개의 열로 명명된 테이블이 생성 됩니다. 첫 번째 열의 이름이 지정 first_column되고 데이터 유형이 text; 두 번째 열에는 이름 second_column과 유형이 integer있습니다. 테이블 및 열 이름은 섹션 4.1.1 에 설명된 식별자 구문을 따릅니다 . 유형 이름은 일반적으로 식별자이기도 하지만 몇 가지 예외가 있습니다. 열 목록은 쉼표로 구분되고 괄호로 묶입니다.

물론 이전 예제는 많이 고안되었습니다. 일반적으로 테이블과 열에 저장하는 데이터의 종류를 전달하는 이름을 지정합니다. 좀 더 현실적인 예를 살펴보겠습니다.

CREATE TABLE 제품(
product_no 정수,
이름 텍스트,
가격 숫자
);

(이 numeric유형은 일반적인 화폐 금액과 같이 소수 구성 요소를 저장할 수 있습니다.)

상호 관련된 많은 테이블을 생성할 때 테이블과 열에 대해 일관된 이름 지정 패턴을 선택하는 것이 현명합니다. 예를 들어, 테이블 이름에 대해 단수 또는 복수 명사를 사용할 수 있습니다. 둘 다 어떤 이론가나 다른 사람이 선호하는 것입니다.

테이블에 포함할 수 있는 열 수에는 제한이 있습니다. 열 유형에 따라 250에서 1600 사이입니다. 그러나 이렇게 많은 열 근처에 테이블을 정의하는 것은 매우 이례적이고 종종 의심스러운 디자인입니다.

테이블이 더 이상 필요하지 않으면 DROP TABLE 명령 을 사용하여 제거할 수 있습니다 . 예를 들어:

DROP 테이블 my_first_table;
DROP TABLE 제품;

존재하지 않는 테이블을 삭제하려는 시도는 오류입니다. 그럼에도 불구하고 SQL 스크립트 파일에서는 오류 메시지를 무시하고 테이블을 생성하기 전에 무조건 삭제를 시도하여 테이블의 존재 여부에 관계없이 스크립트가 작동하도록 하는 것이 일반적입니다. (원하는 경우 DROP TABLE IF EXISTS변형을 사용하여 오류 메시지를 피할 수 있지만 이는 표준 SQL이 아닙니다.)

이미 존재하는 테이블을 수정해야 하는 경우 이 장의 뒷부분에 나오는 섹션 5.6 을 참조하십시오.

지금까지 설명한 도구를 사용하여 완전한 기능의 테이블을 만들 수 있습니다. 이 장의 나머지 부분에서는 데이터 무결성, 보안 또는 편의성을 보장하기 위해 테이블 ​​정의에 기능을 추가하는 방법에 대해 설명합니다. 지금 테이블을 데이터로 채우고 싶다면 6장 으로 건너뛰고 나중에 이 장의 나머지 부분을 읽을 수 있습니다.

'Postgresql_DB_가이드' 카테고리의 다른 글

제약  (0) 2022.08.05
기본값  (0) 2022.08.05
제약  (0) 2022.08.05
생성된 열  (0) 2022.08.05
기본값  (0) 2022.08.05