[sql] 집합 데이터 타입 (set)
SQL에서 집합(Set) 데이터 타입은 여러 값을 그룹으로 묶는데 사용되는 데이터 타입입니다. 집합 데이터 타입은 중복된 값을 허용하지 않으며, 값 사이의 순서도 지정되지 않습니다.
집합 데이터 타입의 종류
SQL에서는 다양한 집합(Set) 데이터 타입을 제공합니다. 주요 집합 데이터 타입은 다음과 같습니다.
- SET : 고유한 값의 모음으로, 중복된 값을 허용하지 않습니다.
- MULTISET : 값의 모음으로, 중복된 값을 허용합니다.
- LIST : 값의 시퀀스로, 값들의 순서를 유지합니다.
- BAG : 값의 시퀀스로, 값들의 순서를 유지하지만, 중복된 값을 허용합니다.
- COLLECTION : 일반화된 집합 데이터 타입으로, 세부 정보를 제공합니다.
SET 타입 사용하기
SET 타입은 중복된 값을 허용하지 않고, 순서가 지정되지 않는 값들의 모음입니다. SET 타입을 사용할 때는 다음과 같은 절차를 따릅니다.
- SET 타입 정의하기
CREATE TYPE set_of_int AS SET OF INTEGER;
- SET 타입을 사용하는 테이블 생성하기
CREATE TABLE employees (
emp_id INT,
emp_name VARCHAR(50),
emp_skills set_of_int
);
- SET 타입에 값을 추가하기
INSERT INTO employees (emp_id, emp_name, emp_skills)
VALUES (1, 'John Doe', {1, 2, 3});
- SET 타입에서 값 조회하기
SELECT * FROM employees;
emp_id | emp_name | emp_skills
-------|-----------|-----------
1 | John Doe | {1, 2, 3}
SET 타입은 중복된 값을 허용하지 않으므로, 값의 순서가 바뀌더라도 내부적으로는 같은 값으로 처리됩니다.
결론
집합(Set) 데이터 타입은 SQL에서 여러 값을 그룹으로 묶을 때 사용할 수 있는 유용한 기능입니다. 중복된 값을 허용하지 않고, 값의 순서도 신경쓰지 않아도 되므로, 데이터를 효율적으로 관리할 수 있습니다. SET 타입을 적절히 활용하여 데이터베이스 설계를 할 수 있으면 좋습니다.