postgresql
Tworzenie tabeli
Szukaj…
Tworzenie tabeli za pomocą klucza podstawowego
CREATE TABLE person (
person_id BIGINT NOT NULL,
last_name VARCHAR(255) NOT NULL,
first_name VARCHAR(255),
address VARCHAR(255),
city VARCHAR(255),
PRIMARY KEY (person_id)
);
Alternatywnie możesz umieścić PRIMARY KEY
bezpośrednio w definicji kolumny:
CREATE TABLE person (
person_id BIGINT NOT NULL PRIMARY KEY,
last_name VARCHAR(255) NOT NULL,
first_name VARCHAR(255),
address VARCHAR(255),
city VARCHAR(255)
);
Zaleca się stosowanie małych liter w tabeli i we wszystkich kolumnach. Jeśli użyjesz wielkich liter, takich jak Person
będziesz musiał zawijać je w cudzysłowie ( "Person"
) w każdym zapytaniu, ponieważ PostgreSQL wymusza składanie liter.
Pokaż definicję tabeli
Otwórz narzędzie wiersza polecenia psql
podłączone do bazy danych, w której znajduje się twoja tabela. Następnie wpisz następujące polecenie:
\d tablename
Aby uzyskać rozszerzony typ informacji
\d+ tablename
Jeśli zapomniałeś nazwy tabeli, po prostu wpisz \ d w psql, aby uzyskać listę tabel i widoków w bieżącej bazie danych.
Utwórz tabelę z select
Załóżmy, że masz tabelę o nazwie osoba:
CREATE TABLE person (
person_id BIGINT NOT NULL,
last_name VARCHAR(255) NOT NULL,
first_name VARCHAR(255),
age INT NOT NULL,
PRIMARY KEY (person_id)
);
Możesz utworzyć nową tabelę osób powyżej 30. roku życia w następujący sposób:
CREATE TABLE people_over_30 AS SELECT * FROM person WHERE age > 30;
Utwórz niezalogowany stół
Możesz tworzyć niezalogowane tabele, dzięki czemu tabele mogą być znacznie szybsze. Niezalogowany stół pomija pisanie dziennika z write-ahead
co oznacza, że nie jest bezpieczny w razie awarii i nie może się replikować.
CREATE UNLOGGED TABLE person (
person_id BIGINT NOT NULL PRIMARY KEY,
last_name VARCHAR(255) NOT NULL,
first_name VARCHAR(255),
address VARCHAR(255),
city VARCHAR(255)
);
Utwórz tabelę, która odwołuje się do innej tabeli.
W tym przykładzie tabela użytkowników będzie miała kolumnę, która odwołuje się do tabeli agencji.
CREATE TABLE agencies ( -- first create the agency table
id SERIAL PRIMARY KEY,
name TEXT NOT NULL
)
CREATE TABLE users (
id SERIAL PRIMARY KEY,
agency_id NOT NULL INTEGER REFERENCES agencies(id) DEFERRABLE INITIALLY DEFERRED -- this is going to references your agency table.
)