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

5 장 고급토토 결과 SQL기능

사용의 기본 사항을 다루었습니다토토 결과 SQLTO 데이터에 액세스하면 이제의 기능에 대해 논의 할 것입니다.토토 결과그것을 구별합니다 기존 데이터 관리자로부터. 이러한 기능에는 포함됩니다 상속, 시간 여행 및 비 원자 데이터 값 (배열- 및 설정 값 속성). 이 섹션의 예도 가능합니다 에서 발견Advance.sql튜토리얼에서 예배 규칙서. (참조PostgreSQL : 문서 : 7.1 : 토토 핫 언어방법 그것을 사용하려면.)

5.1. 계승

두 테이블을 만들어 봅시다. 수도 테이블에는 상태가 포함되어 있습니다 도시인 수도. 당연히 수도 테이블 도시에서 물려 받아야합니다.

테이블 도시 생성 (
    이름 텍스트,
    인구, 진짜,
    고도 int- (FT)
);

테이블 캐피탈 생성 (
    상태 문자 (2)
) 상속 (도시);
이 경우 수도의 행상속모든 열 (이름, 모집단 및 고도) 부모, 도시로부터. 열 이름의 유형은입니다.텍스트, 네이티브토토 결과가변 길이 ASCII를 입력하십시오 문자열. 열 모집단의 유형은입니다.Real, 단일 정밀 부동 소수점 유형 숫자. 주 대문자에는 추가 열, 상태가 있습니다 그들의 상태. 안에토토 결과, 테이블 0 이상의 다른 테이블에서 상속 될 수 있으며 쿼리는 테이블의 모든 행 또는 테이블의 모든 행을 참조하십시오. 모든 후손.

참고 :상속 계층은 지시됩니다 acyclic 그래프.

예를 들어 다음 쿼리는 모든 이름을 찾습니다. 주 수도를 포함한 도시는 An에 있습니다 500 피트 이상의 고도 :

이름, 고도를 선택하십시오
    도시에서
    고도 500;
반환 :
+----------+----------+
| 이름 | 고도 |
+----------+----------+
| 라스 베이거스 | 2174 |
+----------+----------+
| 마리포사 | 1953 |
+----------+----------+
| 매디슨 | 845 |
+----------+----------+

반면에 다음 쿼리는 모든 도시를 찾습니다. 주 수도가 아니며 고도에 위치합니다. 500 피트 이상 :

이름, 고도를 선택하십시오
    도시에서만
    여기서 고도 500;

+----------+----------+
| 이름 | 고도 |
+----------+----------+
| 라스 베이거스 | 2174 |
+----------+----------+
| 마리포사 | 1953 |
+----------+----------+

여기"만"도시 전 쿼리는 도시에서만 실행되어야 함을 나타냅니다. 상속의 도시 아래 표가 아닌 표 계층. 우리가 이미 논의한 많은 명령 -select, 업데이트and삭제- this 지원"만"표기법.

감가 상각 :이전 버전의토토 결과, 기본값은 얻지 못했습니다 자식 테이블에 대한 액세스. 이것은 오류가 발생하기 쉬운 것으로 밝혀졌습니다 또한 SQL99를 위반하고 있습니다. 오래된 구문 아래 "*"를 테이블 이름으로 추가하는 서브 테이블을 가져옵니다. 을 위한 예

선택 *에서 도시에서 *;
여전히 하위 테이블 스캔을 명시 적으로 지정할 수 있습니다 "*", 자녀를 스캔하지 않음을 명시 적으로 지정합니다. 글로 테이블"만". 하지만 시작 버전 7.1에서, 노동되지 않은 테이블 이름의 기본 동작 기본값이 없기 전에는 자식 테이블도 스캔하는 것입니다. 그렇게하려면. 이전 기본 동작을 얻으려면 구성을 설정하십시오 옵션SQL_INHERITANCE꺼짐, 예 :
SQL_Inheritance를 OFF로 설정하십시오;
또는 라인 추가토토 결과ql.conf파일.