이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 8.15. 스포츠 토토 결과버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

8장. 무지개 토토

참고:이것은 무지개 토토 동작에 관한 장이 되어야 합니다. 자원봉사자? - 토마스 1998-01-12

포스트그레다음의 속성을 허용합니다. 가변 길이 다차원 배열로 정의되는 클래스입니다. 모든 내장 유형 또는 사용자 정의 유형의 배열을 생성할 수 있습니다. 받는 사람 사용법을 설명하기 위해 다음 클래스를 만듭니다.

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

위 쿼리는 이름이 지정된 클래스를 생성합니다.sal_emp텍스트문자열 (이름),의 1차원 무지개 토토int4(pay_by_quarter), 직원의 급여를 나타냅니다. 분기 및 2차원 무지개 토토텍스트(일정), 이는 직원의 주간 일정. 이제 좀 해보겠습니다삽입s; 무지개 토토에 추가할 때 값을 무지개 토토 안에 포함합니다. 중괄호로 묶고 쉼표로 구분하세요. 알고 계시다면C, 이는 초기화 구문과 다르지 않습니다. 구조.

sal_emp에 삽입
    VALUES('빌',
    '10000, 10000, 10000, 10000',
    '"회의", "점심", ');

sal_emp에 삽입
    VALUES('캐롤',
    '20000, 25000, 25000, 25000',
    '"대화", "상담", "회의"');
이제 sal_emp에 대해 몇 가지 쿼리를 실행할 수 있습니다. 먼저 방법을 보여드리겠습니다. 한 번에 배열의 단일 요소에 액세스합니다. 이 쿼리 급여가 변경된 직원의 이름을 검색합니다. 2분기:
sal_emp에서 이름 선택 WHERE pay_by_quarter[1] < pay_by_quarter[2];

 이름
-------
 캐롤
(1행)
포스트그레스다음을 사용합니다 배열에 대한 "1 기반" 번호 매기기 규칙 --- 즉, 배열 n개 요소 중 배열[1]로 시작하고 배열[n]으로 끝납니다.

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

sal_emp에서 pay_by_quarter[3] 선택;

 분기별로 지불
----------------
          10000
          25000
(2행)

우리는 또한 무지개 토토의 임의의 조각 또는 하위 무지개 토토에 접근할 수 있습니다. 무지개 토토 슬라이스는 "하위 첨자 : 상위"로 표시됩니다. 하나 이상의 무지개 토토 차원에 대한 아래 첨자'입니다. 이 쿼리는 검색합니다 Bill의 첫 이틀 일정의 첫 번째 항목 주:

일정 선택[1:2][1:1] FROM sal_emp WHERE 이름 = 'Bill';

      일정
-------
 "회의",""
우리는 또한 글을 쓸 수도 있었습니다
일정 선택[1:2][1] FROM sal_emp WHERE 이름 = 'Bill';
같은 결과입니다.

무지개 토토 값은 완전히 대체될 수 있습니다:

UPDATE sal_emp SET pay_by_quarter = '25000,25000,27000,27000'
    WHERE 이름 = '캐롤';
또는 단일 항목에서 업데이트됨:
UPDATE sal_emp SET pay_by_quarter[4] = 15000
    WHERE 이름 = '빌';
또는 슬라이스에서 업데이트됨:
UPDATE sal_emp SET pay_by_quarter[1:2] = '27000,27000'
    WHERE 이름 = '캐롤';

현재는 다음을 제외하고는 배열 값의 크기를 조정할 수 없습니다 완전한 교체; 예를 들어, 우리는 4를 변경할 수 없습니다. 요소 배열 값을 단일 요소를 사용하여 5개 요소 값으로 배열[5]에 할당합니다.

CREATE TABLE 구문을 사용하면 고정 길이 무지개 토토을 사용할 수 있습니다. 정의됨:

테이블 tictactoe 생성(
    사각형 int4[3][3]
);
그러나 현재 구현은 배열 크기 제한 --- 동작은 배열의 경우와 동일합니다. 길이가 지정되지 않았습니다.