Opprett en database i PostgreSQL ved å bruke createb-kommandoen

Opprett En Database I Postgresql Ved A Bruke Createb Kommandoen



I denne veiledningen vil vi lære om hvordan du oppretter en database i PostgreSQL ved å bruke createb-kommandoen.

Forutsetninger:

For å utføre trinnene som er demonstrert i denne veiledningen, trenger du følgende komponenter:

  • Et riktig konfigurert Linux-system. For testing, vurder sette opp en virtuell Ubuntu-maskin ved hjelp av VirtualBox .
  • Installert og konfigurert PostgreSQL. Lære mer om installere PostgreSQL på Ubuntu .
  • Tilgang til en ikke-rootbruker med sudo-privilegium .

PostgreSQL-databaser

PostgreSQL er et gratis og åpen kildekode SQL-kompatibelt objektrelasjonsdatabasesystem. Den kan fungere med både relasjonell (SQL) og ikke-relasjonell (JSON) spørring. Lær mer om funksjoner i PostgreSQL .







I PostgreSQL er datahierarkiet som følger:



  • klynge
  • database
  • skjema
  • tabell (eller andre objekter; for eksempel funksjon)

Enhver PostgreSQL-forekomst kan godta flere klienttilkoblinger. Klienten må spesifisere databasenavnet i tilkoblingsforespørselen. Bare én database per tilkobling er tillatt. Imidlertid kan en klient åpne flere tilkoblinger til serveren, koble til en eller flere databaser samtidig.



Opprette en database i PostgreSQL

1. Åpne en tilkobling til serveren

For å opprette en ny database, koble til PostgreSQL-serveren først:





$ sudo -Jeg -i postgres
$ psql

Merk at databaseoppretting er en begrenset operasjon. Bare brukere med tilstrekkelig rettigheter har lov til å utføre handlingen.



2. Liste over gjeldende databaser
Kjør følgende spørring i psql for å skrive ut listen over databaser på serveren:

$ \liste

Under installasjonen oppretter PostgreSQL den første databasen til serveren som er 'postgres'. To ekstra databaser er også opprettet:

  • mal1 : Hver gang du oppretter en ny database i klyngen, klones 'mal1'.
  • mal0 : Den fungerer som en uberørt kopi av det originale innholdet i 'mal1'.

Ikke lag objekter i 'mal1' med mindre du vil at de skal være en del av hver nyopprettet database. Hvis 'mal1' er endret, kan 'mal0' klones for å lage en ny database uten noen stedslokale tillegg.

3. Opprette en ny database
For å opprette en ny database, kjør følgende spørring i psql:

$ LAG DATABASE < db_navn > ;

Her:

  • Den nåværende rollen overtas automatisk som eier av den nye databasen.
  • Eieren har privilegiet til å endre eieren til en annen rolle.

Sjekk listen over databaser hvis handlingen er vellykket ved å bruke følgende kommando:

$ \liste

Med en privilegert konto kan vi også opprette en database for noen andre ved å bruke følgende kommando:

$ LAG DATABASE < db_navn > EIEREN < rolle > ;

Createb-kommandoen

I den forrige metoden måtte vi gå gjennom flere trinn for å lage en database:

  • Koble til PostgreSQL-serveren ved hjelp av psql.
  • Kjør spørringene for å opprette en ny database.

For å effektivisere prosessen kommer PostgreSQL med createb-kommandoen. Det fungerer i utgangspunktet som en innpakning for disse handlingene. Vi kan kjøre createb-kommandoen direkte fra skallet.

1. Opprette en database ved å bruke Createdb
For å opprette en database med standard databaseserver, bruk følgende kommando:

$ opprettetb < db_navn >

Bekreft handlingen ved å bruke følgende kommando:

$ psql -c '\liste'

Med ulike alternativer kan vi også finjustere de opprettede operasjonene. Sjekk ut følgende eksempel:

$ opprettetb -h < vert > -s < havn > -T < mal > -Det er --brukernavn = < brukernavn > --passord --vedlikehold-db = < vedlikeholdsdb_navn > < db_navn >

Her:

  • -h : Denne parameteren spesifiserer PostgreSQL-serverplasseringen (IP-adresse eller domenenavn).
  • -s : Porten for å koble til serveren.
  • -T : Malen som skal brukes når du oppretter den nye databasen. Det kan være template0, template1 eller en hvilken som helst annen database.
  • -Det er : Ekko den tilsvarende spørringen.
  • – brukernavn : Brukernavnet for å koble til serveren.
  • -passord : Tvinger createb-kommandoen til å be om et passord før den kobles til serveren. I de fleste tilfeller er det ikke nødvendig siden createb automatisk ber om et passord hvis serveren krever det. Den bruker imidlertid et tilkoblingsforsøk på å finne ut av det.
  • –vedlikehold-db : Databasen du skal koble til når du oppretter den nye databasen. Hvis ikke spesifisert, antas postgres som standard. Hvis postgres ikke eksisterer, antas 'mal1'.

På tide å sette det i aksjon. Kjør følgende createb-kommando:

$ opprettetb -h lokal vert -s 5432 -T mal0 -Det er --brukernavn =postgres test_db

Som utdataene antyder, tilsvarer det følgende spørring:

$ CREATE DATABASE test_db MAL mal0;

Ekstra databaseadministrasjon

I denne delen, la oss ta en titt på andre databasebehandlingsoperasjoner.

Liste over databasene

Det er et par måter å liste databasene som er lagret på serveren. Vi har allerede demonstrert en metode i de forrige avsnittene:

$ \liste

En annen måte er å undersøke systemkatalogen 'pg_database':

$ VELG datanavn FRA pg_database;

Sletting av en database

For å slette en database, kjør følgende spørring:

$ DROPPE DATABASE < db_navn > ;

I likhet med createb, kommer PostgreSQL også med dropdb-kommandoen som vi kan kjøre fra skallet. Ta en titt på følgende eksempel:

$ dropdb -h < vert > -s < havn > --brukernavn = < brukernavn > --passord -Det er < db_navn >

Her:

  • -h : PostgreSQL-serveren å koble til.
  • -s : Porten til PostgreSQL-serveren som skal kobles til.
  • -Det er : Ekko den tilsvarende spørringen.

Merk at brukeren må ha tilstrekkelig privilegium for å slette en database.

Endre et databaseeierskap

Eieren av en database kan utføre enhver handling på databasen, inkludert sletting av databasen. Som standard er brukeren som oppretter databasen tildelt som eier. Vi kan imidlertid overføre eierskapet til en annen bruker.

For å endre eieren av databasen, kjør følgende spørring i psql:

$ ENDRE DATABASE < db_navn > EIER TIL < ny_eier > ;

Dette vil imidlertid ikke endre eierskapet til objektene i databasen (inkludert tabeller). I slike tilfeller må vi bruke en annen spørring. Koble til måldatabasen og kjør følgende spørring:

$ TILDELE EID AV < gammel_eier > TIL < ny_eier > ;

Selv om det er praktisk, kommer dette spørringen med noen advarsler:

  • Når du kobler til postgres (database), kan den endre eierskapet til flere databaser samtidig.
  • Ikke bruk denne spørringen når den opprinnelige eieren er postgres, da det kan ødelegge hele DB-forekomsten.

Bonus: Å kjøre spørringene fra skallet

Så langt kjører vi spørringene fra PostgreSQL-konsollen. Hva om du vil inkludere noen databasefunksjoner i skriptene dine? Createb- og dropdb-kommandoene kan bare utføre spesifikke operasjoner.

For å løse dette kan vi bruke psql som en kanal. I tillegg til det standard interaktive skallet, kan psql også kjøre spørringene umiddelbart.

Metode 1:

Kommandostrukturen er som følger:

$ psql -h < vert > -s < havn > -I < brukernavn > -d < database > -c < spørsmål >

Her:

  • -h : Adressen til PostgreSQL-serveren.
  • -s : Porten som skal kobles til (standardverdien er 5432).
  • -I : Brukeren å koble til som.
  • -d : Databasen som skal kobles til.
  • -c : Spørringen som skal utføres.

Metode 2:

PostgreSQL kommer med en annen interessant funksjon: tilkoblings-URI. Det er en smart måte å kode alle tilkoblingsparametrene på. Strukturen til en tilkoblings-URI er som følger:

$ postgresql: //< brukernavn > : < passord >@< vert > : < havn >/< db_navn >

Her:

  • postgresql eller postgres : Den unike protokollen for PostgreSQL-tilkoblings-URI.

For å koble til en database ved hjelp av tilkoblings-URI, bruk følgende psql-kommando:

$ psql -d < forbindelse_uri > -c < spørsmål >

Konklusjon

Vi lærte om ulike måter å lage databaser på i PostgreSQL. Vi demonstrerte hvordan du oppretter en database ved å bruke CREATE DATABASE-spørringen. Vi viste også frem databaseopprettelsen ved hjelp av createb-kommandoen. I tillegg har vi også sluppet noen andre viktige databasebehandlingshandlinger som å slette databaser og endre eier.

Interessert i å lære mer om PostgreSQL? Sjekk ut PostgreSQL underkategori y som inneholder mange guider om ulike funksjoner; for eksempel: funksjoner , vanlig uttrykk , tabeller , og mye mer.