Creați o bază de date în PostgreSQL folosind comanda createdb

Creati O Baza De Date In Postgresql Folosind Comanda Createdb



În acest ghid, vom afla despre crearea unei baze de date în PostgreSQL folosind comanda createdb.

Cerințe preliminare:

Pentru a efectua pașii care sunt demonstrați în acest ghid, aveți nevoie de următoarele componente:

  • Un sistem Linux configurat corect. Pentru testare, luați în considerare configurarea unei mașini virtuale Ubuntu folosind VirtualBox .
  • Instalat și configurat PostgreSQL. Află mai multe despre instalarea PostgreSQL pe Ubuntu .
  • Accesul la a utilizator non-root cu privilegii sudo .

Baze de date PostgreSQL

PostgreSQL este un sistem de baze de date obiect-relaționale gratuit și open-source compatibil cu SQL. Poate funcționa atât cu interogări relaționale (SQL), cât și non-relaționale (JSON). Aflați mai multe despre caracteristicile PostgreSQL .







În PostgreSQL, ierarhia datelor este următoarea:



  • cluster
  • Bază de date
  • schemă
  • tabel (sau alte obiecte; de ​​exemplu, funcție)

Orice instanță PostgreSQL poate accepta mai multe conexiuni client. Clientul trebuie să specifice numele bazei de date în cererea de conectare. Este permisă o singură bază de date per conexiune. Cu toate acestea, un client poate deschide mai multe conexiuni la server, conectându-se la una sau mai multe baze de date simultan.



Crearea unei baze de date în PostgreSQL

1. Deschiderea unei conexiuni la server

Pentru a crea o nouă bază de date, conectați-vă mai întâi la serverul PostgreSQL:





$ sudo -i -în postgres
$ psql

Rețineți că crearea bazei de date este o operațiune restricționată. Numai utilizatorii cu privilegii suficiente au permisiunea de a efectua acțiunea.



2. Listarea bazelor de date curente
Rulați următoarea interogare în psql pentru a imprima lista bazelor de date de pe server:

$ \listă

În timpul instalării, PostgreSQL creează prima bază de date a serverului care este „postgres”. De asemenea, sunt create două baze de date suplimentare:

  • șablon1 : Ori de câte ori se creează orice bază de date nouă în cluster, „template1” este clonat.
  • șablon0 : servește ca o copie perfectă a conținutului original al „șablonului1”.

Nu creați obiecte în „șablon1” decât dacă doriți ca acestea să facă parte din fiecare bază de date nou creată. Dacă „template1” este modificat, „template0” poate fi clonat pentru a crea o nouă bază de date fără adăugiri la nivel local.

3. Crearea unei noi baze de date
Pentru a crea o nouă bază de date, rulați următoarea interogare în psql:

$ CREAȚI BAZĂ DE DATE < db_name > ;

Aici:

  • Rolul curent este asumat automat ca proprietar al noii baze de date.
  • Proprietarul are privilegiul de a schimba proprietarul într-un alt rol.

Verificați lista bazelor de date dacă acțiunea are succes utilizând următoarea comandă:

$ \listă

Cu un cont privilegiat, putem crea și o bază de date pentru altcineva folosind următoarea comandă:

$ CREAȚI BAZĂ DE DATE < db_name > PROPRIETAR < rol > ;

Comanda Createdb

În metoda anterioară, a trebuit să parcurgem mai mulți pași pentru a crea o bază de date:

  • Conectați-vă la serverul PostgreSQL folosind psql.
  • Rulați interogările pentru a crea o nouă bază de date.

Pentru a eficientiza procesul, PostgreSQL vine cu comanda createb. Practic acționează ca un înveliș pentru aceste acțiuni. Putem rula direct comanda createdb din shell.

1. Crearea unei baze de date folosind Createdb
Pentru a crea o bază de date utilizând serverul de bază de date implicit, utilizați următoarea comandă:

$ creatb < db_name >

Verificați acțiunea utilizând următoarea comandă:

$ psql -c '\listă'

Cu diverse opțiuni, putem, de asemenea, ajusta operațiunile createb. Consultați următorul exemplu:

$ creatb -h < gazdă > -p < port > -T < șablon > -Este --nume de utilizator = < nume de utilizator > --parola --intretinere-db = < nume_db_întreținere > < db_name >

Aici:

  • -h : Acest parametru specifică locația serverului PostgreSQL (adresă IP sau nume de domeniu).
  • -p : Portul de conectare la server.
  • -T : șablonul de utilizat la crearea noii baze de date. Poate fi template0, template1 sau orice altă bază de date.
  • -Este : Ecou interogarea echivalentă.
  • -nume de utilizator : Numele de utilizator pentru conectarea la server.
  • -parola : Forțează comanda createdb să solicite o parolă înainte de a se conecta la server. În cele mai multe cazuri, nu este necesar, deoarece createdb solicită automat o parolă dacă serverul o solicită. Cu toate acestea, cheltuie o încercare de conectare pentru a-l descoperi.
  • –intretinere-db : Baza de date la care se va conecta la crearea noii baze de date. Dacă nu este specificat, postgres este considerat implicit. Dacă postgres nu există, se presupune „template1”.

E timpul să-l punem în acțiune. Rulați următoarea comandă createb:

$ creatb -h gazdă locală -p 5432 -T șablon0 -Este --nume de utilizator =postgres test_db

După cum sugerează rezultatul, este echivalent cu următoarea interogare:

$ CREATE DATABASE test_db TEMPLATE template0;

Administrare suplimentară a bazei de date

În această secțiune, să aruncăm o privire la alte operațiuni de gestionare a bazelor de date.

Listarea bazelor de date

Există câteva moduri de a enumera bazele de date stocate pe server. Am demonstrat deja o metodă în secțiunile anterioare:

$ \listă

O altă modalitate este de a examina catalogul de sistem „pg_database”:

$ SELECTează numele de date FROM pg_database;

Ștergerea unei baze de date

Pentru a șterge o bază de date, rulați următoarea interogare:

$ DROP BAZA DE DATE < db_name > ;

Similar cu createdb, PostgreSQL vine și cu comanda dropdb pe care o putem rula din shell. Aruncă o privire la următorul exemplu:

$ dropdb -h < gazdă > -p < port > --nume de utilizator = < nume de utilizator > --parola -Este < db_name >

Aici:

  • -h : Serverul PostgreSQL la care se va conecta.
  • -p : portul serverului PostgreSQL la care să se conecteze.
  • -Este : Ecou interogarea echivalentă.

Rețineți că utilizatorul trebuie să aibă suficiente privilegii pentru a șterge o bază de date.

Modificarea proprietății unei baze de date

Proprietarul unei baze de date poate efectua orice acțiune asupra bazei de date, inclusiv ștergerea bazei de date. În mod implicit, utilizatorul care creează baza de date este atribuit drept proprietar. Cu toate acestea, putem reatribui dreptul de proprietate unui alt utilizator.

Pentru a schimba proprietarul bazei de date, rulați următoarea interogare în psql:

$ ALTERARE BAZĂ DE DATE < db_name > PROPRIETAR LA < noul proprietar > ;

Acest lucru, cu toate acestea, nu va schimba dreptul de proprietate asupra obiectelor din baza de date (inclusiv tabelele). În astfel de cazuri, trebuie să folosim o altă interogare. Conectați-vă la baza de date țintă și rulați următoarea interogare:

$ REATRIBUIREA DEȚINĂT DE < vechi_proprietar > LA < noul proprietar > ;

Deși este convenabilă, această interogare vine cu câteva avertismente:

  • Când se conectează la postgres (bază de date), se poate schimba proprietatea mai multor baze de date simultan.
  • Nu utilizați această interogare atunci când proprietarul inițial este Postgres, deoarece ar putea deteriora întreaga instanță DB.

Bonus: rularea interogărilor din Shell

Până acum, rulăm interogările din consola PostgreSQL. Ce se întâmplă dacă doriți să încorporați unele funcționalități ale bazei de date în scripturile dvs.? Comenzile createb și dropdb pot face doar operații specifice.

Pentru a rezolva acest lucru, putem folosi psql ca conductă. Pe lângă shell-ul interactiv standard, psql poate rula și interogările din mers.

Metoda 1:

Structura comenzii este următoarea:

$ psql -h < gazdă > -p < port > -ÎN < nume de utilizator > -d < Bază de date > -c < interogare >

Aici:

  • -h : adresa serverului PostgreSQL.
  • -p : portul la care să se conecteze (valoarea implicită este 5432).
  • -ÎN : Utilizatorul la care se conectează ca.
  • -d : baza de date la care să vă conectați.
  • -c : Interogarea de executat.

Metoda 2:

PostgreSQL vine cu o altă caracteristică interesantă: URI de conexiune. Este o modalitate inteligentă de a codifica cu grijă toți parametrii conexiunii. Structura unui URI de conexiune este următoarea:

$ postgresql: //< nume de utilizator > : < parola >@< gazdă > : < port >>/< db_name >

Aici:

  • postgresql sau postgres : Protocolul unic pentru URI de conexiune PostgreSQL.

Pentru a vă conecta la o bază de date folosind URI-ul de conectare, utilizați următoarea comandă psql:

$ psql -d < connection_uri > -c < interogare >

Concluzie

Am aflat despre diferite moduri de a crea baze de date în PostgreSQL. Am demonstrat cum să creați o bază de date folosind interogarea CREATE DATABASE. De asemenea, am prezentat crearea bazei de date folosind comanda createdb. În plus, am trecut peste câteva alte acțiuni importante de gestionare a bazelor de date, cum ar fi ștergerea bazelor de date și schimbarea proprietarului.

Vă interesează să aflați mai multe despre PostgreSQL? Verificați Subcategoria PostgreSQL y care conține numeroase ghiduri despre diverse caracteristici; de exemplu: funcții , expresii obisnuite , Mese , și mult mai mult.