postgresql
Creazione della tabella
Ricerca…
Creazione di tabelle con chiave primaria
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)
);
In alternativa, è possibile posizionare il vincolo PRIMARY KEY
direttamente nella definizione della colonna:
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)
);
Si consiglia di utilizzare nomi in minuscolo per la tabella e tutte le colonne. Se si utilizzano nomi maiuscoli come Person
si dovrà racchiudere tale nome tra virgolette ( "Person"
) in ogni singola query perché PostgreSQL applica la piegatura del caso.
Mostra la definizione della tabella
Apri lo strumento da riga di comando di psql
collegato al database in cui si trova la tua tabella. Quindi digitare il seguente comando:
\d tablename
Per ottenere un tipo di informazioni esteso
\d+ tablename
Se hai dimenticato il nome della tabella, digita \ d in psql per ottenere un elenco di tabelle e viste nel database corrente.
Crea tabella da selezionare
Diciamo che hai un tavolo chiamato persona:
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)
);
Puoi creare una nuova tabella di persone con più di 30 in questo modo:
CREATE TABLE people_over_30 AS SELECT * FROM person WHERE age > 30;
Crea una tabella non loggata
È possibile creare tabelle non registrate in modo da rendere le tabelle notevolmente più veloci. Salti di tabella non loggati che write-ahead
log di write-ahead
che significa che non è sicuro da crash e non è in grado di replicarsi.
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)
);
Creare una tabella che faccia riferimento ad altre tabelle.
In questo esempio, User Table avrà una colonna che fa riferimento alla tabella dell'Agenzia.
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.
)