Looge PostgreSQL-is andmebaas, kasutades käsku createb

Looge Postgresql Is Andmebaas Kasutades Kasku Createb



Selles juhendis õpime andmebaasi loomise kohta PostgreSQL-is käsu createb abil.

Eeltingimused:

Selles juhendis kirjeldatud toimingute tegemiseks vajate järgmisi komponente.

  • Õigesti konfigureeritud Linuxi süsteem. Katsetamiseks kaaluge virtuaalse Ubuntu masina seadistamine VirtualBoxi abil .
  • Installitud ja konfigureeritud PostgreSQL. Lisateavet PostgreSQL-i installimine Ubuntule .
  • Juurdepääs a sudo privileegiga mitte-root kasutaja .

PostgreSQL-i andmebaasid

PostgreSQL on tasuta ja avatud lähtekoodiga SQL-iga ühilduv objektide relatsiooniandmebaasisüsteem. See võib töötada nii relatsioonilise (SQL) kui ka mitterelatsioonilise (JSON) päringuga. Lisateavet PostgreSQL-i funktsioonid .







PostgreSQL-is on andmete hierarhia järgmine:



  • klaster
  • andmebaasi
  • skeem
  • tabel (või muud objektid, näiteks funktsioon)

Iga PostgreSQL-i eksemplar võib aktsepteerida mitut kliendiühendust. Klient peab ühenduse taotluses määrama andmebaasi nime. Ühe ühenduse kohta on lubatud ainult üks andmebaas. Siiski saab klient avada serveriga mitu ühendust, luues samaaegselt ühenduse ühe või mitme andmebaasiga.



Andmebaasi loomine PostgreSQL-is

1. Serveriga ühenduse avamine

Uue andmebaasi loomiseks looge esmalt ühendus PostgreSQL-i serveriga:





$ sudo -i -sisse postgres
$ psql

Pange tähele, et andmebaasi loomine on piiratud toiming. Toimingut võivad teha ainult piisavate õigustega kasutajad.



2. Praeguste andmebaaside loetlemine
Serveris olevate andmebaaside loendi printimiseks käivitage psql-is järgmine päring:

$ \list

Installimise ajal loob PostgreSQL serveri esimese andmebaasi, mis on 'postgres'. Samuti luuakse kaks täiendavat andmebaasi:

  • mall1 : klastris uue andmebaasi loomisel kloonitakse malli1.
  • mall0 : see toimib malli „template1” algse sisu puutumatu koopiana.

Ärge looge objekte mallis 1, välja arvatud juhul, kui soovite, et need oleksid osa igast vastloodud andmebaasist. Kui 'malli1' on muudetud, saab 'template0' kloonida, et luua uus andmebaas ilma saidi-kohalike lisadeta.

3. Uue andmebaasi loomine
Uue andmebaasi loomiseks käivitage psql-is järgmine päring:

$ LOO ANDMEBAAS < db_nimi > ;

Siin:

  • Praegune roll võetakse automaatselt uue andmebaasi omanikuks.
  • Omanikul on õigus vahetada omanik teisele rollile.

Kui toiming õnnestub, kontrollige andmebaaside loendit järgmise käsuga:

$ \list

Privilegeeritud kontoga saame luua andmebaasi ka kellegi teise jaoks, kasutades järgmist käsku:

$ LOO ANDMEBAAS < db_nimi > OMANIK < rolli > ;

Createdb käsk

Eelmise meetodi puhul pidime andmebaasi loomiseks läbima mitu sammu:

  • Ühendage psql-i abil PostgreSQL-serveriga.
  • Uue andmebaasi loomiseks käivitage päringud.

Protsessi sujuvamaks muutmiseks on PostgreSQL-iga kaasas Createb käsk. Põhimõtteliselt toimib see nende toimingute ümbrisena. Saame käsu Createb otse kestast käivitada.

1. Andmebaasi loomine Createdb abil
Andmebaasi loomiseks vaikeandmebaasiserveri abil kasutage järgmist käsku:

$ loodudb < db_nimi >

Kinnitage toiming järgmise käsuga:

$ psql -c '\list'

Erinevate võimaluste abil saame peenhäälestada ka loodud b toiminguid. Vaadake järgmist näidet:

$ loodudb -h < peremees > -lk < sadamasse > -T < malli > -See on --kasutajanimi = < kasutajanimi > -- parool --hooldus-db = < hoolduse_db_nimi > < db_nimi >

Siin:

  • -h : see parameeter määrab PostgreSQL-i serveri asukoha (IP-aadress või domeeninimi).
  • -lk : port serveriga ühenduse loomiseks.
  • -T : mall, mida kasutatakse uue andmebaasi loomisel. See võib olla template0, template1 või mis tahes muu andmebaas.
  • -See on : kordab samaväärset päringut.
  • – kasutajanimi : kasutajanimi serveriga ühenduse loomiseks.
  • - parool : sunnib käsu createb küsima enne serveriga ühenduse loomist parooli. Enamikul juhtudel pole see vajalik, kuna Createb küsib automaatselt parooli, kui server seda nõuab. Selle väljaselgitamiseks kulub aga ühenduse katsele.
  • –hooldus-db : andmebaas, millega uue andmebaasi loomisel ühenduse luua. Kui pole määratud, eeldatakse vaikimisi postgres'i. Kui postgres pole olemas, eeldatakse, et template1.

Aeg see ellu viia. Käivitage järgmine käsk Createdb:

$ loodudb -h kohalik host -lk 5432 -T mall0 -See on --kasutajanimi =postgres test_db

Nagu väljund viitab, on see samaväärne järgmise päringuga:

$ LOO ANDMEBAAS test_db MALLI mall0;

Täiendav andmebaasihaldus

Selles jaotises vaatleme teisi andmebaasihaldustoiminguid.

Andmebaaside loetlemine

Serverisse salvestatud andmebaaside loetlemiseks on paar võimalust. Oleme juba näidanud ühte meetodit eelmistes jaotistes:

$ \list

Teine võimalus on uurida süsteemikataloogi 'pg_database':

$ SELECT datname FROM pg_database;

Andmebaasi kustutamine

Andmebaasi kustutamiseks käivitage järgmine päring:

$ ANDMEBAAS VÄLJA < db_nimi > ;

Sarnaselt Createb-ga on PostgreSQL-il ka käsk dropdb, mida saame kestast käivitada. Heitke pilk järgmisele näitele.

$ dropdb -h < peremees > -lk < sadamasse > --kasutajanimi = < kasutajanimi > -- parool -See on < db_nimi >

Siin:

  • -h : PostgreSQL-i server, millega ühenduse luua.
  • -lk : PostgreSQL-serveri port, millega ühenduse luua.
  • -See on : kordab samaväärset päringut.

Pange tähele, et kasutajal peavad olema andmebaasi kustutamiseks piisavad õigused.

Andmebaasi omandiõiguse muutmine

Andmebaasi omanik saab teha andmebaasiga mis tahes toiminguid, sealhulgas andmebaasi kustutada. Vaikimisi määratakse omanikuks kasutaja, kes loob andmebaasi. Siiski saame omandiõiguse teisele kasutajale ümber määrata.

Andmebaasi omaniku muutmiseks käivitage psql-is järgmine päring:

$ ALTER ANDMEBAAS < db_nimi > OMANIK TO < uus_omanik > ;

See aga ei muuda andmebaasis olevate objektide (sh tabelite) omandiõigust. Sellistel juhtudel peame kasutama teistsugust päringut. Looge ühendus sihtandmebaasiga ja käivitage järgmine päring:

$ ÜMBER MÄÄRAMINE OMANIKUD < vana_omanik > TO < uus_omanik > ;

Kuigi see päring on mugav, sisaldab see mõningaid hoiatusi:

  • Postgresiga (andmebaasiga) ühenduse loomisel võib see korraga muuta mitme andmebaasi omandiõigust.
  • Ärge kasutage seda päringut, kui algne omanik on postgres, kuna see võib rikkuda kogu DB eksemplari.

Boonus: päringute käivitamine Shellist

Seni käitame päringuid PostgreSQL-i konsoolist. Mis siis, kui soovite oma skriptidesse lisada mõned andmebaasifunktsioonid? Createb ja dropdb käsud saavad teha ainult teatud toiminguid.

Selle lahendamiseks saame kanalina kasutada psql-i. Lisaks standardsele interaktiivsele kestale saab psql päringuid ka lennult käivitada.

1. meetod:

Käskude struktuur on järgmine:

$ psql -h < peremees > -lk < sadamasse > -IN < kasutajanimi > -d < andmebaasi > -c < päring >

Siin:

  • -h : PostgreSQL-i serveri aadress.
  • -lk : Port, millega ühenduse luua (vaikeväärtus on 5432).
  • -IN : kasutaja, kellega ühenduse luua.
  • -d : andmebaas, millega ühenduse luua.
  • -c : täidetav päring.

2. meetod:

PostgreSQL-il on veel üks huvitav funktsioon: ühenduse URI. See on nutikas viis kõigi ühenduse parameetrite ilusaks kodeerimiseks. Ühenduse URI struktuur on järgmine:

$ postgresql: //< kasutajanimi > : < parool >@< peremees > : < sadamasse >>< db_nimi >

Siin:

  • postgresql või postgres : PostgreSQL-i ühenduse URI ainulaadne protokoll.

Ühenduse URI abil andmebaasiga ühenduse loomiseks kasutage järgmist psql-käsku:

$ psql -d < ühendus_uri > -c < päring >

Järeldus

Õppisime tundma erinevaid PostgreSQL-i andmebaaside loomise viise. Näitasime, kuidas luua andmebaasi päringu CREATE DATABASE abil. Samuti tutvustasime andmebaasi loomist käsu createb abil. Lisaks jätsime varju ka mõned muud olulised andmebaasihaldustoimingud, nagu andmebaaside kustutamine ja omaniku muutmine.

Kas soovite PostgreSQL-i kohta rohkem teada saada? Tutvuge PostgreSQL-i alamkategooria y, mis sisaldab arvukalt juhendeid erinevate funktsioonide kohta; näiteks: funktsioonid , regulaaravaldised , tabelid , ja palju muud.