[sql] 맵 데이터 타입 (map)
SQL에서 맵 (Map) 데이터 타입은 키-값 쌍을 저장하는 데 사용됩니다. 맵 데이터 타입은 특정 키 값을 사용하여 관련된 값을 쉽게 저장하고 조회할 수 있습니다.
맵 데이터 타입의 구성
맵 데이터 타입은 중괄호({}
)로 둘러싸인 키-값 쌍의 목록으로 정의됩니다. 각 쌍은 쉼표로 구분되며, 콜론(:
)을 사용하여 키와 값을 구분합니다.
DECLARE @myMap MAP;
SET @myMap = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
맵 데이터 타입의 사용
맵 데이터 타입은 맵 변수에 할당하거나, 컬럼으로 사용할 수 있습니다. 변수에 값을 할당하려면 다음과 같이 사용합니다.
SET @myMap['key1'] = 'new value';
특정 키의 값을 조회하려면 다음과 같이 사용합니다.
SELECT @myMap['key1'] AS Value;
맵 데이터 타입의 중첩
맵 데이터 타입은 중첩될 수도 있습니다. 즉, 키의 값으로 또 다른 맵을 사용할 수 있습니다.
DECLARE @nestedMap MAP;
SET @nestedMap = {'key1': {'nestedKey1': 'nestedValue1', 'nestedKey2': 'nestedValue2'}};
중첩된 맵의 값을 조회하려면 다음과 같이 사용합니다.
SELECT @nestedMap['key1']['nestedKey1'] AS Value;
맵 데이터 타입의 제한 사항
맵 데이터 타입은 일부 SQL DBMS에서만 지원됩니다. 또한, 맵 데이터 타입은 특정 DBMS 버전에서부터 사용 가능한 경우가 있으므로, 사용할 DBMS의 문서를 참조해야 합니다.
참고 문헌
- MS SQL Server 문서 - map data type
- Oracle Database 문서 - map data type
- MySQL 문서 - JSON Data Type
- PostgreSQL 문서 - hstore data type