이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

5.2. 비 원자 가치

관계형 모델의 신조 중 하나는 열이라는 것입니다. 테이블의 원자가입니다.Postgres이 제한이 없습니다. 열에는 자체가 포함될 수 있습니다 쿼리 언어에서 액세스 할 수있는 하위 값. 을 위한 예를 들어,베이스 토토 커뮤니티 인 열을 만들 수 있습니다. 유형.

5.2.1. 토토 커뮤니티

Postgres열을 허용합니다 고정 길이 또는 가변 길이로 정의되는 행입니다 다차원 토토 커뮤니티. 모든 기본 유형의 토토 커뮤니티 또는 사용자 정의 유형을 만들 수 있습니다. 그들의 사용을 설명하기 위해, 우리 먼저 기본 유형의 토토 커뮤니티로 테이블을 만듭니다.

테이블 생성 sal_emp (
    이름 텍스트,
    pay_by_quarter 정수 [],
    일정 텍스트 [] []
);

위의 쿼리는 a와 함께 sal_emp라는 테이블을 만듭니다.텍스트String (이름), 1 차원 토토 커뮤니티정수(pay_by_quarter), 이는 분기 별 직원의 급여를 나타냅니다 2 차원 토토 커뮤니티텍스트(일정)는 직원의 주간 일정을 나타냅니다. 이제 우리는 몇 가지를합니다삽입s; 언제 토토 커뮤니티에 추가하면 브레이스 내의 값을 동봉하고 쉼표로 분리하십시오. 당신이 알고 있다면C, 이것은 구문과 다릅니다 구조 초기화.

sal_emp에 삽입하십시오
    값 ( 'Bill',
    '10000, 10000, 10000, 10000',
    ' "meeting", "lunch", ');

sal_emp에 삽입하십시오
    값 ( '캐롤',
    '20000, 25000, 25000, 25000',
    ' "talk", "consult",  "meeting"');
기본적으로Postgres용도 토토 커뮤니티에 대한 "일원 기반"번호 컨벤션, 즉 N 요소의 토토 커뮤니티은 토토 커뮤니티 [1]으로 시작하여 토토 커뮤니티 [n]으로 끝납니다. 이제 sal_emp에서 몇 가지 쿼리를 실행할 수 있습니다. 먼저, 우리는 방법을 보여줍니다 한 번에 토토 커뮤니티의 단일 요소에 액세스하십시오. 이 쿼리가 검색됩니다 2 분기에 급여가 바뀌는 직원의 이름 :
이름을 선택하십시오
    sal_emp에서
    여기서 sal_emp.pay_by_quarter [1] <
    sal_emp.pay_by_quarter [2];

+------+
| 이름 |
+------+
| 캐롤 |
+------+

이 쿼리는 모두의 3 분기 급여를 검색합니다 직원:

sal_emp에서 sal_emp.pay_by_quarter [3]를 선택하십시오.

+---------------+
| pay_by_quarter |
+---------------+
| 10000 |
+---------------+
| 25000 |
+--------------+

우리는 또한 토토 커뮤니티의 임의의 슬라이스에 액세스 할 수 있습니다 (서브 어레이) 각 첨자에 대한 하부 및 상한을 모두 지정합니다. 이 쿼리는 Bill의 일정에 따라 첫 번째 항목을 검색합니다. 주 1 주일.

sal_emp.schedule을 선택하십시오 [1 : 2] [1 : 1]
    sal_emp에서
    여기서 sal_emp.name = 'Bill';

+-------------------+
| 일정 |
+-------------------+
|  "meeting",  "" |
+-------------------+