CREATE USER do druku, edu, bazy


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 } ]

where column_constraint is:

[ CONSTRAINT constraint_name ]

{ NOT NULL | NULL | UNIQUE | PRIMARY KEY |

CHECK (expression) |

REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]

[ ON DELETE action ] [ ON UPDATE action ] }

[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

and table_constraint is:

[ CONSTRAINT constraint_name ]

{ UNIQUE ( column_name [, ... ] ) |

PRIMARY KEY ( column_name [, ... ] ) |

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 ]

GLOBAL | LOCAL - PostgreSQL nie ma podziału na moduły, brak efektu tych poleceń

TEMPORARY | TEMP - na czas obowiązywania sesji

LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] domyślnie jest EXCLUDING DEFAULTS

INHERITS ( parent_table [, ... ] ) - nowa tabela powstaje z innej lub innych tabel

PRZYKŁAD

create table lek2 () inherits (lekarze);

WITH OIDS
WITHOUT OIDS

OIDs (object identifiers) - identyfikatory obiektów . Wartość domyślna: WITH OIDS.

Likwidacja OID oszczędza miejsce na identyfikatory i licznik OIDS.

REFERENCES reftable [ ( refcolumn ) ] [ MATCH matchtype ] [ ON DELETE action ] [ ON UPDATE action ] (column constraint)
FOREIGN KEY ( column [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ] [ MATCH matchtype ] [ ON DELETE action ] [ ON UPDATE action ] (table constraint)

match types:

MATCH FULL,

MATCH PARTIAL,

MATCH SIMPLE, domyślnie

MATCH FULL - nie pozawala, aby wartość w żadnej kolumnie złożonego klucza obcego była NULL chyba, że wszystkie są NULL

MATCH SIMPLE - część kolumn klucza obcego może mieć wartości puste

MATCH PARTIAL jeszcze nie zaimplementowane w PostgreSQL

ON DELETE, lub

ON UPDATE

NO ACTION - domyślna akcja, wywołanie błędu. Jeżeli akcje podejmowane po aktualizacji lub usunięciu wpisu w tabeli klucza obcego mogą być odłożone w czasie i zostaną odłożone w czasie do momentu zakończenia bloku transakcji, to wywołanie błędu zostanie wstrzymane do tego momentu.

RESTRICT - jak NO ACTION (czyli wywołanie błędu) z wyjątkiem tego, że ta akcja nie będzie odłożona i błąd zostanie zgłoszony bez oczekiwania na zamknięcie transakcji

CASCADE - kaskadowe aktualizowanie czy usuwanie

SET NULL - w kolumnach odwołania wstawienie wartości NULL

SET DEFAULT - w kolumnach odwołania wstawienie wartości domyslnych

Przy częstych aktualizacjach klucza głównego warto ustawić index na kolumnie klucza obcego, w celu zwiększenia wydajności.

DEFERRABLE
NOT DEFERRABLE - domyślne

czy sprawdzanie klucza obcego jest odłożone do momentu zakończenia transakcji aktualizacji lub usuwania

INITIALLY IMMEDIATE, - klucz obcy sprawdzany po każdej kwerendzie

INITIALLY DEFERRED- klucz obcy sprawdzany po bloku kwerend zamkniętych w jawnej transakcji

ON COMMIT - co zrobić z tabelą tymczasową po zakończeniu transakcji

PRESERVE ROWS - domyslna kacja, nic nie robić

DELETE ROWS - automatyczny TRUNCATE

DROP - usuniecie tabeli (normalnie tabela jest usuwana dopiero po zamknięciu sesji

CREATE TABLE lekarze(

id serial not null,

name VARCHAR( 40 ) not NULL ,

salary FLOAT(4) DEFAULT 100,

CONSTRAINT sal_check CHECK(SALARY>50),

CONSTRAINT id_pk PRIMARY KEY (id));

CREATE TABLE distributors (

did integer PRIMARY KEY DEFAULT nextval('serial'),

name varchar(40) NOT NULL CHECK (name <> '')

);

CREATE TABLE films (

code char(5),

title varchar(40),

did integer,

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)

);

Define a check table constraint:

CREATE TABLE distributors (

did integer,

name varchar(40)

CONSTRAINT con1 CHECK (did > 100 AND name <> '')

);

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)

);

SKORO ZŁOŻONY TO JAKO OGRANICZENIE DLA TABELI A NIE KOLUMNY



Wyszukiwarka

Podobne podstrony:
Ciągi liczbowe Materiały do druku, Ciąg arytmetyczny, geometryczny, Suma ciągu, różnica, iloraz Le
sciaga do druku, ETI sem2, Bazy danych
Choroby zakazne wieku dzieciecego do druku
Zaburzenia rownowagi wodnej do druku 9
Piesni maryjne na procesje do druku
czesci rozbite new do druku
Przytulia wonna, Botanika - Systematyka roślin do druku
Sit sztywny, Botanika - Systematyka roślin do druku
Zaka enia uk adu1, VI rok, VI rok, Pediatria, Pediatria, PEDIATRIA OLA, pediatria IV V, Choroby dzie
Cicho, teksty gotowe do druku
media w edukacji do druku, Uczelnia
finanse międzynarodowe DO DRUKU, studia
HANDEL do druku
Ściąga do druku
do druku ~$is treści
Problem ochrony tajemnicy spowiedzi w polskim prawie procesowym do druku

więcej podobnych podstron