Crea un database in PostgreSQL usando il comando createdb

Crea Un Database In Postgresql Usando Il Comando Createdb



In questa guida impareremo a creare un database in PostgreSQL usando il comando createdb.

Prerequisiti:

Per eseguire i passaggi illustrati in questa guida, sono necessari i seguenti componenti:

  • Un sistema Linux correttamente configurato. Per i test, considera configurare una macchina Ubuntu virtuale utilizzando VirtualBox .
  • PostgreSQL installato e configurato. Impara di più riguardo installare PostgreSQL su Ubuntu .
  • Accesso ad un utente non root con privilegio sudo .

Database PostgreSQL

PostgreSQL è un sistema di database relazionale a oggetti conforme a SQL gratuito e open source. Può funzionare sia con query relazionali (SQL) che non relazionali (JSON). Ulteriori informazioni su caratteristiche di PostgreSQL .







In PostgreSQL, la gerarchia dei dati è la seguente:



  • grappolo
  • Banca dati
  • schema
  • tabella (o altri oggetti; ad esempio, funzione)

Qualsiasi istanza PostgreSQL può accettare più connessioni client. Il client deve specificare il nome del database nella richiesta di connessione. È consentito un solo database per connessione. Tuttavia, un client può aprire più connessioni al server, connettendosi a uno o più database contemporaneamente.



Creazione di un database in PostgreSQL

1. Apertura di una connessione al server

Per creare un nuovo database, connettiti prima al server PostgreSQL:





$ sudo -io -In postgres
$psql

Si noti che la creazione del database è un'operazione limitata. Solo gli utenti con privilegi sufficienti possono eseguire l'azione.



2. Elenco dei database correnti
Eseguire la seguente query in psql per stampare l'elenco dei database sul server:

$ \elenco

Durante l'installazione, PostgreSQL crea il primo database del server che è 'postgres'. Vengono inoltre creati due database aggiuntivi:

  • modello1 : Ogni volta che si crea un nuovo database all'interno del cluster, 'template1' viene clonato.
  • modello0 : Serve come una copia incontaminata del contenuto originale di 'template1'.

Non creare oggetti all'interno di 'template1' a meno che non desideri che facciano parte di ogni database appena creato. Se 'template1' viene modificato, 'template0' può essere clonato per creare un nuovo database senza aggiunte locali al sito.

3. Creazione di un nuovo database
Per creare un nuovo database, esegui la seguente query in psql:

$ CREA DATABASE < nome_db > ;

Qui:

  • Il ruolo corrente viene assunto automaticamente come proprietario del nuovo database.
  • Il proprietario ha il privilegio di cambiare il proprietario in un ruolo diverso.

Controllare l'elenco dei database se l'azione ha esito positivo utilizzando il seguente comando:

$ \elenco

Con un account privilegiato, possiamo anche creare un database per qualcun altro usando il seguente comando:

$ CREA DATABASE < nome_db > PROPRIETARIO < ruolo > ;

Il comando Createdb

Nel metodo precedente, abbiamo dovuto eseguire più passaggi per creare un database:

  • Connettiti al server PostgreSQL usando psql.
  • Eseguire le query per creare un nuovo database.

Per semplificare il processo, PostgreSQL viene fornito con il comando createdb. Fondamentalmente funge da wrapper per queste azioni. Possiamo eseguire direttamente il comando createdb dalla shell.

1. Creazione di un database utilizzando Createdb
Per creare un database utilizzando il server database predefinito, utilizzare il seguente comando:

$ creatob < nome_db >

Verificare l'azione utilizzando il seguente comando:

$ psql -C '\elenco'

Con varie opzioni, possiamo anche mettere a punto le operazioni createb. Dai un'occhiata al seguente esempio:

$ creatob -H < ospite > -P < porta > -T < modello > --nome utente = < nome utente > --parola d'ordine --manutenzione-db = < nome_db_manutenzione > < nome_db >

Qui:

  • -H : Questo parametro specifica la posizione del server PostgreSQL (indirizzo IP o nome di dominio).
  • -P : la porta per la connessione al server.
  • -T : il modello da utilizzare durante la creazione del nuovo database. Può essere template0, template1 o qualsiasi altro database.
  • : Fa eco alla query equivalente.
  • -nome utente : Il nome utente per connettersi al server.
  • -parola d'ordine : Forza il comando createdb a richiedere una password prima di connettersi al server. Nella maggior parte dei casi, non è necessario poiché createdb richiede automaticamente una password se il server lo richiede. Tuttavia, spende un tentativo di connessione per capirlo.
  • –manutenzione-db : il database a cui connettersi durante la creazione del nuovo database. Se non specificato, postgres viene assunto per impostazione predefinita. Se postgres non esiste, si presume 'template1'.

È ora di metterlo in atto. Eseguire il seguente comando createdb:

$ creatob -H localhost -P 5432 -T modello0 --nome utente =postgres test_db

Come suggerisce l'output, è equivalente alla seguente query:

$ CREATE DATABASE test_db TEMPLATE template0;

Gestione aggiuntiva del database

In questa sezione, diamo un'occhiata ad altre operazioni di gestione del database.

Elencare i database

Esistono un paio di modi per elencare i database archiviati nel server. Abbiamo già dimostrato un metodo nelle sezioni precedenti:

$ \elenco

Un altro modo è esaminare il catalogo di sistema 'pg_database':

$ SELECT nomedati FROM pg_database;

Eliminazione di un database

Per eliminare un database, esegui la seguente query:

$ SCARICA BANCA DATI < nome_db > ;

Simile a createdb, PostgreSQL viene fornito anche con il comando dropdb che possiamo eseguire dalla shell. Dai un'occhiata al seguente esempio:

$ dropdb -H < ospite > -P < porta > --nome utente = < nome utente > --parola d'ordine < nome_db >

Qui:

  • -H : il server PostgreSQL a cui connettersi.
  • -P : la porta del server PostgreSQL a cui connettersi.
  • : Fa eco alla query equivalente.

Si noti che l'utente deve disporre di privilegi sufficienti per eliminare un database.

Modifica della proprietà di un database

Il proprietario di un database può eseguire qualsiasi azione sul database, inclusa l'eliminazione del database. Per impostazione predefinita, l'utente che crea il database viene assegnato come proprietario. Tuttavia, possiamo riassegnare la proprietà a un altro utente.

Per modificare il proprietario del database, esegui la seguente query in psql:

$ ALTERARE DATABASE < nome_db > PROPRIETARIO DI < nuovo proprietario > ;

Questo, tuttavia, non cambierà la proprietà degli oggetti all'interno del database (comprese le tabelle). In questi casi, dobbiamo usare una query diversa. Connettiti al database di destinazione ed esegui la seguente query:

$ RIASSEGNA PROPRIETÀ DI < vecchio_proprietario > A < nuovo proprietario > ;

Sebbene conveniente, questa query presenta alcuni avvertimenti:

  • Quando ci si connette a postgres (database), può cambiare la proprietà di più database contemporaneamente.
  • Non utilizzare questa query quando il proprietario originale è postgres in quanto potrebbe danneggiare l'intera istanza database.

Bonus: eseguire le query dalla shell

Finora, abbiamo eseguito le query dalla console PostgreSQL. E se volessi incorporare alcune funzionalità di database nei tuoi script? I comandi createdb e dropdb possono eseguire solo operazioni specifiche.

Per risolvere questo, possiamo usare psql come condotto. Oltre alla shell interattiva standard, psql può anche eseguire le query al volo.

Metodo 1:

La struttura dei comandi è la seguente:

$ psql -H < ospite > -P < porta > -IN < nome utente > -D < Banca dati > -C < domanda >

Qui:

  • -H : l'indirizzo del server PostgreSQL.
  • -P : la porta a cui connettersi (il valore predefinito è 5432).
  • -IN : l'utente a cui connettersi come.
  • -D : il database a cui connettersi.
  • -C : la query da eseguire.

Metodo 2:

PostgreSQL ha un'altra caratteristica interessante: l'URI di connessione. È un modo intelligente per codificare ordinatamente tutti i parametri di connessione. La struttura di un URI di connessione è la seguente:

$ postgresql: //< nome utente > : < parola d'ordine >@< ospite > : < porta >/< nome_db >

Qui:

  • postgresql O postgres : il protocollo univoco per l'URI di connessione PostgreSQL.

Per connettersi a un database utilizzando l'URI di connessione, utilizzare il seguente comando psql:

$ psql -D < connection_uri > -C < domanda >

Conclusione

Abbiamo appreso vari modi per creare database in PostgreSQL. Abbiamo dimostrato come creare un database utilizzando la query CREATE DATABASE. Abbiamo anche presentato la creazione del database utilizzando il comando createdb. Inoltre, abbiamo anche sorvolato su alcune altre importanti azioni di gestione del database come l'eliminazione dei database e la modifica del proprietario.

Interessato a saperne di più su PostgreSQL? Dai un'occhiata al Sottocategoria PostgreSQL y che contiene numerose guide su varie funzionalità; Per esempio: funzioni , espressioni regolari , tabelle , e altro ancora.