Lumikha ng isang Database sa PostgreSQL Gamit ang nilikhab Command

Lumikha Ng Isang Database Sa Postgresql Gamit Ang Nilikhab Command



Sa gabay na ito, malalaman natin ang tungkol sa paggawa ng database sa PostgreSQL gamit ang createdb command.

Mga kinakailangan:

Upang maisagawa ang mga hakbang na ipinakita sa gabay na ito, kailangan mo ang mga sumusunod na bahagi:

  • Isang maayos na na-configure na Linux system. Para sa pagsubok, isaalang-alang pag-set up ng isang virtual na makina ng Ubuntu gamit ang VirtualBox .
  • Naka-install at na-configure ang PostgreSQL. Matuto ng mas marami tungkol sa pag-install ng PostgreSQL sa Ubuntu .
  • Access sa a non-root user na may pribilehiyo ng sudo .

Mga Database ng PostgreSQL

PostgreSQL ay isang libre at open-source na SQL-compliant object-relational database system. Maaari itong gumana sa parehong relational (SQL) at non-relational (JSON) na pag-query. Matuto pa tungkol sa mga tampok ng PostgreSQL .







Sa PostgreSQL, ang hierarchy ng data ay ang mga sumusunod:



  • kumpol
  • database
  • schema
  • talahanayan (o iba pang mga bagay; halimbawa, function)

Anumang instance ng PostgreSQL ay maaaring tumanggap ng maraming koneksyon ng kliyente. Dapat tukuyin ng kliyente ang pangalan ng database sa kahilingan sa koneksyon. Isang database lamang sa bawat koneksyon ang pinapayagan. Gayunpaman, ang isang kliyente ay maaaring magbukas ng maraming koneksyon sa server, na kumukonekta sa isa o higit pang mga database nang sabay-sabay.



Paglikha ng isang Database sa PostgreSQL

1. Pagbubukas ng Koneksyon sa Server

Para gumawa ng bagong database, kumonekta muna sa PostgreSQL server:





$ sudo -i -sa postgres
$ psql

Tandaan na ang paglikha ng database ay isang pinaghihigpitang operasyon. Tanging ang mga user na may sapat na pribilehiyo ang pinapayagang gawin ang pagkilos.



2. Paglilista ng Mga Kasalukuyang Database
Patakbuhin ang sumusunod na query sa psql upang i-print ang listahan ng mga database sa server:

$ \listahan

Sa panahon ng pag-install, ang PostgreSQL ay lumilikha ng unang database ng server na 'postgres'. Dalawang karagdagang database ang nilikha din:

  • template1 : Sa tuwing lumilikha ng anumang bagong database sa loob ng cluster, ang 'template1' ay naka-clone.
  • template0 : Nagsisilbi itong malinis na kopya ng orihinal na nilalaman ng 'template1'.

Huwag lumikha ng mga bagay sa loob ng 'template1' maliban kung nais mong maging bahagi ang mga ito ng bawat bagong likhang database. Kung ang 'template1' ay binago, ang 'template0' ay maaaring i-clone upang lumikha ng isang bagong database nang walang anumang site-local na mga karagdagan.

3. Paglikha ng Bagong Database
Upang lumikha ng isang bagong database, patakbuhin ang sumusunod na query sa psql:

$ GUMAWA NG DATABASE < db_name > ;

dito:

  • Ang kasalukuyang tungkulin ay awtomatikong ipinapalagay bilang ang may-ari ng bagong database.
  • May pribilehiyo ang may-ari na baguhin ang may-ari sa ibang tungkulin.

Suriin ang listahan ng mga database kung matagumpay ang pagkilos gamit ang sumusunod na command:

$ \listahan

Sa isang privileged account, maaari din kaming lumikha ng database para sa ibang tao gamit ang sumusunod na command:

$ GUMAWA NG DATABASE < db_name > MAY-ARI < papel > ;

Ang Createdb Command

Sa nakaraang pamamaraan, kailangan naming dumaan sa maraming hakbang upang lumikha ng isang database:

  • Kumonekta sa PostgreSQL server gamit ang psql.
  • Patakbuhin ang mga query upang lumikha ng bagong database.

Upang i-streamline ang proseso, ang PostgreSQL ay kasama ng nilikhab na utos. Ito ay karaniwang gumaganap bilang isang wrapper para sa mga pagkilos na ito. Maaari naming direktang patakbuhin ang createdb command mula sa shell.

1. Paglikha ng Database Gamit ang Createdb
Upang lumikha ng database gamit ang default na database server, gamitin ang sumusunod na command:

$ nilikhab < db_name >

I-verify ang aksyon gamit ang sumusunod na command:

$ psql -c '\listahan'

Sa iba't ibang mga opsyon, maaari din naming i-fine-tune ang mga ginawang operasyon. Tingnan ang sumusunod na halimbawa:

$ nilikhab -h < host > -p < daungan > -T < template > -Ito ay --username = < username > --password --pagpapanatili-db = < maintenance_db_name > < db_name >

dito:

  • -h : Tinutukoy ng parameter na ito ang lokasyon ng server ng PostgreSQL (IP address o domain name).
  • -p : Ang port upang kumonekta sa server.
  • -T : Ang template na gagamitin kapag gumagawa ng bagong database. Maaari itong maging template0, template1, o anumang iba pang database.
  • -Ito ay : Inuulit ang katumbas na query.
  • –username : Ang username upang kumonekta sa server.
  • – password : Pinipilit ang ginawangb command na mag-prompt ng password bago kumonekta sa server. Sa karamihan ng mga kaso, hindi ito kinakailangan dahil ang createdb ay awtomatikong nag-prompt para sa isang password kung kailangan ito ng server. Gayunpaman, gumugugol ito ng isang pagtatangka sa koneksyon sa pag-uunawa nito.
  • –pagpapanatili-db : Ang database na kumonekta kapag gumagawa ng bagong database. Kung hindi tinukoy, ang mga postgres ay ipinapalagay bilang default. Kung walang postgres, ipinapalagay ang 'template1'.

Oras na para maisagawa ito. Patakbuhin ang sumusunod na createdb command:

$ nilikhab -h localhost -p 5432 -T template0 -Ito ay --username =postgres test_db

Tulad ng iminumungkahi ng output, ito ay katumbas ng sumusunod na query:

$ GUMAWA NG DATABASE test_db TEMPLATE template0;

Karagdagang Pamamahala ng Database

Sa seksyong ito, tingnan natin ang iba pang mga operasyon sa pamamahala ng database.

Listahan ng mga Database

Mayroong ilang mga paraan upang ilista ang mga database na nakaimbak sa server. Nagpakita na kami ng isang paraan sa mga nakaraang seksyon:

$ \listahan

Ang isa pang paraan ay suriin ang 'pg_database' system catalog:

$ PUMILI ng datname MULA sa pg_database;

Pagtanggal ng Database

Upang magtanggal ng database, patakbuhin ang sumusunod na query:

$ DROP DATABASE < db_name > ;

Katulad ng createdb, ang PostgreSQL ay kasama rin ng dropdb command na maaari nating patakbuhin mula sa shell. Tingnan ang sumusunod na halimbawa:

$ dropdb -h < host > -p < daungan > --username = < username > --password -Ito ay < db_name >

dito:

  • -h : Ang server ng PostgreSQL na kumonekta.
  • -p : Ang port ng PostgreSQL server upang kumonekta.
  • -Ito ay : Inuulit ang katumbas na query.

Tandaan na ang user ay dapat may sapat na pribilehiyo na magtanggal ng database.

Pagbabago ng Pagmamay-ari ng Database

Ang may-ari ng isang database ay maaaring magsagawa ng anumang aksyon sa database, kabilang ang pagtanggal ng database. Bilang default, ang user na lumikha ng database ay itinalaga bilang may-ari. Gayunpaman, maaari naming muling italaga ang pagmamay-ari sa ibang user.

Upang baguhin ang may-ari ng database, patakbuhin ang sumusunod na query sa psql:

$ BAGUHIN ANG DATABASE < db_name > MAY-ARI SA < bagong may-ari > ;

Gayunpaman, hindi nito babaguhin ang pagmamay-ari ng mga bagay sa loob ng database (kabilang ang mga talahanayan). Sa ganitong mga kaso, kailangan nating gumamit ng ibang query. Kumonekta sa target na database at patakbuhin ang sumusunod na query:

$ REASSIGN NA PAG-AARI NI < old_owner > SA < bagong may-ari > ;

Bagama't maginhawa, ang query na ito ay may kasamang ilang mga caveat:

  • Kapag kumokonekta sa mga postgres (database), maaari nitong baguhin ang pagmamay-ari ng maramihang mga database nang sabay-sabay.
  • Huwag gamitin ang query na ito kapag ang orihinal na may-ari ay mga postgres dahil maaari nitong sirain ang buong instance ng DB.

Bonus: Pagpapatakbo ng Mga Query mula sa Shell

Sa ngayon, pinapatakbo namin ang mga query mula sa PostgreSQL console. Paano kung gusto mong isama ang ilang functionality ng database sa iyong mga script? Ang nilikhab at dropdb na mga utos ay maaari lamang gumawa ng mga partikular na operasyon.

Upang malutas ito, maaari naming gamitin ang psql bilang isang conduit. Bukod sa karaniwang interactive na shell, maaari ding patakbuhin ng psql ang mga query sa mabilisang.

Paraan 1:

Ang istraktura ng command ay ang mga sumusunod:

$ psql -h < host > -p < daungan > -SA < username > -d < database > -c < tanong >

dito:

  • -h : Ang address ng PostgreSQL server.
  • -p : Ang port upang kumonekta sa (default na halaga ay 5432).
  • -SA : Ang user na kumonekta bilang.
  • -d : Ang database na kumonekta.
  • -c : Ang query na isasagawa.

Paraan 2:

Ang PostgreSQL ay may isa pang kawili-wiling tampok: koneksyon URI. Ito ay isang matalinong paraan ng maayos na pag-encode ng lahat ng mga parameter ng koneksyon. Ang istraktura ng isang koneksyon URI ay ang mga sumusunod:

$ postgresql: //< username > : < password >@< host > : < daungan >/< db_name >

dito:

  • postgresql o postgres : Ang natatanging protocol para sa PostgreSQL connection URI.

Para kumonekta sa isang database gamit ang connection URI, gamitin ang sumusunod na psql command:

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

Konklusyon

Natutunan namin ang tungkol sa iba't ibang paraan ng paglikha ng mga database sa PostgreSQL. Ipinakita namin kung paano gumawa ng database gamit ang CREATE DATABASE query. Ipinakita rin namin ang paglikha ng database gamit ang createdb command. Bilang karagdagan, binanggit din namin ang ilang iba pang mahahalagang pagkilos sa pamamahala ng database tulad ng pagtanggal ng mga database at pagpapalit ng may-ari.

Interesado na matuto pa tungkol sa PostgreSQL? Tingnan ang PostgreSQL sub-categor y na naglalaman ng maraming mga gabay sa iba't ibang mga tampok; Halimbawa: mga function , mga regular na expression , mga mesa , at marami pang iba.