상속은 객체 지향 데이터베이스의 개념입니다. 그것 데이터베이스 설계의 흥미롭고 새로운 가능성을 열어줍니다.
두 개의 테이블을 생성합시다: 테이블도시그리고 테이블대문자. 당연히 수도도 도시이고,
그래서 당신은 대문자를 암묵적으로 표시할 수 있는 방법을 원합니다.
모든 도시를 나열하십시오. 당신이 정말로 영리하다면 뭔가를 발명할 수도 있을 겁니다.
다음과 같은 계획:
테이블 대문자 생성(
이름 텍스트,
실제 인구,
고도 int, -- (피트 단위)
상태 문자(2)
);
CREATE TABLE non_capitals(
이름 텍스트,
실제 인구,
고도 int -- (피트 단위)
);
AS 보기 도시 만들기
SELECT 이름, 인구, 고도 FROM 대문자
유니온
non_capitals에서 이름, 인구, 고도를 선택하세요.
이것은 쿼리가 진행되는 한 잘 작동하지만 다음과 같은 경우 보기 흉해집니다. 한 가지 이름을 지정하려면 여러 행을 업데이트해야 합니다.
더 나은 해결책은 다음과 같습니다:
테이블 도시 생성(
이름 텍스트,
실제 인구,
고도 int -- (피트 단위)
);
CREATE TABLE 대문자(
상태 문자(2)
) 상속(도시);
이 경우, 한 행대문자
상속모든 열(이름, 인구,
그리고고도) 그에서부모, 도시.
열의 유형이름is텍스트, 원주민포스트그레SQL가변 길이에 대한 유형
문자열. 주 수도에는 추가 열인 주,
그것은 그들의 상태를 보여줍니다. 에서토토 꽁 머니, 테이블은 0 또는
다른 테이블도 더 있어요.
예를 들어, 다음 쿼리는 모든 이름을 찾습니다. 주도를 포함한 고도에 위치한 도시 500피트 이상:
SELECT 이름, 고도
도시에서
고도 500;
반환:
이름 | 고도 ---------+---------- 라스베가스 | 2174 마리포사 | 1953년 매디슨 | 845 (3행)
반면에 다음 쿼리는 모든 도시를 찾습니다. 주도가 아니고 고도에 위치한 곳 500피트 이상:
SELECT 이름, 고도
도시에서만
고도 500;
이름 | 고도 ---------+---------- 라스베가스 | 2174 마리포사 | 1953년 (2행)
여기는만이전도시쿼리가 실행되어야 함을 나타냅니다.
오직도시테이블이 아니고
아래 표도시안에
상속 계층. 우리가 이미 가지고 있는 많은 명령
논의됨 --선택, 업데이트그리고삭제-- 지원
이만표기법.