Skapa en databas i PostgreSQL med kommandot createb

Skapa En Databas I Postgresql Med Kommandot Createb



I den här guiden kommer vi att lära oss hur du skapar en databas i PostgreSQL med kommandot createb.

Förutsättningar:

För att utföra stegen som visas i den här guiden behöver du följande komponenter:

  • Ett korrekt konfigurerat Linux-system. För testning, överväg ställa in en virtuell Ubuntu-maskin med VirtualBox .
  • Installerade och konfigurerade PostgreSQL. Lära sig mer om installera PostgreSQL på Ubuntu .
  • Tillgång till en icke-rootanvändare med sudo-behörighet .

PostgreSQL-databaser

PostgreSQL är ett gratis och öppen källkod SQL-kompatibelt objektrelationsdatabassystem. Det kan fungera med både relationell (SQL) och icke-relationell (JSON) fråga. Lär dig mer om funktioner i PostgreSQL .







I PostgreSQL är datahierarkin som följer:



  • klunga
  • databas
  • schema
  • tabell (eller andra objekt; till exempel funktion)

Alla PostgreSQL-instanser kan acceptera flera klientanslutningar. Klienten måste ange databasnamnet i anslutningsbegäran. Endast en databas per anslutning är tillåten. En klient kan dock öppna flera anslutningar till servern och ansluta till en eller flera databaser samtidigt.



Skapa en databas i PostgreSQL

1. Öppna en anslutning till servern

För att skapa en ny databas, anslut till PostgreSQL-servern först:





$ sudo -jag -i postgres
$ psql

Observera att skapande av databas är en begränsad operation. Endast användare med tillräcklig behörighet får utföra åtgärden.



2. Lista de aktuella databaserna
Kör följande fråga i psql för att skriva ut listan över databaser på servern:

$ \lista

Under installationen skapar PostgreSQL den första databasen för servern som är 'postgres'. Två ytterligare databaser skapas också:

  • mall1 : Närhelst du skapar en ny databas i klustret, klonas 'mall1'.
  • mall0 : Den fungerar som en ren kopia av originalinnehållet i 'mall1'.

Skapa inte objekt inom 'mall1' om du inte vill att de ska vara en del av varje nyskapad databas. Om 'mall1' modifieras kan 'mall0' klonas för att skapa en ny databas utan några platslokala tillägg.

3. Skapa en ny databas
För att skapa en ny databas, kör följande fråga i psql:

$ SKAPA DATABAS < db_name > ;

Här:

  • Den aktuella rollen övertas automatiskt som ägare till den nya databasen.
  • Ägaren har privilegiet att byta ägare till en annan roll.

Kontrollera listan över databaser om åtgärden lyckades med följande kommando:

$ \lista

Med ett privilegierat konto kan vi också skapa en databas för någon annan med följande kommando:

$ SKAPA DATABAS < db_name > ÄGARE < roll > ;

Kommandot Createdb

I den tidigare metoden var vi tvungna att gå igenom flera steg för att skapa en databas:

  • Anslut till PostgreSQL-servern med psql.
  • Kör frågorna för att skapa en ny databas.

För att effektivisera processen kommer PostgreSQL med kommandot createb. Det fungerar i princip som ett omslag för dessa åtgärder. Vi kan köra kommandot createb direkt från skalet.

1. Skapa en databas med Createdb
För att skapa en databas med standarddatabasservern, använd följande kommando:

$ skapadb < db_name >

Verifiera åtgärden med följande kommando:

$ psql -c '\lista'

Med olika alternativ kan vi också finjustera de skapade operationerna. Kolla in följande exempel:

$ skapadb -h < värd > -s < hamn > -T < mall > -Det är --Användarnamn = < Användarnamn > --Lösenord --underhåll-db = < underhållsdb_namn > < db_name >

Här:

  • -h : Den här parametern anger PostgreSQL-serverns plats (IP-adress eller domännamn).
  • -s : Porten för att ansluta till servern.
  • -T : Mallen som ska användas när du skapar den nya databasen. Det kan vara mall0, mall1 eller någon annan databas.
  • -Det är : Ekar motsvarande fråga.
  • -Användarnamn : Användarnamnet för att ansluta till servern.
  • -Lösenord : Tvingar kommandot createb att fråga efter ett lösenord innan du ansluter till servern. I de flesta fall är det inte nödvändigt eftersom createb automatiskt ber om ett lösenord om servern kräver det. Det spenderar dock ett anslutningsförsök på att ta reda på det.
  • –underhåll-db : Databasen att ansluta till när den nya databasen skapas. Om det inte anges antas postgres som standard. Om postgres inte existerar antas 'mall1'.

Dags att sätta det i verket. Kör följande createb-kommando:

$ skapadb -h lokal värd -s 5432 -T mall0 -Det är --Användarnamn =postgres test_db

Som utdata antyder, motsvarar det följande fråga:

$ CREATE DATABASE test_db MALL mall0;

Ytterligare databashantering

Låt oss i det här avsnittet ta en titt på andra databashanteringsoperationer.

Lista databaserna

Det finns ett par sätt att lista de databaser som är lagrade på servern. Vi har redan demonstrerat en metod i de föregående avsnitten:

$ \lista

Ett annat sätt är att undersöka systemkatalogen 'pg_database':

$ VÄLJ datanamn FRÅN pg_database;

Ta bort en databas

För att ta bort en databas, kör följande fråga:

$ SLIP DATABAS < db_name > ;

I likhet med createb kommer PostgreSQL också med kommandot dropdb som vi kan köra från skalet. Ta en titt på följande exempel:

$ dropdb -h < värd > -s < hamn > --Användarnamn = < Användarnamn > --Lösenord -Det är < db_name >

Här:

  • -h : PostgreSQL-servern att ansluta till.
  • -s : Porten på PostgreSQL-servern att ansluta till.
  • -Det är : Ekar motsvarande fråga.

Observera att användaren måste ha tillräcklig behörighet för att ta bort en databas.

Ändra ett databasägande

Ägaren av en databas kan utföra vilken åtgärd som helst på databasen, inklusive att ta bort databasen. Som standard tilldelas användaren som skapar databasen som ägare. Däremot kan vi överföra äganderätten till en annan användare.

För att ändra ägaren till databasen, kör följande fråga i psql:

$ ÄNDRA DATABAS < db_name > ÄGARE TILL < ny ägare > ;

Detta kommer dock inte att ändra ägandet av objekten i databasen (inklusive tabeller). I sådana fall måste vi använda en annan fråga. Anslut till måldatabasen och kör följande fråga:

$ ÅTERTILLDELA ÄGS AV < gammal_ägare > TILL < ny ägare > ;

Även om det är praktiskt, kommer den här frågan med några varningar:

  • När du ansluter till postgres (databas), kan den ändra ägandet av flera databaser samtidigt.
  • Använd inte den här frågan när den ursprungliga ägaren är postgres eftersom det kan skada hela DB-instansen.

Bonus: Kör frågorna från skalet

Hittills kör vi frågorna från PostgreSQL-konsolen. Vad händer om du vill införliva några databasfunktioner i dina skript? Kommandona createb och dropdb kan bara utföra specifika operationer.

För att lösa detta kan vi använda psql som en kanal. Förutom det vanliga interaktiva skalet kan psql också köra frågorna direkt.

Metod 1:

Kommandostrukturen är som följer:

$ psql -h < värd > -s < hamn > -I < Användarnamn > -d < databas > -c < fråga >

Här:

  • -h : Adressen till PostgreSQL-servern.
  • -s : Porten att ansluta till (standardvärdet är 5432).
  • -I : Användaren att ansluta till som.
  • -d : Databasen att ansluta till.
  • -c : Frågan som ska köras.

Metod 2:

PostgreSQL kommer med en annan intressant funktion: anslutnings-URI. Det är ett smart sätt att snyggt koda alla anslutningsparametrar. Strukturen för en anslutnings-URI är som följer:

$ postgresql: //< Användarnamn > : < Lösenord >@< värd > : < hamn >/< db_name >

Här:

  • postgresql eller postgres : Det unika protokollet för PostgreSQL-anslutnings-URI.

För att ansluta till en databas med anslutnings-URI, använd följande psql-kommando:

$ psql -d < connection_uri > -c < fråga >

Slutsats

Vi lärde oss om olika sätt att skapa databaser i PostgreSQL. Vi visade hur man skapar en databas med hjälp av CREATE DATABASE-frågan. Vi visade också upp databasskapandet med kommandot createb. Dessutom har vi även förbigått några andra viktiga databashanteringsåtgärder som att ta bort databaser och byta ägare.

Intresserad av att lära dig mer om PostgreSQL? Kolla in PostgreSQL underkategori y som innehåller många guider om olika funktioner; till exempel: funktioner , vanliga uttryck , tabeller , och mycket mer.