postgresql
Tabel maken
Zoeken…
Tabellen maken met primaire sleutel
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)
);
Als alternatief kunt u de PRIMARY KEY
beperking direct in de kolomdefinitie plaatsen:
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)
);
Het wordt aanbevolen om kleine letters te gebruiken voor de tabel en alle kolommen. Als u hoofdletters gebruikt, zoals Person
u die naam in dubbele aanhalingstekens ( "Person"
) in elke query plaatsen, omdat PostgreSQL afdwingen van hoofdletters afdwingt.
Toon tabeldefinitie
Open het psql
opdrachtregelprogramma dat is verbonden met de database waar uw tabel zich bevindt. Typ vervolgens de volgende opdracht:
\d tablename
Om uitgebreid informatietype te krijgen
\d+ tablename
Als u de naam van de tabel bent vergeten, typt u \ d in psql om een lijst met tabellen en weergaven in de huidige database te verkrijgen.
Maak een tabel van selecteren
Stel dat u een tabel hebt met de naam persoon:
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)
);
U kunt als volgt een nieuwe tabel met personen ouder dan 30 maken:
CREATE TABLE people_over_30 AS SELECT * FROM person WHERE age > 30;
Maak een niet-geregistreerde tabel
U kunt niet-geregistreerde tabellen maken, zodat u de tabellen aanzienlijk sneller kunt maken. Niet-geregistreerde tabel slaat write-ahead
log over, wat betekent dat het niet crashveilig is en niet kan repliceren.
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)
);
Maak een tabel die verwijst naar een andere tabel.
In dit voorbeeld heeft de gebruikerstabel een kolom die verwijst naar de Agency-tabel.
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.
)