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

Java 자바 Set – HashSet, TreeSet, LinkedHashSet 정리

소개 자바에서 Set은 중복을 허용하지 않는 데이터 집합을 의미합니다. List와 달리 동일한 요소를 여러 번…

1개월 ago

Java 자바 Hash 해시 제대로 이해하기

해시(Hash)란 무엇인가? 해시(Hash)는 자바 프로그래밍에서 빠르고 효율적인 데이터 저장 및 검색을 위한 핵심적인 개념입니다. 이…

2개월 ago

Java 자바 리스트 (List) 정리

List란 무엇인가? List는 자바 컬렉션 프레임워크의 핵심 인터페이스 중 하나로, 순서가 있는 데이터를 다루는 데…

2개월 ago

Java 자바 LinkedList 동작 원리와 사용법

LinkedList란 무엇인가? LinkedList는 자바에서 유용하게 사용되는 자료구조 중 하나로, 연결 리스트 방식을 이용하여 데이터를 관리하는…

2개월 ago

Java 자바 ArrayList 동작 원리와 사용법

ArrayList란 무엇인가? ArrayList는 자바에서 가장 널리 사용되는 컬렉션 중 하나로, 가변 크기의 배열을 구현한 클래스입니다.…

2개월 ago

Java 자바 제네릭(Generic) 개념과 문법 알아보기

제네릭(Generic)이란? 자바 제네릭은 코드의 재사용성을 높이고 타입 안전성을 보장하는 중요한 개념입니다. 이 블로그 글에서는 자바…

2개월 ago