PostgreSQL è uno dei sistemi di database degli oggetti più popolari. È un software gratuito e open source che estende la lingua SQL con funzionalità aggiuntive per gestire i complessi carichi di lavoro dei dati. Può funzionare con vari tipi di dati, affidabile e sicuro. Ulteriori informazioni sulle caratteristiche di PostgreSQL.
In questa guida, impareremo di più sulla creazione di tabelle in uno schema in PostgreSQL.
Schemi in Postgresql
Un database PostgreSQL può contenere uno o più schemi denominati, ogni schema contenente tabelle.
Lo stesso nome dell'oggetto può essere assegnato in più schemi senza conflitto. Ad esempio, il seguente schema/tabella è valido:
Puoi pensare a schemi come directory a livello di sistema operativo. La differenza è che non ci possono essere schemi nidificati. Scopri di più in modo approfondito sullo schema sulla documentazione di PostgreSQL.
Ci possono essere più motivi per implementare gli schemi:
Tabelle in PostgreSQL
Qualsiasi database relazionale è costituito da più tabelle correlate, ciascuna costituita da righe e colonne. PostgreSQL viene fornito con diverse tabelle integrate che contengono varie informazioni di sistema. Tuttavia, possiamo anche creare nuove tabelle in database e schemi definiti dall'utente.
Prerequisiti:
Per eseguire i passaggi dimostrati in questa guida, avrai bisogno dei seguenti componenti:
Ai fini di questa guida, useremo Postgres Per eseguire tutte le azioni in PostgreSQL.
Creazione di tabelle in uno schema
Creazione di un database demo
Come accennato in precedenza, gli schemi esistono sotto un database. A fini dimostrativi, creiamo un database fittizio, evitando l'interruzione di qualsiasi database esistente.
Accedere al guscio postgresql come Postgres:
$ sudo -i -u postgres psqlCrea un nuovo database demo_db:
$ Crea database demo_db;Verifica se il database viene creato correttamente:
$ \ lInfine, connettiti al database appena creato:
$ \ connect demo_db;Lo schema pubblico
Qualsiasi nuovo database in PostgreSQL viene fornito con uno schema predefinito - pubblico. Se si tenta di creare un oggetto senza specificare il nome dello schema, lo schema pubblico viene selezionato per impostazione predefinita.
Il seguente comando stampare tutto lo schema disponibile nel database PostgreSQL:
$ \ dnIn alternativa, possiamo anche utilizzare la seguente query SQL:
$ Seleziona * da pg_catalog.pg_namespace;Creare un nuovo schema
Per creare un nuovo schema sotto un database specifico, la struttura dei comandi è la seguente:
$ Crea schema;Seguendo la regola, creiamo un nuovo schema demo_schema:
$ Crea schema demo_schema;Controllare l'elenco degli schemi per la verifica:
$ \ dnCreare una tabella in uno schema
Ora che abbiamo creato lo schema target, possiamo popolarlo con le tabelle.
La sintassi per la creazione di una tabella è la seguente:
CREA TABELLA . (Qui:
Per dimostrazione, creiamo una semplice tabella:
Crea table demo_schema.demo_table (Qui:
Possiamo verificare l'esistenza della tabella usando la seguente query:
$ Seleziona * da demo_schema.demo_table;Inserire i dati nella tabella
Con la tabella in atto, ora possiamo inserire alcuni valori:
Inserire in demo_schema.demo_table (nome, id)Controlla il contenuto della tabella:
$ Seleziona * da demo_schema.demo_table;Gestione dello schema
Autorizzazioni dello schema
Con l'aiuto dell'autorizzazione dello schema, possiamo gestire quale ruolo può eseguire quale azione su uno schema specifico. Tra tutti i possibili privilegi, gli schemi supportano solo Creare e utilizzare.
Per aggiornare l'autorizzazione dello schema per un ruolo particolare, la struttura di comando è la seguente:
$ Grant sullo schema a;Per revocare l'autorizzazione dello schema per un ruolo particolare, la struttura di comando è la seguente:
$ Revoca sullo schema a;Verificare la modifica usando il seguente comando:
$ \ dn+Altera le proprietà dello schema
Con l'aiuto del Alter schema Dichiarazione, possiamo modificare le varie proprietà di uno schema. Ad esempio: proprietà, nome dello schema, ecc.
Per modificare il nome dello schema, utilizzare la seguente query:
$ Alter schema Rinomina;Per cambiare la proprietà di uno schema, utilizzare la seguente domanda:
$ Alter Schema proprietario a;Si noti che per modificare la proprietà, l'utente attuale deve avere il CREARE permesso allo schema.
Eliminazione di uno schema
Se uno schema non è più necessario, possiamo eliminarlo usando il GOCCIOLARE Domanda:
$ Drop schemaSe lo schema contiene qualsiasi oggetto, abbiamo bisogno del CASCATA modificatore:
$ Drop Schema Cascade;Gestione delle tabelle
Autorizzazioni della tabella
Come lo schema, ogni tabella viene fornita anche con la gestione delle autorizzazioni, che definisce ciò che l'azione può eseguire sul tavolo.
Per controllare le autorizzazioni di una tabella, utilizzare il seguente comando in PSQL:
$ \ dpAltera le proprietà della tabella
Con l'aiuto del Alter tabella Dichiarazione, possiamo modificare i numerosi aspetti di una tabella già esistente.
Ad esempio, per far cadere una colonna, la query assomiglia a questa:
Colonna di drop tabella $ alter;Per aggiungere una nuova colonna, possiamo usare la seguente query:
$ Alter tabella Aggiungi colonna;Possiamo anche impostare la compressione per una colonna specifica:
Compressione del set di colonne $ alter;Eliminazione di un tavolo
Per eliminare una tabella da uno schema, possiamo usare la query di drop table:
$ Drop table;Si noti che a differenza degli schemi, il Tavolino La query non produrrà un errore se la tabella è vuota o meno.
Conclusione
In questa guida, abbiamo dimostrato come creare le tabelle in uno schema in Postgresql. Abbiamo creato uno schema fittizio all'interno di un database fittizio e creato una tabella all'interno dello schema. Questa guida è stata anche presentata su come gestire le varie proprietà di schemi e tabelle.
Per una migliore integrità dei dati, è possibile configurare una replica logica PostgreSQL. Per mantenere sano il database PostgreSQL, è possibile configurare l'autovacuum per pulire le tuple morte che sono lasciate dai record eliminati.
Per ulteriori guide PostgreSQL, dai un'occhiata alla sottocategoria PostgreSQL.