상속은 객체 지향 데이터베이스의 개념입니다. 그것 데이터베이스 디자인의 흥미로운 새로운 가능성을 열어줍니다.
두 개의 테이블을 만들자 : 테이블도시
및 테이블캐피탈
. 당연히 수도는 도시이며
그래서 당신은 목록에 암시 적으로 수도를 보여줄 수있는 방법을 원합니다.
모든 도시. 당신이 정말로 영리하다면 당신은 어떤 계획을 발명 할 수 있습니다
이와 같이:
테이블 캐피탈 생성 ( 이름 텍스트, 인구, 진짜, 고도 int, - (ft) 상태 문자 (2) ); 테이블 작성 Non_capitals ( 이름 텍스트, 인구, 진짜, 고도 int- (FT) ); 도시보기를 만듭니다 수도에서 이름, 인구, 고도를 선택하십시오 노동 조합 이름, 인구, 비 카피탈에서 고도를 선택하십시오;
이것은 쿼리가 진행되는 한 정상적으로 작동하지만, 당신이있을 때는 추악 해집니다. 한 가지에 대해 여러 행을 업데이트해야합니다.
더 나은 솔루션은 다음과 같습니다.
테이블 도시 생성 ( 이름 텍스트, 인구, 진짜, 고도 int- (FT) ); 테이블 캐피탈 생성 ( 상태 문자 (2) ) 상속 (도시);
이 경우 행캐피탈
상속모든 열 (이름, 인구,
그리고고도)에서부모, 도시
. 그만큼
열 유형이름is텍스트, 원주민범퍼카 토토가변 길이 문자를 입력하십시오
문자열. 주 수도에는 추가 열이 있습니다.State, 그것은 그들의 상태를 보여줍니다. 안에범퍼카 토토, 테이블은 0에서 상속 될 수 있습니다
더 많은 다른 테이블.
예를 들어 다음 쿼리는 모든 도시의 이름을 찾습니다. 500 개가 넘는 고도에 위치한 주 수도 포함 피트:
이름, 고도를 선택하십시오 도시에서 고도 500;
반환 :
이름 | 고도 -----------+--------- 라스 베이거스 | 2174 마리포사 | 1953 매디슨 | 845 (3 줄)
반면에 다음 쿼리는 모든 도시를 찾습니다. 주 수도가 아니며 500 피트의 고도에 위치하고 있습니다. 이상 :
이름, 고도를 선택하십시오 도시에서만 고도 500;
이름 | 고도 -----------+--------- 라스 베이거스 | 2174 마리포사 | 1953 (2 줄)
여기전용전도시쿼리를 실행해야 함을 나타냅니다
만도시
테이블이 아닙니다
아래 테이블도시
상속 계층. 우리가 이미 가지고있는 많은 명령
논의 -select, 업데이트및삭제-
이것을 지원전용표기법.
참고 :상속은 종종 유용하지만, 그것은 있습니다 고유 한 제약 조건이나 외국 키와 통합되지 않았으며 유용성을 제한합니다. 보다무지개 토토 PostgreSQL : 문서 : 9.3 : 상속자세한 내용은
이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
창 함수 | up | 결론 |