Vytvořte databázi v PostgreSQL pomocí příkazu createdb

Vytvorte Databazi V Postgresql Pomoci Prikazu Createdb



V této příručce se seznámíme s vytvářením databáze v PostgreSQL pomocí příkazu createdb.

Předpoklady:

K provedení kroků, které jsou uvedeny v této příručce, potřebujete následující součásti:

  • Správně nakonfigurovaný systém Linux. Pro testování zvažte nastavení virtuálního počítače Ubuntu pomocí VirtualBoxu .
  • Nainstalovaný a nakonfigurovaný PostgreSQL. Dozvědět se víc o instalace PostgreSQL na Ubuntu .
  • Přístup k a uživatel bez oprávnění root s oprávněním sudo .

PostgreSQL databáze

PostgreSQL je bezplatný a open source objektově-relační databázový systém kompatibilní s SQL. Dokáže pracovat s relačním (SQL) i nerelačním (JSON) dotazováním. Zjistěte více o funkce PostgreSQL .







V PostgreSQL je hierarchie dat následující:



  • shluk
  • databáze
  • schéma
  • tabulka (nebo jiné objekty; například funkce)

Jakákoli instance PostgreSQL může přijímat více připojení klientů. Klient musí zadat název databáze v požadavku na připojení. Je povolena pouze jedna databáze na připojení. Klient však může otevřít více připojení k serveru a současně se připojit k jedné nebo více databázím.



Vytvoření databáze v PostgreSQL

1. Otevření připojení k serveru

Chcete-li vytvořit novou databázi, připojte se nejprve k serveru PostgreSQL:





$ sudo -i -v postgres
$ psql

Všimněte si, že vytváření databáze je omezená operace. Akci mohou provádět pouze uživatelé s dostatečnými oprávněními.



2. Výpis aktuálních databází
Spuštěním následujícího dotazu v psql vytiskněte seznam databází na serveru:

$ \seznam

Během instalace PostgreSQL vytvoří první databázi serveru, která je „postgres“. Jsou také vytvořeny dvě další databáze:

  • šablona1 : Při vytváření jakékoli nové databáze v rámci clusteru se naklonuje „template1“.
  • šablona0 : Slouží jako nedotčená kopie původního obsahu „template1“.

Nevytvářejte objekty v rámci „template1“, pokud nechcete, aby byly součástí každé nově vytvořené databáze. Pokud je „template1“ upraveno, „template0“ lze naklonovat a vytvořit tak novou databázi bez jakýchkoli lokálních dodatků.

3. Vytvoření nové databáze
Chcete-li vytvořit novou databázi, spusťte následující dotaz v psql:

$ VYTVOŘIT DATABÁZI < název_db > ;

Tady:

  • Aktuální role je automaticky převzata jako vlastník nové databáze.
  • Vlastník má právo změnit vlastníka na jinou roli.

Pokud je akce úspěšná, zkontrolujte seznam databází pomocí následujícího příkazu:

$ \seznam

S privilegovaným účtem můžeme také vytvořit databázi pro někoho jiného pomocí následujícího příkazu:

$ VYTVOŘIT DATABÁZI < název_db > MAJITEL < role > ;

Příkaz Createdb

V předchozí metodě jsme museli projít několika kroky, abychom vytvořili databázi:

  • Připojte se k serveru PostgreSQL pomocí psql.
  • Spuštěním dotazů vytvořte novou databázi.

Pro zefektivnění procesu přichází PostgreSQL s příkazem createdb. V podstatě funguje jako obal pro tyto akce. Příkaz createdb můžeme spustit přímo z shellu.

1. Vytvoření databáze pomocí Createdb
Chcete-li vytvořit databázi pomocí výchozího databázového serveru, použijte následující příkaz:

$ vytvořenob < název_db >

Ověřte akci pomocí následujícího příkazu:

$ psql -C '\seznam'

Různými možnostmi můžeme také doladit vytvořené operace. Podívejte se na následující příklad:

$ vytvořenob -h < hostitel > -p < přístav > -T < šablona > -To je --uživatelské jméno = < uživatelské jméno > --Heslo --údržba-db = < název_databáze údržby > < název_db >

Tady:

  • -h : Tento parametr určuje umístění serveru PostgreSQL (IP adresa nebo název domény).
  • -p : Port pro připojení k serveru.
  • -T : Šablona, ​​která se použije při vytváření nové databáze. Může to být šablona0, šablona1 nebo jakákoli jiná databáze.
  • -To je : Odešle ekvivalentní dotaz.
  • – uživatelské jméno : Uživatelské jméno pro připojení k serveru.
  • -Heslo : Vynutí, aby příkaz createdb požadoval heslo před připojením k serveru. Ve většině případů to není vyžadováno, protože createdb automaticky vyzve k zadání hesla, pokud jej server vyžaduje. Stráví však pokus o připojení, aby to zjistil.
  • –údržba-db : Databáze, ke které se chcete připojit při vytváření nové databáze. Pokud není zadáno, předpokládá se postgres jako výchozí. Pokud postgres neexistuje, předpokládá se „template1“.

Čas to uvést do praxe. Spusťte následující příkaz createdb:

$ vytvořenob -h localhost -p 5432 -T šablona0 -To je --uživatelské jméno =postgres test_db

Jak naznačuje výstup, je ekvivalentní následujícímu dotazu:

$ CREATE DATABASE test_db TEMPLATE template0;

Dodatečná správa databáze

V této části se podíváme na další operace správy databází.

Výpis databází

Existuje několik způsobů, jak vytvořit seznam databází, které jsou uloženy na serveru. Jeden způsob jsme již demonstrovali v předchozích částech:

$ \seznam

Dalším způsobem je prozkoumat systémový katalog „pg_database“:

$ SELECT datove jmeno FROM pg_databaze;

Smazání databáze

Chcete-li odstranit databázi, spusťte následující dotaz:

$ DROP DATABASE < název_db > ;

Podobně jako createdb, PostgreSQL také přichází s příkazem dropdb, který můžeme spustit z shellu. Podívejte se na následující příklad:

$ dropdb -h < hostitel > -p < přístav > --uživatelské jméno = < uživatelské jméno > --Heslo -To je < název_db >

Tady:

  • -h : Server PostgreSQL, ke kterému se chcete připojit.
  • -p : Port serveru PostgreSQL, ke kterému se chcete připojit.
  • -To je : Odešle ekvivalentní dotaz.

Upozorňujeme, že uživatel musí mít dostatečná oprávnění k odstranění databáze.

Změna vlastnictví databáze

Vlastník databáze může s databází provádět jakoukoli akci, včetně smazání databáze. Ve výchozím nastavení je jako vlastník přiřazen uživatel, který vytváří databázi. Vlastnictví však můžeme přiřadit jinému uživateli.

Chcete-li změnit vlastníka databáze, spusťte následující dotaz v psql:

$ ALTER DATABÁZI < název_db > VLASTNÍK DO < nový majitel > ;

To však nezmění vlastnictví objektů v databázi (včetně tabulek). V takových případech musíme použít jiný dotaz. Připojte se k cílové databázi a spusťte následující dotaz:

$ REASSIGN OWN BY < starý_majitel > NA < nový majitel > ;

I když je tento dotaz pohodlný, přichází s několika upozorněními:

  • Při připojení k postgresu (databázi) může změnit vlastnictví více databází najednou.
  • Tento dotaz nepoužívejte, když je původním vlastníkem postgres, protože by to mohlo poškodit celou instanci DB.

Bonus: Spouštění dotazů z Shellu

Dotazy zatím spouštíme z konzole PostgreSQL. Co když chcete do svých skriptů začlenit některé databázové funkce? Příkazy createdb a dropdb mohou provádět pouze specifické operace.

K vyřešení tohoto problému můžeme použít psql jako kanál. Kromě standardního interaktivního shellu může psql také spouštět dotazy za běhu.

Metoda 1:

Struktura příkazu je následující:

$ psql -h < hostitel > -p < přístav > -V < uživatelské jméno > -d < databáze > -C < dotaz >

Tady:

  • -h : Adresa serveru PostgreSQL.
  • -p : Port pro připojení (výchozí hodnota je 5432).
  • -V : Uživatel, ke kterému se chcete připojit jako.
  • -d : Databáze, ke které se chcete připojit.
  • -C : Dotaz, který se má provést.

Metoda 2:

PostgreSQL přichází s další zajímavou funkcí: URI připojení. Je to chytrý způsob, jak úhledně zakódovat všechny parametry připojení. Struktura URI připojení je následující:

$ postgresql: //< uživatelské jméno > : < Heslo >>< hostitel > : < přístav >/< název_db >

Tady:

  • postgresql nebo postgres : Unikátní protokol pro PostgreSQL připojení URI.

Chcete-li se připojit k databázi pomocí identifikátoru URI připojení, použijte následující příkaz psql:

$ psql -d < connection_uri > -C < dotaz >

Závěr

Dozvěděli jsme se o různých způsobech vytváření databází v PostgreSQL. Ukázali jsme, jak vytvořit databázi pomocí dotazu CREATE DATABASE. Také jsme předvedli vytvoření databáze pomocí příkazu createdb. Kromě toho jsme také přehlédli některé další důležité akce správy databází, jako je mazání databází a změna vlastníka.

Máte zájem dozvědět se více o PostgreSQL? Podívejte se na Podkategorie PostgreSQL y, který obsahuje četné průvodce různými funkcemi; například: funkcí , regulární výrazy , tabulky , a mnohem víc.