PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Fast Forward | Next |
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name ( { column_name data_type [ DEFAULT default_expr ] [ column_constraint [, ... ] ] | table_constraint | LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] } [, ... ] ) [ INHERITS ( parent_table [, ... ] ) ] [ WITH OIDS | WITHOUT OIDS ] [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ] [ TABLESPACE tablespace ] ���� column_constraint �����ǣ� [ CONSTRAINT constraint_name ] { NOT NULL | NULL | UNIQUE [ USING INDEX TABLESPACE tablespace ] | PRIMARY KEY [ USING INDEX TABLESPACE tablespace ] | CHECK (expression) | REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] } [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] �� table_constraint �����ǣ� [ CONSTRAINT constraint_name ] { UNIQUE ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] | PRIMARY KEY ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] | CHECK ( expression ) | FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] } [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
CREATE TABLE ���ڵ�ǰ���ݿⴴ��һ���µģ� ��ʼΪ�յı��ñ��ɷ�����������û����С�
���������ģʽ�������磬CREATE TABLE myschema.mytable ...���� ��ô������ָ��ģʽ�д����ġ��������ڵ�ǰģʽ�д�������ʱ�������һ�������ģʽ� ��˴�����ʱ���ʱ���ܸ���ģʽ���������ֱ����ͬһģʽ�����������У�����������ͼ������
CREATE TABLE ���Զ�����һ���������ͣ� ���������ʹ����Ӧ�ñ�һ�еĸ������͡� ��ˣ����ܺ�ͬģʽ�е�������������ͬ����
��ѡ��Լ���Ӿ�����Լ�������ԣ������л��߸��µ��б���������ЩԼ�����ܳɹ��������¡� Լ����һ������һ�� SQL �������Զ��ַ�ʽЭ������Э�������ڱ��϶�����Ч����ֵ���ϡ�
����Լ�������ַ�������Լ������Լ����һ����Լ������Ϊһ���ж����һ���ֶ���ġ� ����Լ��������ij���а���һ�� �����������ڶ���һ�����ϡ�ÿ����Լ��Ҳ����д�ɱ�Լ���� ���ij��Լ��ֻӰ��һ���У���ô��Լ��ֻ�Ƿ����ϵļ�ʽ���ѡ�
��������˴˲�������ñ���Ϊ��ʱ����ʱ���ڻỰ����ʱ�Զ�ɾ���� �����ǣ���ѡ���ڵ�ǰ����Ľ�β����������� ON COMMIT���� ����ͬ�����ñ�����ʱ������ڼ��ڱ��Ự�������Dz��ɼ��ģ� ������������ģʽ���ε��������õġ� �κ�����ʱ���ϴ���������Ҳ�����Զ�ɾ����
���ǿ���ѡ���� TEMPORARY �� TEMP ǰ����� GLOBAL ���� LOCAL�� ������ PostgreSQL û���κ����𣬿��Բ��� ������.
Ҫ�����ı�����֣�������ģʽ���Σ���
���±���Ҫ�������ֶ����֡�
���ֶε��������͡�������������˵�������й� PostgreSQL ֧�ֵ��������͵ĸ�����Ϣ�� ��ο� Chapter 8��
DEFAULT �Ӿ���������ֵ��ֶ�һ��ȱʡ��ֵ�� ����ֵ�������κβ��������ı��ʽ��������ʹ���Ӳ�ѯ�ͶԱ����е������ֶεĽ������ã��� ȱʡ���ʽ���������ͱ�����ֶ�����ƥ�䡣
ȱʡ���ʽ���������κ�δ�������ֶ���ֵ�IJ�������� ����ֶ���û��ȱʡֵ����ôȱʡ�� NULL��
��ѡ�� INHERITS �Ӿ�����һ�б�����±��Զ������б��м̳������ֶΡ�
ʹ�� INHERITS ���µ��ӱ���丸��֮�䴴��һ�����õĹ�ϵ�� �Ը���ṹ����ͨ��Ҳ�ᴫ�����ӱ�ȱʡʱ��ɨ�踸���ʱ��Ҳ��ɨ���ӱ�
����ڶ���һ�������д���ͬ�����ֶΣ���ô�ͻᱨ��һ����������Щ�ֶε�����������ÿ�������ﶼ��ƥ��ġ� ���û�г�ͻ����ô�ظ����ֶ����±����ںϳ�һ���ֶΡ� ����±���ֶ����б��а����ͼ̳е��ֶ���ͬ���ģ���ô������������Ҳ���������һ����̳��ֶ�ƥ�䣬������Щ�ֶζ�����ںϳ�һ���� ������ͬ���ļ̳к����ֶ���������������ͬ��Լ�������еļ̳й�����Լ���Լ�������Լ�����ںϵ�һ�𣬲���ȫ��Ӧ�����±� ����±�Ϊ���ֶ���ȷ��������һ��ȱʡ��ֵ����ô��ȱʡ��ֵ�����κ����Լ̳��ֶ�������ȱʡֵ�� �����κ�Ϊ���ֶ�������ȱʡ��ֵ�ĸ�������������ͬ��ȱʡ������ͻᱨ��һ������
LIKE �Ӿ�����һ�����±��Զ������������̳������ֶ����� ���ǵ��������ͣ��Լ��ǿ�Լ����
�� INHERITS ��ͬ���±���ԭ���ı�֮���ڴ����������֮������ȫ�صġ� ��Դ�������κ��Ķ�����ʩ�ӵ��±��У�����Ҳ��������ɨ��Դ���ʱ������±�����ݡ�
�ֶ�ȱʡ���ʽֻ���������� INCLUDING DEFAULTS ֮��Ż���������� ȱʡ���ų�ȱʡ���ʽ��������±��������ֶ�ȱʡ���ǿա�
�����ѡ���Ӿ������±��е����Ƿ�Ӧ��ӵ�и������ǵ� OID �������ʶ���� �����û������ WITH OIDS Ҳû������ WITHOUT OIDS�� ��ôȱʡֵȡ�������ò��� default_with_oids�� ������±���κ��� OID �ı�̳ж�������ô������������˵�� WITHOUT OIDS�� Ҳ��ǿ�� WITH OIDS����
����������������� WITHOUT OIDS���±�Ͳ���洢 OID�����Ҳ��������е�ʱ��Ҳ���ḳ�� OID�� ͨ����Ϊ��ô����ֵ�õģ���Ϊ�������Լ��� OID ���IJ����Ƴ� 32 λ OID �������Ļؾ� һ���ü������ص�����ô�Ͳ����ټ��� OID ��Ψһ����������ʵ���Ծʹ���ۿۡ� ���⣬�� OID ��һ�������ų���������ڴ����ϴ洢ÿ�еĿռ䣬���ڴ���������ϣ�ÿ�м��� 4 �ֽڣ����Ҳ���ԸĽ����ܡ�
Ҫ��һ������֮�����ɾ�� OID��ʹ�� ALTER TABLE��
�л��Լ���Ŀ�ѡ���֡����û������������ϵͳ����һ�����֡�
�ֶβ�������� NULL ��ֵ��
���ֶ�������� NULL ��ֵ������ȱʡ��
����Ӿ�Ĵ���ֻ��Ϊ����Щ�DZ� SQL ���ݿ���ݡ� ���Dz���������Ӧ����ʹ������
UNIQUE ����һ������ʾһ�������һ�����߶���ֶ���ϵķ���ֻ�ܰ���Ψһ����ֵ�� ���ΨһԼ������Ϊ����Լ����һ����ֻ�������˿���е�������
����ΨһԼ������;���ԣ�ϵͳ��Ϊ NULL ��ֵ�Dz���ȵġ�
ÿ��Ψһ��Լ������������һ���ֶεļ��ϣ��ü��ϱ��������ΨһԼ�������ֶμ��ϻ��߸ñ��������Լ����ͬ�� �������ֻ��ͬ����Լ��д�����Ρ���
����Լ���������е�һ������һЩ�ֶ�ֻ�ܰ���Ψһ�����ظ����� NULL ����ֵ�� �Ӽ����Ͻ���PRIMARY KEY ֻ�� UNIQUE �� NOT NULL ����ϣ�������һ���ֶα�ʶΪ����ͬʱҲ������ģʽ��Ƶ�Ԫ���ݣ� ��Ϊ������ζ������������������ֶ������е�Ψһ��ʶ��
һ����ֻ������һ����������������Ϊ�ֶ�Լ�����DZ�Լ����
����Լ��Ӧ�ö�����ͬ�����ϵ�һ��������ΨһԼ��������IJ�ͬ���ֶμ����ϡ�
CHECK Լ������һ�����ɲ���������Ӿ䣬 һ�β�����߸��²�������ɹ�����������л��߱����µ��б���������������� ֵ���Ϊ�����δ֪ʱ�ɹ���������κβ�����߸��µIJ������ɼٵĽ���� ��ô�����׳�һ�����⣬���������¶�������Ӱ�����ݿ⡣ ����Ϊ�ֶ�Լ���ļ��Լ��Ӧ��ֻ���ø��ֶε���ֵ�����ڱ�Լ������ֵı��ʽ�������ö���ֶΡ�
Ŀǰ��CHECK ���ʽ���ܰ����Ӳ�ѯҲ�������ó���ǰ���ֶ�֮��ı�����
��Щ�Ӿ�����һ�����Լ�������Լ��Ҫ���±���һ�л��߶�����ɵ���Ӧ��ֻ����ƥ�䱻���õı� �ж�Ӧ���õ��ֶ��е���ֵ�� ���ʡ�� refcolumn�� ��ʹ�� reftable �������� �������ֶα����DZ����ñ��е�Ψһ�ֶλ���������
�������ֶβ������ֵ��ʹ�ø�����ƥ�������뱻���ñ��б������е���ֵ����ƥ�䡣 ������ƥ�����ͣ�MATCH FULL�� MATCH PARTIAL���� MATCH SIMPLE����Ҳ��ȱʡƥ�����͡� MATCH FULL ��������һ�����ֶ�������ֶ�Ϊ NULL��������������ֶζ�Ϊ NULL�� MATCH SIMPLE ����ijЩ����ֶ�Ϊ NULL ��������������ֲ��� NULL��MATCH PARTIAL ��ûʵ�֡�
���⣬�����ο��ֶ��е����ݸı��ʱ����ô���Ա�����ֶ��е�����ִ��ij�ֲ����� ON DELETE �Ӿ����������ο����еı��ο��н���ɾ����ʱ��Ҫִ�еIJ����� ���ƣ�ON UPDATE �Ӿ��������ο����б��ο��ֶθ���Ϊ��ֵ��ʱ��Ҫִ�еĶ����� ������б����£������ο����ֶ�ʵ����û�б仯����ô�Ͳ������κζ����� ���� NO ACTION ���֮��IJο����������Ƴ٣���ʹ��Լ������Ϊ�����Ƴٵ�Ҳ��ˡ� ������ÿ���Ӿ�Ŀ��ܵĶ�����
����һ��������ɾ�����߸��½�����һ��Υ�����Լ���Ķ����� �����Լ���ǿ��Ƴٵģ���������������κ������У���ô��������ڼ��Լ����ʱ�����ɡ� ����ȱʡ������
����һ������ɾ������½�����Υ�����Լ���Ĵ��� �� NO ACTION һ����ֻ�Ƕ��������Ƴ١�
ɾ���κ������˱�ɾ���е��У����߷ֱ�������е��ֶ�ֵ����Ϊ���ο��ֶε�����ֵ��
������������Ϊ NULL��
�������ֶ�����Ϊ���ǵ�ȱʡֵ��
������ο��ֶξ������£���ô���Ǹ�����ֶ�����һ�����������Ǻ��ʵģ� ����������ֶ�����������ö������Ը���Ч��ִ�С�
�������ؼ������ø�Լ���Ƿ���Ƴ١�һ�������Ƴٵ�Լ������ÿ������֮�����ϼ�顣 �����Ƴٵ�Լ���������Ƴٵ������β��ʹ�� SET CONSTRAINTS ����� ȱʡ�� NOT DEFERRABLE��Ŀǰֻ�����Լ����������Ӿ䡣��������Լ�����Ͷ��Dz����Ƴٵġ�
���Լ���ǿ��Ƴٵģ���ô����Ӿ��������Լ����ȱʡʱ�䡣 ���Լ���� INITIALLY IMMEDIATE�� ��ôÿ�����֮��ͼ�����������ȱʡ�����Լ���� INITIALLY DEFERRED����ôֻ���������β�ż������ Լ������ʱ������� SET CONSTRAINTS �����ġ�
���ǿ����� ON COMMIT ������ʱ����������β����Ϊ��������ѡ���ǣ�
�������β�������κ��ض��Ķ���������ȱʡ��Ϊ��
��ʱ�����������ÿ�������β����ɾ����ʵ���ϣ���ÿ���ύ��ʱ���Զ� TRUNCATE ��
�ڵ�ǰ�����Ľ�β����ʱ����ɾ����
tablespace ���±�Ҫ�������ڵı�ռ䡣 ���û����������ʹ�� default_tablespace����� default_tablespace �ǿգ���ô��ʹ�����ݿ��ȱʡ��ռ䡣
����Ӿ�����ѡ����һ�� UNIQUE ���� PRIMARY KEY Լ����ص����Դ���ʱ���ڵı�ռ䡣 ���û���ṩ����Ӿ䣬����������ڸñ��ͬһ����ռ��д�����
���Dz���������Ӧ����ʹ�� OID����������£����õ�ѡ����ʹ��һ�� SERIAL �����������з���������������� ���һ��Ӧ��ʹ���� OID ��ʶ���е��ض��У���ô���ǽ����ڸñ�� oid �ֶ��ϴ���һ��ΨһԼ������ȷ���ñ�� OID ��ʹ�ڼ������ص�֮��Ҳ��Ψһ�ġ��������Ҫһ���������ݿⷶΧ��Ψһ��ʶ�� ��ô��Ҫ������� OID �ǿ��Ψһ�ģ�������� tableoid ���� OID �������ʵ�����Ŀ�ġ�
��ʾ: ����Щû�������ı����Dz�����ʹ�� WITHOUT OIDS�� ��Ϊ�����û�� OID ��û��Ψһ���ݼ��֣���ô�ͺ��ѱ�ʶ�ض����С�
PostgreSQL �Զ�Ϊÿ��ΨһԼ��������Լ������һ��������ȷ��Ψһ�ԡ� ��ˣ����Dz���Ϊ�����ֶ���ȷ�Ĵ��������� ������ CREATE INDEX ��ȡ������Ϣ����
ΨһԼ����������Ŀǰ��ʵ�����Dz��ܼ̳еġ� ����������Ѽ̳к�ΨһԼ�������һ��ᵼ������ת��
һ�����ܳ��� 1600 ���ֶΡ���ʵ���ϣ�ʵ�ʵ����Ʊ�������ͣ� ��Ϊ����Զ�泤�����ơ���
������ films �� distributors��
CREATE TABLE films ( code char(5) CONSTRAINT firstkey PRIMARY KEY, title varchar(40) NOT NULL, did integer NOT NULL, date_prod date, kind varchar(10), len interval hour to minute );
CREATE TABLE distributors ( did integer PRIMARY KEY DEFAULT nextval('serial'), name varchar(40) NOT NULL CHECK (name <> '') );
����һ������ 2 ά����ı�
CREATE TABLE array_int ( vector INT[][] );
Ϊ�� films ����һ��Ψһ��Լ���� Ψһ��Լ�������ڱ��һ�������ֶ��϶��壺
CREATE TABLE films ( code char(5), title varchar(40), did decimal(3), date_prod date, kind varchar(10), len interval hour to minute, CONSTRAINT production UNIQUE(date_prod) );
����һ�������Լ����
CREATE TABLE distributors ( did integer CHECK (did > 100), name varchar(40) );
����һ������Լ����
CREATE TABLE distributors ( did integer, name varchar(40) CONSTRAINT con1 CHECK (did > 100 AND name <> '') );
Ϊ�� films ����һ��������Լ���� ������Լ�����Զ����ڱ��ϵ�һ�������ֶΡ�
CREATE TABLE films ( code char(5), title varchar(40), did integer, date_prod date, kind varchar(10), len interval hour to minute, CONSTRAINT code_title PRIMARY KEY(code,title) );
Ϊ�� distributors ����һ������Լ���� �������������ǵ�Ч�ģ���һ������ʹ���˱�Լ����� �ڶ���ʹ������Լ�����
CREATE TABLE distributors ( did integer, name varchar(40), PRIMARY KEY(did) );
CREATE TABLE distributors ( did integer PRIMARY KEY, name varchar(40) );
����������Ӹ��ֶ� name ������һ���ı�����ȱʡֵ�� ���ҽ��ֶ� did ��ȱʡֵ����Ϊͨ��ѡ�����ж������һ��ֵ���ɡ� modtime ��ȱʡֵ���Ǹ��в����ʱ���ʱ�䡣
CREATE TABLE distributors ( name varchar(40) DEFAULT 'Luso Films', did integer DEFAULT nextval('distributors_serial'), modtime timestamp DEFAULT current_timestamp );
�ڱ� distributors �϶������� NOT NULL ��Լ��������֮һ��ȷ���������֣�
CREATE TABLE distributors ( did integer CONSTRAINT no_null NOT NULL, name varchar(40) NOT NULL );
Ϊ name �ֶζ���һ��ΨһԼ����
CREATE TABLE distributors ( did integer, name varchar(40) UNIQUE );
����ĺ�����������Ϊһ����Լ��������һ���ģ�
CREATE TABLE distributors ( did integer, name varchar(40), UNIQUE(name) );
�ڱ�ռ� diskvol1 �ﴴ���� cinemas��
CREATE TABLE cinemas ( id serial, name text, location text ) TABLESPACE diskvol1;
CREATE TABLE ��ѭ SQL-92 �� SQL:1999 ��һ���Ӽ���һЩ��������������г���
���� CREATE TEMPORARY TABLE ����� SQL �������ƣ� ����Ч���Dz�ͬ�ġ��ڱ����ʱ��ֻ�Ƕ���һ�β����Զ����ڣ��ӿ����ݿ�ʼ�����κ���Ҫ���ǵĻỰ�С� PostgreSQL Ҫ��ÿ���ỰΪ����ʹ�õ�ÿ����ʱ���������Լ��� CREATE TEMPORARY TABLE ��� ����������ͬ�ĻỰ����ͬ����ʱ���������ڲ�ͬ��Ŀ�ģ�������ʵ�ַ������һ����ʱ������Լ��Ϊ������ͬ�ı�ṹ��
���������ʱ�����Ϊ���㷺�غ����ˡ�PostgreSQL ���ⷽ���ϵ���Ϊ������������� SQL ���ݿ�
������ȫ�ֺ;ֲ�����ʱ��֮��������� PostgreSQL �ﲻ���ڣ���Ϊ��������ȡ����ģ��ĸ���� PostgreSQL û�����������ڼ��ݿ��ǣ� PostgreSQL ��������ʱ�������е� GLOBAL �� LOCAL �ؼ��֣� ��������û�����á�
��ʱ��� ON COMMIT �Ӿ�Ҳ������ SQL ���� ������Щ������������� ON COMMIT �Ӿ䣬SQL ����ȱʡ����Ϊ�� ON COMMIT DELETE ROWS�� ���� PostgreSQL ���ȱʡ��Ϊ�� ON COMMIT PRESERVE ROWS�� �� SQL �ﲻ���� ON COMMIT DROP��
SQL ��˵ CHECK �ֶ�Լ��ֻ����������ʩ�õ��ֶΣ� ֻ�� CHECK ��Լ���������ö���ֶΡ�PostgreSQL ����ǿ��������ƣ������ֶκͱ�Լ��������ͬ�Ķ�����
NULL "Լ��"��ʵ���ϲ���Լ������ PostgreSQL �� SQL ������չ�� ��������Ϊ�˺�����һЩ���ݿ�ϵͳ���ݣ��Լ�Ϊ�˺� NOT NULL Լ���Գƣ��� ��Ϊ�����κ��ֶε�ȱʡ���������ij���ֻ���������ѡ�
ͨ�� INHERITS �Ӿ�Ķ��ؼ̳��� PostgreSQL ���Ե���չ�� SQL:1999���������� SQL-92��ʹ�ò�ͬ��������嶨���˵��̳С� SQL:1999 ���ļ̳л�û���� PostgreSQL ��ʵ�֡�