Johdatus SQL-kieleen
Mitä SQL on
SQL (Structured Query Language) on standardoitu kyselykieli, jota käytetään relaatiotietokantojen hallintaan ja käsittelyyn. Sen avulla voit esimerkiksi lisätä, hakea, muokata ja poistaa tietoja.
SQL ei ole varsinaisesti ohjelmointikieli, vaan niin sanottu deklaratiivinen kyselykieli. Se kuvaa mitä halutaan tehdä, mutta ei sitä, miten toiminto toteutetaan teknisesti. Toisin kuin imperatiivisissa ohjelmointikielissä, käyttäjä ei ohjaa kyselyn suoritusta. Sen sijaan tietokannan optimointikoneisto päättää suorituspolusta – usein hyvin tehokkaasti.
SQL ei ole ohimenevä trendi. Sen juuret ulottuvat 1970-luvulle, jolloin IBM:n tutkimus irrotti tietojen säilytyksen loogisesta esittämisestä. Tämä innovaatio mahdollisti uudenlaisen, tehokkaamman tavan järjestellä tietoa, ja sen päälle kehitettiin myöhemmin SQL. SQL:n standardointi alkoi 1980-luvulla, ja siitä lähtien SQL on ollut tietokantojen de facto kyselykieli.
SQL:n osaaminen on kriittinen taito niin ohjelmistokehittäjille, data-analyytikoille, markkinoijille kuin järjestelmäasiantuntijoille. SQL on nykyään läsnä kaikkialla, ja sen osaaminen on hyödyllistä useimmissa työtehtävissä. Esimerkiksi lähes kaikki data- ja analytiikkatyökalut, verkkokaupat ja julkaisujärjestelmät tukevat SQL:n käyttöä.
Miten kirjoitan ja testaan SQL-kyselyn?
SQL-kysely laaditaan yleensä tietokannan omassa hallintatyökalussa tai erillisessä SQL-editorissa.
Kyselyn laatiminen alkaa tarpeen määrittelystä: mitä tietoa haetaan, mistä taulusta se löytyy ja millä ehdoilla se haetaan? Esimerkiksi, jos haluat listata kaikkien HR-osaston työntekijöiden nimet, kysely voisi näyttää tältä:
SELECT nimi FROM tyontekijat WHERE osasto = 'HR';
Kun kysely on kirjoitettu, se suoritetaan testitietokannassa. Tällöin tulosjoukkoa tulisi tarkastella: palauttaako kysely oikean määrän rivejä, sisältävätkö sarakkeet oikeat arvot jne. Tarvittaessa muokkaa tai optimoi kyselyä – esimerkiksi lisäämällä ehtoja, rajaamalla kyselyä tai määrittämällä lajittelujärjestys.
Useimmat tietokannat tarjoavat omat graafiset työkalunsa SQL-kyselyiden kirjoittamiseen. PostgreSQL käyttää pgAdmin-työkalua, Microsoftin SQL Server käyttää SQL Server Management Studiota (SSMS), ja MySQL:lle on tarjolla MySQL Workbench. Nämä kehitysympäristöt tarjoavat hyödyllisiä lisäominaisuuksia, kuten syntaksin tarkistuksen ja automaattisen täydennyksen.
SQL standardi ja dialektit
SQL-kielestä on olemassa sekä standardisoitu muoto, ANSI-SQL. Lisäksi SQL-kielestä on olemassa tietokantakohtaisia murteita eli dialekteja. Eroa näiden välillä voi verrata Suomen kirjakieleen ja murteisiin - jokainen ymmärtää kirjakieltä, mutta murteet ovat käytössä yleisempiä. Dialektien erot liittyvät syntaksin ja nimeämisen kaltaisiin yksityiskohtiin. Esimerkiksi Microsoft SQL Serverissä nykyinen aika haetaan seuraavalla SQL-kyselyllä:
SELECT GETDATE();
Microsoft Accessissa vastaava kysely kirjoitetaan hieman eri tavalla:
SELECT Now();
Vaikka eri tietokantamoottoreilla on omat laajennuksensa, SQL itsessään on standardisoitu kieli. Tämä mahdollistaa osaamisen siirtämisen järjestelmästä toiseen ilman, että täytyy opetella täysin uusi kyselylogiikka.
Tärkeimmät SQL-dialektit ovat:
- T-SQL on Microsoft SQL Serverin laajennus, joka tukee mm. muuttujia ja proseduurikutsuja.
- Jet-SQL on Microsoft Accessin käyttämä laajennus.
- PL/pgSQL on PostgreSQL:n oma laajennettu SQL-versio.
- SQL*Plus ja PL/SQL ovat Oraclen proseduraalisia laajennuksia.
- MySQL on MySQL:n ja MariaDB:n käyttämä laajennettua SQL-versio, joka poikkeaa osittain standardista.
- SQLite on yksinkertaistettu, kevyt SQL-versio embedded-ympäristöihin.
- BigQuery SQL on Google Cloudin pilvipohjainen SQL-dialekti BigQuery-tietokannoille. Se on optimoitu suurten tietomäärien reaaliaikaiseen analysointiin.
Tunnetuimmat SQL-kieltä tukevat tietokantajärjestelmät
Tunnetuimpia SQL-tietokantoja ovat PostgreSQL, MySQL (ja siitä irtaantunut MariaDB), Microsoft SQL Server, Oracle Database, SQLite ja Microsoft Access. Jokaisella tietokannalla on omat erityispiirteensä, jotka vaikuttavat myös SQL:n käyttöön:
- PostgreSQL tunnetaan kehittyneisyydestään ja avoimuudestaan.
- MySQL on suosittu web-kehityksessä ja käytetään erityisesti PHP:n ja WordPressin kanssa.
- Microsoft SQL Server tarjoaa laajan tuen Microsoftin ekosysteemille.
- SQLite on kevyt ja helposti integroitava, käytetty erityisesti mobiilisovelluksissa ja embedded-järjestelmissä.
- Microsoft Access on pk-yrityksiin ja kotikäyttöön suunnattu "työpöytä-tietokanta".
- Google BigQuery on pilvipohjainen, erittäin skaalautuva tietovarastopalvelu, joka on suunniteltu suurten tietomäärien analysointiin.