Categories: DataBase

SQL 데이터 타입 (자료형) 종류 및 설명

데이터 타입이란?

SQL(Structured Query Language) 데이터 타입은 데이터베이스 테이블의 각 열(Column)이나 변수가 어떤 종류의 데이터를 저장할 수 있는지를 정의하는 것입니다. 각각의 데이터 타입은 특정한 종류의 데이터를 나타내고, 저장 및 처리하는 데 필요한 규칙을 제공합니다.

다양한 데이터 타입이 있으며, 주로 다음과 같은 카테고리로 나눌 수 있습니다.

  1. 숫자형 데이터 타입: 정수형(INT, BIGINT 등) 또는 소수형(FLOAT, DECIMAL 등) 숫자를 저장하는 데 사용됩니다.
  2. 문자열 데이터 타입: 텍스트 데이터를 저장하는 데 사용됩니다. 가변 길이 문자열(VARCHAR)이나 고정 길이 문자열(CHAR) 등이 있습니다.
  3. 날짜 및 시간 데이터 타입: 날짜(DATE), 시간(TIME), 날짜 및 시간(DATETIME) 등의 데이터를 저장하는 데 사용됩니다.
  4. 불리언 데이터 타입: 참 또는 거짓 값을 저장하는 데 사용됩니다.
  5. 이진 데이터 타입: 이진 데이터 또는 바이너리 데이터(BLOB)를 저장하는 데 사용됩니다.

각 데이터 타입은 특정 데이터베이스 관리 시스템(DBMS)에 종속적일 수 있으며, 특정 상황에 따라 선택되어야 합니다. 데이터 타입을 올바르게 선택하는 것은 데이터의 정확성과 성능에 영향을 미칠 수 있습니다.

데이터 타입 종류

정수형 데이터 타입

정수형 데이터 타입은 정수를 저장하기 위한 데이터 타입으로, 일반적으로 다양한 범위의 정수 값을 나타냅니다. 아래는 주요한 정수형 데이터 타입과 각각의 특징에 대한 설명과 예제입니다.

데이터 타입설명범위 (부호 있는 정수)예제
INT일반적인 정수형 데이터 타입-2,147,483,648 ~ 2,147,483,647CREATE TABLE 테이블명 (컬럼명 INT);
BIGINT큰 정수형 데이터 타입-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807CREATE TABLE 테이블명 (컬럼명 BIGINT);
SMALLINT작은 정수형 데이터 타입-32,768 ~ 32,767CREATE TABLE 테이블명 (컬럼명 SMALLINT);
TINYINT아주 작은 정수형 데이터 타입0 ~ 255CREATE TABLE 테이블명 (컬럼명 TINYINT);
  • INT (Integer): 일반적인 정수형 데이터 타입으로, 많은 경우에 사용됩니다. 부호 있는 32비트 정수를 표현하며, 대부분의 일반적인 정수 범위를 커버합니다.
  • BIGINT: 더 큰 범위의 정수를 저장할 수 있는 데이터 타입으로, 64비트 부호 있는 정수를 사용합니다. 대용량 데이터 및 범용적으로 큰 정수 값이 필요한 경우에 사용됩니다.
  • SMALLINT: 상대적으로 작은 범위의 정수를 저장할 때 사용되며, 16비트 부호 있는 정수를 표현합니다.
  • TINYINT: 아주 작은 범위의 양수 정수를 표현하며, 8비트 부호 없는 정수를 사용합니다. 주로 작은 정수 값이 필요한 경우에 활용됩니다.

각각의 데이터 타입은 저장할 수 있는 값의 범위가 다르므로, 프로젝트의 요구 사항 및 데이터의 성격에 맞게 적절한 정수형 데이터 타입을 선택하는 것이 중요합니다.

소수형 데이터 타입

소수형 데이터 타입은 부동 소수점 숫자를 저장하는 데 사용되며, 소수점 이하의 값을 포함할 수 있습니다. 아래는 주요한 소수형 데이터 타입과 각각의 특징에 대한 설명과 예제입니다.

데이터 타입설명예제
FLOAT부동 소수점 숫자를 저장하는 일반적인 데이터 타입CREATE TABLE 테이블명 (컬럼명 FLOAT);
DOUBLE더 큰 범위의 부동 소수점 숫자를 저장하는 타입CREATE TABLE 테이블명 (컬럼명 DOUBLE);
DECIMAL(p, s)고정 소수점 숫자를 저장하는 타입CREATE TABLE 테이블명 (컬럼명 DECIMAL(5, 2));
  • FLOAT: 부동 소수점 숫자를 저장하는 데 사용되는 일반적인 데이터 타입입니다. 이는 대략적인 값의 범위를 나타냅니다. FLOAT 데이터 타입은 정밀도가 낮을 수 있으며, 정확한 소수점 이하의 값을 요구하지 않을 때 사용됩니다.
  • DOUBLE: 더 큰 범위의 부동 소수점 숫자를 저장하는 데 사용되는 데이터 타입입니다. FLOAT보다 높은 정밀도를 가지고 있어서, 정확한 소수점 이하의 값이 필요한 경우에 주로 선택됩니다.
  • DECIMAL(p, s): 고정 소수점 숫자를 저장하는 데 사용되는 타입으로, 정확한 소수점 이하의 값을 필요로 할 때 주로 사용됩니다. p는 전체 자릿수를, s는 소수점 이하의 자릿수를 나타냅니다.

이러한 소수형 데이터 타입은 실수 값을 저장할 때 사용되며, 프로젝트의 요구 사항과 정확도에 따라 적절한 데이터 타입을 선택해야 합니다.

문자열 데이터 타입

문자열 데이터 타입은 텍스트 데이터를 저장하는 데 사용되며, 문자의 시퀀스를 나타냅니다. 아래는 주요한 문자열 데이터 타입과 각각의 특징에 대한 설명과 예제입니다.

데이터 타입설명예제
VARCHAR(n)가변 길이 문자열을 저장하는 타입CREATE TABLE 테이블명 (컬럼명 VARCHAR(50));
CHAR(n)고정 길이 문자열을 저장하는 타입CREATE TABLE 테이블명 (컬럼명 CHAR(10));
TEXT긴 텍스트 데이터를 저장하는 타입CREATE TABLE 테이블명 (컬럼명 TEXT);
  • VARCHAR(n): 가변 길이 문자열을 저장하는 데 사용되는 타입입니다. 최대 길이 n을 정의하며, 실제 저장되는 문자열의 길이에 따라 사용하는 공간이 동적으로 조정됩니다. 예를 들어, VARCHAR(50)은 최대 50글자까지 저장 가능합니다.
  • CHAR(n): 고정 길이 문자열을 저장하는 데 사용되는 타입입니다. 최대 길이 n을 정의하며, 실제 문자열이 주어진 길이보다 짧으면 나머지 공간은 공백으로 채워집니다. 예를 들어, CHAR(10)은 항상 10글자를 저장합니다.
  • TEXT: 긴 텍스트 데이터를 저장하는 데 사용되는 타입으로, 가변 길이이며 일반적으로 매우 큰 양의 텍스트를 저장할 수 있습니다. 길이 제한이 없다는 특징이 있습니다.

문자열 데이터 타입은 주로 텍스트 정보를 저장하는 데 사용되며, 저장하려는 데이터의 성격에 따라 적절한 데이터 타입을 선택해야 합니다.

날짜 및 시간 데이터 타입

날짜 및 시간 데이터 타입은 날짜와 시간 정보를 저장하는 데 사용되며, 다양한 형식과 정밀도를 제공합니다. 아래는 주요한 날짜 및 시간 데이터 타입과 각각의 특징에 대한 설명과 예제입니다.

데이터 타입설명예제
DATE날짜 정보를 저장하는 타입CREATE TABLE 테이블명 (컬럼명 DATE);
TIME시간 정보를 저장하는 타입CREATE TABLE 테이블명 (컬럼명 TIME);
DATETIME날짜와 시간 정보를 함께 저장하는 타입CREATE TABLE 테이블명 (컬럼명 DATETIME);
  • DATE: 날짜 정보를 저장하는 데 사용되는 타입으로, 연, 월, 일을 나타냅니다. 예를 들어, ‘2024-01-23’과 같은 형식으로 저장됩니다.
  • TIME: 시간 정보를 저장하는 데 사용되는 타입으로, 시간, 분, 초를 나타냅니다. 예를 들어, ’14:30:00’과 같은 형식으로 저장됩니다.
  • DATETIME: 날짜와 시간 정보를 동시에 저장하는 데 사용되는 타입으로, DATE와 TIME의 조합입니다. ‘2024-01-23 14:30:00’과 같은 형식으로 저장됩니다.

날짜 및 시간 데이터 타입은 주로 시간 기반 이벤트를 기록하거나 특정 시간대의 작업을 추적할 때 사용됩니다. 프로젝트의 요구 사항 및 정확한 시간 정보의 필요성에 따라 적절한 데이터 타입을 선택해야 합니다.

불리언 데이터 타입

불리언 데이터 타입은 참(True) 또는 거짓(False)의 두 가지 값 중 하나를 저장하는 데 사용됩니다. 아래는 주요한 불리언 데이터 타입에 대한 설명과 예제입니다.

데이터 타입설명예제
BOOLEAN참 또는 거짓 값을 저장하는 타입CREATE TABLE 테이블명 (컬럼명 BOOLEAN);
  • BOOLEAN: 불리언 데이터 타입은 참 또는 거짓을 저장하는 데 사용되며, 간단한 조건을 표현할 때 유용합니다. 예를 들어, 주문이 완료되었는지 여부, 상품의 재고 여부 등을 나타낼 때 활용됩니다.

불리언 데이터 타입은 간단하고 명확한 참/거짓 상태를 저장하므로 주로 조건을 표현하거나 논리적인 판단이 필요한 경우에 사용됩니다.

이진 데이터 타입

이진 데이터 타입은 이진(Binary) 데이터 또는 바이너리 데이터를 저장하는 데 사용되며, 주로 이미지, 오디오, 비디오, 문서 파일 등과 같은 이진 형식의 데이터를 다룰 때 활용됩니다. 아래는 주요한 이진 데이터 타입에 대한 설명과 예제입니다.

데이터 타입설명예제
BLOB이진 데이터를 저장하는 가장 일반적인 타입CREATE TABLE 테이블명 (컬럼명 BLOB);
BINARY(n)고정 길이의 이진 데이터를 저장하는 타입CREATE TABLE 테이블명 (컬럼명 BINARY(100));
VARBINARY(n)가변 길이의 이진 데이터를 저장하는 타입CREATE TABLE 테이블명 (컬럼명 VARBINARY(255));
  • BLOB(Binary Large Object): 가장 일반적인 이진 데이터 타입으로, 대용량의 이진 데이터를 저장하는 데 사용됩니다. 이미지, 오디오, 비디오와 같은 멀티미디어 데이터를 저장할 때 주로 활용됩니다.
  • BINARY(n): 고정 길이의 이진 데이터를 저장하는 데 사용되는 타입입니다. 최대 길이 n을 지정하며, 주로 일정한 크기의 이진 데이터를 저장할 때 사용됩니다.
  • VARBINARY(n): 가변 길이의 이진 데이터를 저장하는 데 사용되는 타입입니다. 최대 길이 n을 지정하며, 필요에 따라 다양한 크기의 이진 데이터를 저장할 때 사용됩니다.

이진 데이터 타입은 주로 파일이나 멀티미디어 데이터와 같이 이진 형식으로 저장되는 데이터를 다룰 때 사용됩니다. 데이터의 크기 및 형식에 따라 적절한 이진 데이터 타입을 선택해야 합니다.

결론

SQL 데이터 타입은 숫자, 문자열, 날짜/시간, 불리언, 이진 데이터 등을 저장하는 데 사용됩니다. 각각의 데이터 타입은 특정 유형의 데이터를 처리하고 정의합니다. 프로젝트에 따라 올바른 데이터 타입을 선택하는 것이 중요하며, 데이터베이스 시스템에 따라 일부 차이가 있을 수 있습니다.

suover

Recent Posts

그림으로 쉽게 배우는 자료구조와 알고리즘: 미션3 | 문서 압축 (허프만 코딩)

들어가며 소프트웨어가 처리해야 하는 데이터 양이 늘어날수록, 단순히 기능 구현만으로는 성능과 효율을 보장하기 어렵습니다. 특히…

1주 ago

만들면서 쉽게 배우는 컴퓨터 구조: 미션3 | STOREB 명령어와 A·B 비교 구현

들어가며 소프트웨어를 구현할 때 성능 최적화나 안정성을 높이려면, 단순히 고수준 코드만 신경 쓰는 것을 넘어…

1주 ago

그림으로 쉽게 배우는 자료구조와 알고리즘: 미션2 | CPU 스케줄링

들어가며 소프트웨어가 복잡해질수록, 단순히 알고리즘의 시간복잡도만으로는 모든 문제를 해결할 수 없습니다. 특히 운영체제 수준에서는 다중…

2주 ago

만들면서 쉽게 배우는 컴퓨터 구조: 미션2 | 터널 연결부터 32바이트 RAM까지

들어가며 복잡한 소프트웨어가 원활히 동작하려면 단순히 코드만 잘 짜는 것으로는 부족합니다. 트랜잭션 처리나 대규모 데이터…

2주 ago

그림으로 쉽게 배우는 자료구조와 알고리즘: 미션1 | 메모리 검색

들어가며 소프트웨어를 개발할 때 메모리 관리 방식은 프로그램의 안정성과 성능을 좌우하는 핵심 요소입니다. 특히 자바스크립트,…

3주 ago

만들면서 쉽게 배우는 컴퓨터 구조: 미션1 | 진리표부터 회로 구현까지

들어가며 소프트웨어 개발자는 코드가 어떻게 실행되는지 정확히 이해해야 할 필요가 있습니다. 우리가 작성한 프로그램은 결국…

3주 ago