postgresql
Tabellenerstellung
Suche…
Tabellenerstellung mit Primärschlüssel
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)
);
Alternativ können Sie die PRIMARY KEY
Einschränkung direkt in die PRIMARY KEY
:
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)
);
Es wird empfohlen, dass Sie für die Tabelle und alle Spalten Kleinbuchstaben verwenden. Wenn Sie Großbuchstaben wie Person
Sie diesen Namen in doppelte Anführungszeichen ( "Person"
) in jede Abfrage einschließen, da PostgreSQL die Fallverfolgung erzwingt.
Tabellendefinition anzeigen
Öffnen Sie das Befehlszeilentool psql
, das mit der Datenbank verbunden ist, in der sich Ihre Tabelle befindet. Geben Sie dann den folgenden Befehl ein:
\d tablename
Um einen erweiterten Informationstyp zu erhalten
\d+ tablename
Wenn Sie den Namen der Tabelle vergessen haben, geben Sie einfach \ d in psql ein, um eine Liste der Tabellen und Ansichten in der aktuellen Datenbank zu erhalten.
Tabelle erstellen aus auswählen
Nehmen wir an, Sie haben eine Tabelle namens person:
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)
);
Sie können eine neue Tabelle mit Personen über 30 wie folgt erstellen:
CREATE TABLE people_over_30 AS SELECT * FROM person WHERE age > 30;
Erstellen Sie eine nicht protokollierte Tabelle
Sie können nicht protokollierte Tabellen erstellen, um die Tabellen erheblich schneller zu machen. Nicht protokollierte Tabelle überspringt das write-ahead
Protokoll, sodass es nicht absturzsicher ist und nicht repliziert werden kann.
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)
);
Erstellen Sie eine Tabelle, die auf andere Tabelle verweist.
In diesem Beispiel enthält die Benutzertabelle eine Spalte, die auf die Agency-Tabelle verweist.
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.
)