CREATE USER do druku.doc

(38 KB) Pobierz
CREATE USER jburiak3 WITH PASSWORD 'qazwsx';

 

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

 

...
Zgłoś jeśli naruszono regulamin