Menu
  • Hem
  • Dokument
  • Om Mig
Geosupportsystem

”Sequel”, ett språk för GIS

Posted on 2015-06-11

Alla kanske inte vet vad jag menar när jag säger ”Sequel”, men om jag istället använder den nu vanliga förkortningen SQL så kanske det går upp ett ljus.

SQL är inte ett namn på en databas från Microsoft utan ett namn på det programspråk som används för att kommunicera med många olika typer av databaser. Det korrekta namnet på Microsofts databas är SQL-Server (Microsoft sequel server).

Sequel står för ”Structured English QUEry Language”, men detta förkortades så småningom till bara SQL då det inte är så väldigt många paralleller till det engelska språket. Utvecklingen påbörjades i början av 1970-talet.

Microsoft är inte ensamma om att använda SQL som språk för att sköta datautbyte med en databas. MySQL, PostgreSQL och Oracle är exempel på andra. Många av dessa använder en något modifierad ”dialekt” av SQL (Microsofts kallas T-SQL), men i grunden så är de kompatibla.

För mina behov så är det PostgreSQL och det rumsliga tillägget PostGIS som gäller. I detta inlägg så testar jag lite olika kommandon i SQL (pgSQL) för att nosa lite på vad som är möjligt att göra med SQL.

Skärmbild från 2015-06-07 09:05:58Öppna DB Manager och välj en databas du är ansluten till. Klicka på ”SQL fönster” knappen och testa dina SQL frågor där. I bilden ovan har jag använt en av de vanligaste frågorna nämligen SELECT.

SELECT * from "schema"."tabell";

Detta listar samtliga rader i tabellen, vilket kanske inte är så användbart men låt oss prova ett urval på namn:

Skärmbild från 2015-06-07 09:32:32Frågan i bilden listar kolumnerna ”name” och ”type” för de rader där innehållet i kolumnen ”name” påminner om ”randstation” och ”äddningstj”. Här har jag valt att ta med så mycket som behövs av texten i det jag är intresserad av då SQL är skiftlägeskänligt, och med LIKE får jag med både ”Brandstationer” och ”brandstationer”.

Lägg märke till att ” används för schema och tabellnamn, medan ’ används för textsträngar, samt att frågan avslutas med semikolon (;).

När man fått det svar man är ute efter så kan man lägga till urvalet som lager. Då behövs även geometrin, så om man inte använder * som urval så får man lägga till ”geom” bland urvalskolumnerna. Det är god praxis att även lägga till ”id” så att man inte riskerar att få dubbletter i lagret.

Skärmbild från 2015-06-07 09:37:05Det lager som skapas använder inte ett lagerurval (Lageregenskaper, Allmänt) på traditionellt sätt, utan urvalet bakas in direkt i frågan. Om man använder ”Frågebyggaren” (Feature subset i bilden ovan) för att skapa ett urval så skapas en motsvarande textsträng i frågan till lagerkällan, men med den skillnaden att alla kolumner kommer med.

Frågebyggaren utgår nämligen från att det du skriver in är kommandot efter:

SELECT * FROM "schema"."tabell" WHERE

Så genom att skriva in frågan själv kan du anpassa urvalet.

Nu kan man göra oändligt mycket mer med SQL och PostGIS (eller andra rumsliga relationsdatabaser med SQL frågespråk).

Varför skulle man exempelvis vara begränsad till enkla filter av den typ jag beskriver här. Det går lika bra att göra rumsliga urval (om än lite längre syntax) för objekt i ett visst område, eller objekt av en viss storlek.

Med rätt konfigurerad databas så kan även mycket bearbetning göras av databasen. Exempelvis kan man via SQL be databasen ta fram kortaste väg mellan två punkter, förutsatt att det finns exempelvis topologier i datakällan.

Jag har som sagt bara varit inne och nosat på vad som är möjligt med SQL och är det något man som GIS-student skall lära sig förutom Python så är det sannolikt SQL. Jag önskar att jag kunde vrida tillbaka klockan för egen del.

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Translate with Google

GBR In English
GER Auf Deutch
FRA En Français
ESP En Español
Swedish is a hard language for a machine to translate. Nuance and detail will likely be lost.
     

Bok om QGIS på Svenska

Bok

Beställ Boken/E-bok genom att klicka på bilden (även förhandsgranskning).

Senaste kommentarer

  • klakar om Laga hål i höjddata
  • Per Ekström om Laga hål i höjddata
  • Sur om Mera verktyg i QGIS
  • Anton om ”Mobile *.Geodatabase”
  • Fredrik Ekberg om Ingen är oskyldig

Arkiv

Prenumerera på Geosupportsystem

Skriv in namn och epost för att prenumerera på meddelanden från denna blogg.
Loading

geosupport

TrueNAS bygge. @fractaldesignna Define R5 är rikt TrueNAS bygge. @fractaldesignna Define R5 är riktigt trevlig att bygga i, och den sväljer väldigt mycket disk. Här skall virtualiseras både PostGis, WebODM och Geonode så småningom.
Då har jag lite att bläddra i ett tag framöver. Då har jag lite att bläddra i ett tag framöver.
YouTube video to frames. Processed in OpenDroneMap YouTube video to frames. Processed in OpenDroneMap and visualized in QGIS 3.17.
Ladda mer...

Meta

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • WordPress.org
©2021 Geosupportsystem | WordPress Theme by Superbthemes.com