PostgreSQL의 Varchar 대 텍스트
PostgreSQL에는 정수, 날짜, 문자열 등과 같은 다양한 종류의 데이터를 저장하기 위한 여러 데이터 유형이 있습니다. 그러나 문자열
데이터 유형에는 CHAR
, VARCHAR
및 TEXT
의 세 가지 주요 유형이 있습니다.
이 기사에서는 VARCHAR
및 TEXT
에 대해 자세히 설명하고 차이점을 비교합니다.
PostgreSQL의 TEXT
데이터 유형
데이터 유형은 저장할 수 있는 텍스트
의 양에 제한이 없습니다. 따라서 이 데이터 유형을 사용하여 모든 종류의 텍스트
를 필드에 삽입할 수 있으며 오류가 표시되지 않습니다.
단순 키워드 TEXT
는 이 데이터 유형의 필드를 선언하기 위해 키워드 앞의 변수 이름과 함께 사용됩니다. 아래에서 몇 가지 예를 들어 자세히 설명합니다.
CREATE TABLE text_example (
id int PRIMARY KEY,
data TEXT NOT NULL
);
이 테이블에는 데이터를 저장하기 위한 두 가지 데이터 유형으로 INT
와 TEXT
가 있습니다. 이제 데이터를 삽입해 보겠습니다.
INSERT INTO text_example
VALUES
(1,' This text has no size limit because stored in TEXT datatype');
SELECT * FROM text_example;
다음 출력은 변수에 성공적으로 저장되었음을 보여줍니다. 이것이 대부분의 경우 TEXT
데이터 유형이 사용되는 이유입니다.
PostgreSQL의 VARCHAR
데이터 유형
이 데이터 유형에는 두 가지 변형이 있습니다. VARCHAR
, 문자 가변(n
) 및 VARCHAR(n)
이라고도 합니다. VARCHAR
는 기본적으로 길이 지정자가 정의되지 않은 경우 다른 이름을 가진 TEXT
데이터 유형처럼 작동합니다.
제한이 없기 때문에 무제한 텍스트
를 저장할 수 있습니다. 이전 예제를 사용하고 TEXT
데이터 유형을 VARCHAR
로 변경하여 쉽게 시연할 수 있습니다.
CREATE TABLE varchar_example (
id int PRIMARY KEY,
data VARCHAR NOT NULL
);
이 테이블에는 데이터를 저장하는 두 가지 데이터 유형으로 INT
와 VARCHAR
가 있습니다. 이제 데이터를 삽입해 보겠습니다.
INSERT INTO varchar_example
VALUES
(1,' This text has no size limit because stored in VARCHAR datatype');
SELECT * FROM varchar_example;
다음 출력은 변수에 성공적으로 저장되었음을 보여줍니다.
보시다시피 TEXT
데이터 유형처럼 데이터가 성공적으로 삽입되었습니다.
이제 VARCHAR(n)
으로 이동하면 VARCHAR(n)
데이터 유형에 삽입되는 문자 수를 제한할 수 있으므로 상황이 약간 흥미로워집니다. VARCHAR(n)
데이터 유형에 n
자를 초과하여 저장하려고 하면 오류가 표시됩니다.
그러나 삽입된(제한을 초과하는) 문자가 모두 공백이면 오류가 없으며 해당 공백은 문자열
로 잘립니다. 다음과 같이 예제 코드와 해당 출력을 통해 이를 증명할 수 있습니다.
CREATE TABLE Nvarchar_example (
id int PRIMARY KEY,
data VARCHAR(15) NOT NULL
);
이 테이블에는 데이터를 저장하는 두 가지 데이터 유형으로 INT
와 VARCHAR(n)
이 있습니다. 이제 데이터를 삽입해 보겠습니다.
INSERT INTO Nvarchar_example VALUES (1, 'Size is fifteen');
SELECT * FROM Nvarchar_example;
다음 출력은 변수에 성공적으로 저장되었음을 보여줍니다.
보시다시피 이 경우 지정된 한도를 초과하지 않았습니다. 따라서 문자열
을 성공적으로 저장했습니다. 그러나 아래 예는 그렇지 않은 경우 어떤 일이 발생하는지 보여줍니다.
CREATE TABLE Nvarchar_example2 (
id int PRIMARY KEY,
data VARCHAR(10) NOT NULL
);
이제 데이터를 삽입해 보겠습니다.
INSERT INTO Nvarchar_example2 VALUES (1, 'Size is fifteen');
보시다시피 출력에는 데이터 유형의 크기와 관련된 오류가 표시됩니다.
VARCHAR
를 사용하는 한 가지 중요한 이유는 데이터 유형의 문자 수를 제한할 수 있기 때문입니다. 문자열
삽입에 제약을 두어야 할 때 유용합니다.
PostgreSQL은 길이 지정자의 정의된 제한보다 더 많은 문자를 추가하지 못하도록 하는 오류를 발생시킵니다.
PostgreSQL의 VARCHAR
대 TEXT
이제 위의 특성을 설명한 후 이러한 데이터 유형을 언제 사용하고 언제 사용하지 않는지 보다 명확하게 판단할 수 있을 것이라고 생각합니다. 마지막으로 이해를 돕기 위해 몇 가지 일반적인 시나리오에 대해 설명합니다.
다른 데이터베이스에서는 이러한 데이터 유형 중 하나를 사용할 때 성능에 상당한 영향이 있지만 PostgreSQL에서는 두 유형 간에 눈에 띄는 성능 차이가 없습니다.
삽입하기 전에 길이 지정자 제한을 확인하기 위해 일부 증가된 저장 공간 또는 약간의 추가 CPU
주기가 있을 수 있지만 이는 무시할 수 있습니다.
두 가지 데이터 유형과 관련된 실질적인 성능 이점이 없으므로 기본적이고 필수적인 점은 삽입되는 문자의 크기를 제한할지 여부입니다.
VARCHAR(n)
은 유효성 검사를 제공하며 PostgreSQL은 정의된 제한을 초과하면 오류 메시지를 표시합니다.
그 외에는 동일한 기능을 제공하는 TEXT
보다 일반 VARCHAR
를 사용하지 않는 것이 좋습니다. TEXT
는 기억하기 쉽고 무제한 문자열 길이와 관련된 다른 이름을 갖습니다.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub