PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 5. ���ݶ��� | Fast Forward | Next |
�����Ǵ����������������ÿ���ݵ���������Ҳ�dz��С�ͨ��������Ӧ�ôӳ��б��м̳й�����
CREATE TABLE cities ( name text, population float, altitude int -- (��λ��Ӣ��) ); CREATE TABLE capitals ( state char(2) ) INHERITS (cities);
����������£�һ���������ĸ������б��м̳��������ԣ����֣��˿��Լ����Σ��� ������һ����������ԣ�state����ʾ�������ڵ��ݡ��� PostgreSQL � һ������Դ���������������м̳����ԣ�����һ����ѯ�ȿ�������һ�����е������У� Ҳ��������һ����������м���������������С�
ע��: �̳в��ʵ����������ͼ��
���磬����IJ�ѯ�������к��� 500 Ӣ�����ϵ����г��е����֣�����������
SELECT name, altitude FROM cities WHERE altitude > 500;
�����أ�
name | altitude -----------+---------- Las Vegas | 2174 Mariposa | 1953 Madison | 845
��һ���棬���Ҫ�ҳ��������������ڵ����к��γ���500Ӣ�ߵij��У� ��ѯӦ���������ģ�
SELECT name, altitude FROM ONLY cities WHERE altitude > 500; name | altitude -----------+---------- Las Vegas | 2174 Mariposa | 1953
����� cities ǰ��� "ONLY" ����ò�ѯӦ��ֻ�� cities ���в��Ҷ��������̳м������ cities �ı� ��������Ѿ����۹������� -- SELECT�� UPDATE �� DELETE -- ֧����� "ONLY" ���š�
����: ��ǰ�汾�� PostgreSQL �ȱʡ�Dz������ӱ� ���Ƿ������������׳���Ķ���Υ�� SQL:1999 �����ھ�����棬Ҫ�����ӱ�����Ҫ����һ�� * ���������档����
SELECT * from cities*;����Ȼ����ͨ������*��ȷ������Ҫɨ���ӱ� Ҳ����ͨ��д "ONLY" ������ȷ������ɨ���ӱ� �������Ӱ汾 7.1 ��ʼ������Щ�������εı����ӵ�ȱʡ��Ϊ��ͬʱɨ�������ӱ� ����ǰ��ȱʡ�����෴��Ҫ����ϵ�ȱʡ��Ϊ�� ������ѡ�� SQL_Inheritance �رգ�Ҳ���ǡ�
SET SQL_Inheritance TO OFF;��������� postgresql.conf �ļ������һ�С�
��ʱ���������֪��ij���а汾�����ĸ�����ÿ���������Ƕ���һ��ϵͳ���Խ� TABLEOID�������Ը�����Դ����˭��
SELECT c.tableoid, c.name, c.altitude FROM cities c WHERE c.altitude > 500;
�����أ�
tableoid | name | altitude ----------+-----------+---------- 139793 | Las Vegas | 2174 139793 | Mariposa | 1953 139798 | Madison | 845
(������븴��������ӣ�����ܻ�õ���ͬ������ OID��) ͨ����pg_class��һ�����ӣ�����Կ���ʵ�ʵı����֡�
SELECT p.relname, c.name, c.altitude FROM cities c, pg_class p WHERE c.altitude > 500 and c.tableoid = p.oid;
�����أ�
relname | name | altitude ----------+-----------+---------- cities | Las Vegas | 2174 cities | Mariposa | 1953 capitals | Madison | 845
һ������ԴӶ���һ�������м̳У�����������£���ӵ�����ĸ����Ƕ�����ֶεĺ� �������κ�Ϊ����ӱ���������ֶΣ���
�̳����Ե�һ�����صľ�����������������ΨһԼ���������Լ��ֻʩ���ڵ����� �����������ǵļ̳е��ӱ���һ�㲻�ܶ����ñ��DZ����ñ�����ʵ����ˣ�������������
����������� cities.name Ϊ UNIQUE ������һ�� PRIMARY KEY�� ��ôҲ������ֹ capitals ��ӵ���ظ������ֵ� cities �����С� ������Щ�ظ�����ȱʡʱ�ڲ�ѯ cities ���ʱ�����ʾ������ ʵ���ϣ�ȱʡʱ capitals ����ȫû��ΨһԼ������˿��ܰ�������ͬ���Ķ���С� ��Ӧ�ø� capitals ����ΨһԼ��������������Ҳ��������� cities ���ظ���
���ƣ������������ cities.name REFERENCES ijЩ�����ı� ���Լ�������Զ��㲥�� capitals�������������£������ͨ���ֹ��� capitals ����ͬ���� REFERENCES Լ����������㡣
��������һ������ֶ�Ϊ REFERENCES cities(name) ����������������������� ���Dz��������������������û�кܺõ��ƿ��취��
��Щȱ��ܿ����ڽ����İ汾��������ͬʱ��Ҳ��Ҫ����һ�£��̳��Ƿ����������������á�