Opret en database i PostgreSQL ved hjælp af createb-kommandoen

Opret En Database I Postgresql Ved Hjaelp Af Createb Kommandoen



I denne vejledning lærer vi om oprettelse af en database i PostgreSQL ved hjælp af kommandoen createb.

Forudsætninger:

For at udføre de trin, der er vist i denne vejledning, skal du bruge følgende komponenter:

  • Et korrekt konfigureret Linux-system. Overvej til test opsætning af en virtuel Ubuntu-maskine ved hjælp af VirtualBox .
  • Installeret og konfigureret PostgreSQL. Lær mere om installation af PostgreSQL på Ubuntu .
  • Adgang til en ikke-root-bruger med sudo-privilegium .

PostgreSQL-databaser

PostgreSQL er et gratis og open source SQL-kompatibelt objektrelationelt databasesystem. Det kan fungere med både relationel (SQL) og ikke-relationel (JSON) forespørgsel. Lær mere om funktioner i PostgreSQL .







I PostgreSQL er datahierarkiet som følger:



  • klynge
  • database
  • skema
  • tabel (eller andre objekter; for eksempel funktion)

Enhver PostgreSQL-instans kan acceptere flere klientforbindelser. Klienten skal angive databasenavnet i forbindelsesanmodningen. Kun én database pr. forbindelse er tilladt. En klient kan dog åbne flere forbindelser til serveren og oprette forbindelse til en eller flere databaser samtidigt.



Oprettelse af en database i PostgreSQL

1. Åbning af en forbindelse til serveren

For at oprette en ny database skal du først oprette forbindelse til PostgreSQL-serveren:





$ sudo -jeg -i postgres
$ psql

Bemærk, at oprettelse af database er en begrænset handling. Kun brugere med tilstrækkelige rettigheder har tilladelse til at udføre handlingen.



2. Liste over de aktuelle databaser
Kør følgende forespørgsel i psql for at udskrive listen over databaser på serveren:

$ \liste

Under installationen opretter PostgreSQL den første database på serveren, som er 'postgres'. Der oprettes også to yderligere databaser:

  • skabelon 1 : Når du opretter en ny database i klyngen, klones 'skabelon1'.
  • skabelon0 : Den fungerer som en uberørt kopi af det originale indhold af 'skabelon1'.

Opret ikke objekter i 'skabelon1', medmindre du ønsker, at de skal være en del af enhver nyoprettet database. Hvis 'skabelon1' er ændret, kan 'skabelon0' klones for at skabe en ny database uden nogen sted-lokale tilføjelser.

3. Oprettelse af en ny database
For at oprette en ny database skal du køre følgende forespørgsel i psql:

$ OPRET DATABASE < db_navn > ;

Her:

  • Den aktuelle rolle overtages automatisk som ejer af den nye database.
  • Ejeren har privilegiet til at ændre ejeren til en anden rolle.

Tjek listen over databaser, hvis handlingen lykkes ved hjælp af følgende kommando:

$ \liste

Med en privilegeret konto kan vi også oprette en database for en anden ved at bruge følgende kommando:

$ OPRET DATABASE < db_navn > EJER < rolle > ;

Den skabte kommando

I den tidligere metode skulle vi gennemgå flere trin for at oprette en database:

  • Opret forbindelse til PostgreSQL-serveren ved hjælp af psql.
  • Kør forespørgslerne for at oprette en ny database.

For at strømline processen kommer PostgreSQL med kommandoen createb. Det fungerer grundlæggende som en indpakning for disse handlinger. Vi kan køre createb kommandoen direkte fra skallen.

1. Oprettelse af en database ved hjælp af Createdb
For at oprette en database ved hjælp af standarddatabaseserveren skal du bruge følgende kommando:

$ skabtb < db_navn >

Bekræft handlingen ved hjælp af følgende kommando:

$ psql -c '\liste'

Med forskellige muligheder kan vi også finjustere de oprettede operationer. Tjek følgende eksempel:

$ skabtb -h < vært > -s < Havn > -T < skabelon > -Det er --brugernavn = < brugernavn > --adgangskode --vedligeholdelse-db = < vedligeholdelse_db_navn > < db_navn >

Her:

  • -h : Denne parameter angiver PostgreSQL-serverplaceringen (IP-adresse eller domænenavn).
  • -s : Porten til at oprette forbindelse til serveren.
  • -T : Skabelonen, der skal bruges ved oprettelse af den nye database. Det kan være skabelon0, skabelon1 eller enhver anden database.
  • -Det er : Ekko den tilsvarende forespørgsel.
  • – brugernavn : Brugernavnet til at oprette forbindelse til serveren.
  • -adgangskode : Tvinger kommandoen createb til at bede om en adgangskode, før der oprettes forbindelse til serveren. I de fleste tilfælde er det ikke påkrævet, da createb automatisk beder om en adgangskode, hvis serveren kræver det. Den bruger dog et forbindelsesforsøg på at finde ud af det.
  • –vedligeholdelse-db : Databasen, der skal oprettes forbindelse til, når den nye database oprettes. Hvis det ikke er angivet, antages postgres som standard. Hvis postgres ikke eksisterer, antages 'skabelon1'.

Tid til at sætte det i værk. Kør følgende createb-kommando:

$ skabtb -h lokal vært -s 5432 -T skabelon0 -Det er --brugernavn =postgres test_db

Som outputtet antyder, svarer det til følgende forespørgsel:

$ CREATE DATABASE test_db SKABELON skabelon0;

Yderligere databasestyring

Lad os i dette afsnit tage et kig på andre databasestyringsoperationer.

Liste over databaserne

Der er et par måder at liste de databaser, der er gemt på serveren. Vi har allerede demonstreret en metode i de foregående afsnit:

$ \liste

En anden måde er at undersøge 'pg_database' systemkataloget:

$ VÆLG datanavn FRA pg_database;

Sletning af en database

For at slette en database skal du køre følgende forespørgsel:

$ SLIP DATABASE < db_navn > ;

I lighed med createb kommer PostgreSQL også med dropdb-kommandoen, som vi kan køre fra skallen. Tag et kig på følgende eksempel:

$ dropdb -h < vært > -s < Havn > --brugernavn = < brugernavn > --adgangskode -Det er < db_navn >

Her:

  • -h : Den PostgreSQL-server, der skal oprettes forbindelse til.
  • -s : Porten på PostgreSQL-serveren, der skal oprettes forbindelse til.
  • -Det er : Ekko den tilsvarende forespørgsel.

Bemærk, at brugeren skal have tilstrækkelige rettigheder til at slette en database.

Ændring af et databaseejerskab

Ejeren af ​​en database kan udføre enhver handling på databasen, herunder sletning af databasen. Som standard er den bruger, der opretter databasen, tildelt som ejer. Vi kan dog overdrage ejerskabet til en anden bruger.

For at ændre ejeren af ​​databasen skal du køre følgende forespørgsel i psql:

$ ÆNDRE DATABASE < db_navn > EJER TIL < ny_ejer > ;

Dette vil dog ikke ændre ejerskabet af objekterne i databasen (inklusive tabeller). I sådanne tilfælde skal vi bruge en anden forespørgsel. Opret forbindelse til måldatabasen og kør følgende forespørgsel:

$ GENOVERDRAG EJET AF < gammel_ejer > TIL < ny_ejer > ;

Selvom det er praktisk, kommer denne forespørgsel med et par forbehold:

  • Når du opretter forbindelse til postgres (database), kan den ændre ejerskabet af flere databaser på én gang.
  • Brug ikke denne forespørgsel, når den oprindelige ejer er postgres, da det kan ødelægge hele DB-forekomsten.

Bonus: Kørsel af forespørgslerne fra skallen

Indtil videre kører vi forespørgslerne fra PostgreSQL-konsollen. Hvad hvis du vil inkorporere nogle databasefunktioner i dine scripts? Kommandoerne createb og dropdb kan kun udføre specifikke operationer.

For at løse dette kan vi bruge psql som en kanal. Udover den standard interaktive shell, kan psql også køre forespørgslerne direkte.

Metode 1:

Kommandostrukturen er som følger:

$ psql -h < vært > -s < Havn > -I < brugernavn > -d < database > -c < forespørgsel >

Her:

  • -h : Adressen på PostgreSQL-serveren.
  • -s : Porten, der skal oprettes forbindelse til (standardværdien er 5432).
  • -I : Brugeren at oprette forbindelse til som.
  • -d : Databasen, der skal oprettes forbindelse til.
  • -c : Forespørgslen, der skal udføres.

Metode 2:

PostgreSQL kommer med en anden interessant funktion: forbindelses-URI. Det er en smart måde at kode alle forbindelsesparametrene pænt på. Strukturen af ​​en forbindelses-URI er som følger:

$ postgresql: //< brugernavn > : < adgangskode >@< vært > : < Havn >/< db_navn >

Her:

  • postgresql eller postgres : Den unikke protokol for PostgreSQL-forbindelses-URI.

For at oprette forbindelse til en database ved hjælp af forbindelses-URI'en skal du bruge følgende psql-kommando:

$ psql -d < forbindelse_uri > -c < forespørgsel >

Konklusion

Vi lærte om forskellige måder at oprette databaser på i PostgreSQL. Vi demonstrerede, hvordan man opretter en database ved hjælp af CREATE DATABASE-forespørgslen. Vi fremviste også databaseoprettelsen ved hjælp af createb-kommandoen. Derudover har vi også sløjfet nogle andre vigtige databasestyringshandlinger som sletning af databaser og ændring af ejer.

Interesseret i at lære mere om PostgreSQL? Tjek ud PostgreSQL underkategori y, der indeholder talrige vejledninger om forskellige funktioner; for eksempel: funktioner , regulære udtryk , borde , og meget mere.