Viktigt

Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.

18.2. Lektion: Använda DB Manager för att arbeta med spatiala databaser i QGIS

Vi har redan sett hur man utför många databasoperationer med QGIS och med andra verktyg, men nu är det dags att titta på verktyget DB Manager som tillhandahåller mycket av samma funktionalitet samt mer förvaltningsinriktade verktyg.

Målet med den här lektionen: Att lära sig hur man interagerar med rumsliga databaser med hjälp av QGIS DB Manager.

18.2.1. ★☆☆ Följ med: Hantera PostGIS-databaser med DB Manager

Du bör först öppna gränssnittet DB Manager genom att välja Database ► DB Manager ► DB Manager på menyn eller genom att välja ikonen dbManager DB Manager på verktygsfältet.

Du bör redan se de tidigare anslutningar som vi har konfigurerat och kunna expandera avsnittet myPG och dess public schema för att se de tabeller som vi har arbetat med i tidigare avsnitt.

Det första du kanske märker är att du nu kan se vissa metadata om de scheman som finns i din databas.

../../../_images/db_manager_dialog.png

Scheman är ett sätt att gruppera datatabeller och andra objekt i en PostgreSQL-databas och en behållare för behörigheter och andra begränsningar. Hantering av PostgreSQL-scheman ligger utanför omfattningen av denna handbok, men du kan hitta mer information om dem i PostgreSQL-dokumentationen om Schemas. Du kan använda DB Manager för att skapa nya Schemas, men måste använda ett verktyg som pgAdmin III eller kommandoradsgränssnittet för att hantera dem effektivt.

DB Manager kan också användas för att hantera tabellerna i din databas. Vi har redan tittat på olika sätt att skapa och hantera tabeller på kommandoraden, men nu ska vi titta på hur man gör detta i DB Manager.

För det första är det bra att bara titta på en tabells metadata genom att klicka på dess namn i trädet och titta på fliken Info.

../../../_images/table_info.png

I den här panelen kan du se General Info om tabellen samt den information som PostGIS-tillägget upprätthåller om geometrin och det rumsliga referenssystemet.

Om du bläddrar nedåt i fliken Info kan du se mer information om Fields, Constraints och Index för den tabell du tittar på.

../../../_images/table_info_fields.png

Det är också mycket användbart att använda DB Manager för att helt enkelt titta på posterna i databasen på ungefär samma sätt som du kan göra det genom att visa attributtabellen för ett lager i lagerträdet. Du kan bläddra bland data genom att välja fliken Table.

../../../_images/table_panel.png

Det finns också en flik Preview som visar skiktdata i en förhandsgranskning av kartan.

Om du högerklickar på ett lager i trädet och klickar på Add to Canvas läggs detta lager till på kartan.

Hittills har vi bara tittat på databasen, dess scheman och tabeller och deras metadata, men tänk om vi vill ändra tabellen för att lägga till en extra kolumn kanske? Med DB Manager kan du göra detta direkt.

  1. Välj den tabell som du vill redigera i trädet

  2. Välj Table ► Edit Table från menyn för att öppna dialogrutan Table Properties.

    ../../../_images/edit_table.png

Du kan använda den här dialogen för att lägga till kolumner, lägga till geometriska kolumner, redigera befintliga kolumner eller ta bort en kolumn helt.

På fliken Constraints kan du styra vilka fält som ska användas som primärnyckel eller ta bort befintliga begränsningar.

../../../_images/constraints_panel.png

Fliken Indexes kan användas för att lägga till och ta bort både spatiala och normala index.

../../../_images/indexes_panel.png

18.2.2. ★☆☆ Följ med: Skapa en ny tabell

Nu när vi har gått igenom hur vi arbetar med befintliga tabeller i vår databas ska vi använda DB Manager för att skapa en ny tabell.

  1. Om den inte redan är öppen öppnar du fönstret DB Manager och expanderar trädet tills du ser listan över tabeller som redan finns i databasen.

  2. Välj Table –> Create Table i menyn för att visa dialogrutan Create Table.

  3. Använd standardschemat Public och döp tabellen till places.

  4. Lägg till fälten id, place_name och elevation enligt nedan

  5. Kontrollera att fältet id är inställt som primärnyckel.

  6. Klicka på kryssrutan för Create geometry column och se till att den är inställd på en POINT typ och låt den heta geom och ange 4326 som SRID.

  7. Klicka på kryssrutan för Create spatial index och klicka på Create för att skapa tabellen.

    ../../../_images/create_table.png
  8. Avsluta dialogen som talar om att tabellen har skapats och klicka på Close för att stänga dialogen Create Table.

Du kan nu inspektera din tabell i DB Manager och du kommer naturligtvis att upptäcka att det inte finns några data i den. Härifrån kan du Toggle Editing på lagermenyn och börja lägga till platser i din tabell.

18.2.3. ★☆☆ Följ med: Grundläggande databasadministration

Med DB Manager kan du också utföra vissa grundläggande uppgifter för databasadministration. Det är absolut inte en ersättning för ett mer komplett verktyg för databasadministration, men det ger viss funktionalitet som du kan använda för att underhålla din databas.

Databastabeller kan ofta bli ganska stora och tabeller som ändras ofta kan sluta lämna kvar rester av poster som inte längre behövs av PostgreSQL. Kommandot * VACUUM * tar hand om att göra en slags skräpsamling för att komprimera och valfritt analysera dina tabeller för bättre prestanda.

Låt oss ta en titt på hur vi kan utföra ett VACUUM ANALYZE-kommando från DB Manager.

  1. Välj en av dina tabeller i DB Manager-trädet

  2. Välj Table ► Run Vacuum Analyze från menyn

PostgreSQL kommer nu att utföra operationen. Beroende på hur stor din tabell är kan det ta lite tid att slutföra.

Du kan hitta mer information om VACUUM ANALYZE-processen i PostgreSQL-dokumentationen om VACUUM ANALYZE.

18.2.4. ★☆☆ Följ med: Exekvera SQL-frågor med DB Manager

DB Manager ger dig också möjlighet att skriva frågor mot dina databastabeller och visa resultaten. Vi har redan sett den här typen av funktionalitet i Browser-panelen, men låt oss titta på det igen här med DB Manager.

  1. Välj tabellen lines i trädet.

  2. Välj knappen SQL window i verktygsfältet DB Manager.

    ../../../_images/sql_window_btn.png
  3. Skriv följande SQL-fråga i det utrymme som tillhandahålls:

    select * from lines where roadtype = 'major';
    
  4. Klicka på knappen Execute (F5) för att köra frågan.

  5. Du bör nu se de poster som matchar i Result-panelen.

    ../../../_images/sql_results.png
  6. Klicka på kryssrutan för Load as new layer för att lägga till resultaten på kartan.

  7. Välj kolumnen id som Kolumn med unika heltalsvärden och kolumnen geom som Geometrikolumn.

  8. Ange roads_primary som Layernamn (prefix).

  9. Klicka på Ladda nu! för att ladda resultaten som ett nytt lager i din karta.

    ../../../_images/sql_add_to_map.png

De lager som matchade din fråga visas nu på kartan. Du kan naturligtvis använda det här frågeverktyget för att utföra godtyckliga SQL-kommandon, inklusive många av dem som vi har tittat på i tidigare moduler och avsnitt.

18.2.5. Importera data till en databas med DB Manager

Vi har redan tittat på hur man importerar data till en spatial databas med hjälp av kommandoradsverktyg, så nu ska vi lära oss hur man använder DB Manager för att göra importer.

  1. Klicka på knappen Import layer/file i verktygsfältet i dialogrutan DB Manager.

    ../../../_images/import_layer_btn.png
  2. Välj filen urban_33S.shp från exercise_data/projected_data som indatadataset

  3. Klicka på knappen Update Options för att förifylla några av formulärvärdena.

  4. Kontrollera att alternativet Create new table är valt

  5. Ange Source SRID som 32722 och Target SRID som 4326

  6. Aktivera kryssrutan för att Create Spatial Index

  7. Klicka på OK för att utföra importen

    ../../../_images/import_urban.png
  8. Avsluta dialogrutan som meddelar att importen lyckades

  9. Klicka på knappen Refresh i verktygsfältet DB Manager

Du kan nu inspektera tabellen i din databas genom att klicka på den i trädet. Kontrollera att data har omprojicerats genom att kontrollera att Spatial ref: är listad som WGS 84 (4326).

../../../_images/urban_info.png

Om du högerklickar på tabellen i trädet och väljer Add to Canvas läggs tabellen till som ett lager i kartan.

18.2.6. Exportera data från en databas med DB Manager

DB Manager kan naturligtvis också användas för att exportera data från dina spatiala databaser, så låt oss ta en titt på hur det går till.

  1. Markera lagret lines i trädet och klicka på knappen Export to File i verktygsfältet för att öppna dialogrutan Export to vector file.

  2. Klicka på knappen för att välja Output file och spara data i katalogen exercise_data som urban_4326.

  3. Ställ in Target SRID som 4326.

  4. Klicka på OK för att initiera exporten.

    ../../../_images/export_to_vector.png
  5. Avsluta dialogrutan som talar om att exporten lyckades och stäng DB Manager.

Du kan nu inspektera den shapefil du skapade med hjälp av panelen Browser.

../../../_images/inspect_vector_output.png

18.2.7. Sammanfattningsvis

Du har nu sett hur du använder gränssnittet DB Manager i QGIS för att hantera dina rumsliga databaser, för att köra SQL-frågor mot dina data och hur du importerar och exporterar data.

18.2.8. Vad händer härnäst?

Därefter tittar vi på hur man kan använda många av dessa tekniker med SpatiaLite-databaser.