Maak een database in PostgreSQL met behulp van de createb-opdracht

Maak Een Database In Postgresql Met Behulp Van De Createb Opdracht



In deze handleiding leren we over het maken van een database in PostgreSQL met behulp van de opdracht createb.

Vereisten:

Om de stappen uit te voeren die in deze handleiding worden gedemonstreerd, hebt u de volgende onderdelen nodig:

  • Een correct geconfigureerd Linux-systeem. Overweeg om te testen een virtuele Ubuntu-machine opzetten met VirtualBox .
  • PostgreSQL geïnstalleerd en geconfigureerd. Leer meer over PostgreSQL installeren op Ubuntu .
  • Toegang tot een niet-rootgebruiker met sudo-rechten .

PostgreSQL-databases

PostgreSQL is een gratis en open-source SQL-compatibel object-relationeel databasesysteem. Het kan werken met zowel relationele (SQL) als niet-relationele (JSON) query's. Meer informatie over de kenmerken van PostgreSQL .







In PostgreSQL is de gegevenshiërarchie als volgt:



  • TROS
  • databank
  • schema
  • tabel (of andere objecten; bijvoorbeeld functie)

Elke PostgreSQL-instantie kan meerdere clientverbindingen accepteren. De client moet de databasenaam opgeven in het verbindingsverzoek. Er is slechts één database per verbinding toegestaan. Een client kan echter meerdere verbindingen met de server openen en tegelijkertijd verbinding maken met een of meer databases.



Een database maken in PostgreSQL

1. Een verbinding met de server openen

Maak eerst verbinding met de PostgreSQL-server om een ​​nieuwe database te maken:





$ sudo -i -in postgres
$ psql

Houd er rekening mee dat het maken van een database een beperkte bewerking is. Alleen gebruikers met voldoende rechten mogen de actie uitvoeren.



2. Lijst van de huidige databases
Voer de volgende query uit in psql om de lijst met databases op de server af te drukken:

$ \lijst

Tijdens de installatie maakt PostgreSQL de eerste database van de server die 'postgres' is. Er worden ook twee extra databases gemaakt:

  • sjabloon1 : Telkens wanneer een nieuwe database binnen het cluster wordt gemaakt, wordt 'template1' gekloond.
  • sjabloon0 : Het dient als een ongerepte kopie van de originele inhoud van 'template1'.

Maak geen objecten binnen 'template1' tenzij u wilt dat ze deel uitmaken van elke nieuwe database. Als 'template1' is gewijzigd, kan 'template0' worden gekloond om een ​​nieuwe database te maken zonder site-local toevoegingen.

3. Een nieuwe database maken
Voer de volgende query uit in psql om een ​​nieuwe database te maken:

$ CREËER DATABASE < db_naam > ;

Hier:

  • De huidige rol wordt automatisch overgenomen als eigenaar van de nieuwe database.
  • De eigenaar heeft het voorrecht om de eigenaar in een andere rol te veranderen.

Controleer de lijst met databases als de actie succesvol is met behulp van de volgende opdracht:

$ \lijst

Met een bevoorrecht account kunnen we ook een database voor iemand anders maken met behulp van de volgende opdracht:

$ CREËER DATABASE < db_naam > EIGENAAR < rol > ;

Het Createdb-commando

Bij de vorige methode moesten we meerdere stappen doorlopen om een ​​database te maken:

  • Maak verbinding met de PostgreSQL-server met behulp van psql.
  • Voer de query's uit om een ​​nieuwe database te maken.

Om het proces te stroomlijnen, wordt PostgreSQL geleverd met de opdracht createdb. Het fungeert in feite als een verpakking voor deze acties. We kunnen de opdracht createb rechtstreeks vanuit de shell uitvoeren.

1. Een database maken met Createdb
Gebruik de volgende opdracht om een ​​database te maken met de standaarddatabaseserver:

$ gemaaktb < db_naam >

Controleer de actie met behulp van de volgende opdracht:

$ psql -C '\lijst'

Met diverse opties kunnen we ook de gemaakte bewerkingen finetunen. Bekijk het volgende voorbeeld:

$ gemaaktb -H < gastheer > -P < haven > -T < sjabloon > -Het is --gebruikersnaam = < gebruikersnaam > --wachtwoord --onderhoud-db = < onderhoud_db_name > < db_naam >

Hier:

  • -H : Deze parameter specificeert de PostgreSQL-serverlocatie (IP-adres of domeinnaam).
  • -P : De poort om verbinding te maken met de server.
  • -T : De sjabloon die moet worden gebruikt bij het maken van de nieuwe database. Dit kan sjabloon0, sjabloon1 of een andere database zijn.
  • -Het is : echoot de equivalente query.
  • –gebruikersnaam : De gebruikersnaam om verbinding te maken met de server.
  • -wachtwoord : dwingt de opdracht createb om een ​​wachtwoord te vragen voordat verbinding wordt gemaakt met de server. In de meeste gevallen is het niet nodig omdat createb automatisch om een ​​wachtwoord vraagt ​​als de server dit vereist. Het besteedt echter een verbindingspoging om het uit te zoeken.
  • –onderhoud-db : De database waarmee verbinding moet worden gemaakt bij het maken van de nieuwe database. Indien niet opgegeven, wordt postgres standaard aangenomen. Als postgres niet bestaat, wordt 'template1' aangenomen.

Tijd om het in actie te brengen. Voer de volgende createb-opdracht uit:

$ gemaaktb -H localhost -P 5432 -T sjabloon0 -Het is --gebruikersnaam =postgres-test_db

Zoals de uitvoer suggereert, is dit gelijk aan de volgende query:

$ MAAK DATABASE test_db SJABLOON template0;

Aanvullend databasebeheer

Laten we in dit gedeelte eens kijken naar andere databasebeheerbewerkingen.

Lijst van de databases

Er zijn een aantal manieren om de databases weer te geven die op de server zijn opgeslagen. We hebben al één methode gedemonstreerd in de vorige paragrafen:

$ \lijst

Een andere manier is om de systeemcatalogus 'pg_database' te onderzoeken:

$ SELECTEER die naam UIT pg_database;

Een databank verwijderen

Voer de volgende query uit om een ​​database te verwijderen:

$ DROP DATABASE < db_naam > ;

Net als bij createb, wordt PostgreSQL ook geleverd met de dropdb-opdracht die we vanuit de shell kunnen uitvoeren. Kijk eens naar het volgende voorbeeld:

$ dropdb -H < gastheer > -P < haven > --gebruikersnaam = < gebruikersnaam > --wachtwoord -Het is < db_naam >

Hier:

  • -H : De PostgreSQL-server om verbinding mee te maken.
  • -P : De poort van de PostgreSQL-server om verbinding mee te maken.
  • -Het is : echoot de equivalente query.

Merk op dat de gebruiker voldoende rechten moet hebben om een ​​database te verwijderen.

Eigendom van een database wijzigen

De eigenaar van een database kan elke actie op de database uitvoeren, inclusief het verwijderen van de database. Standaard wordt de gebruiker die de database maakt, toegewezen als de eigenaar. We kunnen het eigendom echter opnieuw toewijzen aan een andere gebruiker.

Voer de volgende query uit in psql om de eigenaar van de database te wijzigen:

$ DATABASE WIJZIGEN < db_naam > EIGENAAR AAN < nieuwe eigenaar > ;

Dit verandert echter niets aan het eigendom van de objecten in de database (inclusief tabellen). In dergelijke gevallen moeten we een andere query gebruiken. Maak verbinding met de doeldatabase en voer de volgende query uit:

$ OPNIEUW TOEWIJZEN EIGENDOM VAN < oude_eigenaar > NAAR < nieuwe eigenaar > ;

Hoewel deze zoekopdracht handig is, zijn er enkele kanttekeningen:

  • Wanneer verbinding wordt gemaakt met postgres (database), kan het het eigendom van meerdere databases tegelijk wijzigen.
  • Gebruik deze query niet als de oorspronkelijke eigenaar postgres is, omdat dit de hele DB-instantie kan beschadigen.

Bonus: de query's uitvoeren vanuit de shell

Tot nu toe voeren we de query's uit vanaf de PostgreSQL-console. Wat als u enkele databasefunctionaliteiten in uw scripts wilt opnemen? De opdrachten createb en dropdb kunnen alleen specifieke bewerkingen uitvoeren.

Om dit op te lossen, kunnen we psql als conduit gebruiken. Naast de standaard interactieve shell, kan psql de query's ook direct uitvoeren.

Methode 1:

De opdrachtstructuur is als volgt:

$ psql -H < gastheer > -P < haven > -IN < gebruikersnaam > -D < databank > -C < vraag >

Hier:

  • -H : Het adres van de PostgreSQL-server.
  • -P : De poort om verbinding mee te maken (standaardwaarde is 5432).
  • -IN : De gebruiker om verbinding mee te maken als.
  • -D : De database om verbinding mee te maken.
  • -C : De query die moet worden uitgevoerd.

Methode 2:

PostgreSQL wordt geleverd met nog een interessante functie: verbindings-URI. Het is een slimme manier om alle verbindingsparameters netjes te coderen. De structuur van een verbindings-URI is als volgt:

$ postgresql: //< gebruikersnaam > : < wachtwoord >@< gastheer > : < haven >/< db_naam >

Hier:

  • postgresql of postgres : Het unieke protocol voor PostgreSQL-verbindings-URI.

Gebruik de volgende psql-opdracht om verbinding te maken met een database met behulp van de verbindings-URI:

$ psql -D < verbinding_uri > -C < vraag >

Conclusie

We leerden over verschillende manieren om databases te maken in PostgreSQL. We hebben gedemonstreerd hoe u een database kunt maken met behulp van de CREATE DATABASE-query. We hebben ook het maken van een database laten zien met behulp van de opdracht createdb. Daarnaast hebben we ook enkele andere belangrijke acties voor databasebeheer verdoezeld, zoals het verwijderen van databases en het wijzigen van de eigenaar.

Meer weten over PostgreSQL? Bekijk de PostgreSQL-subcategorie y dat talloze handleidingen bevat over verschillende functies; Bijvoorbeeld: functies , normale uitdrukkingen , tafels , en nog veel meer.