Esittely

Valmis

SQL-kieli

SQL on lyhenne sanoista Structured Query Language. SQL:ää käytetään kommunikoimaan relaatiotietokantojen kanssa. SQL-lausekkeita käytetään esimerkiksi tietokannan tietojen päivittämiseen tai tietojen noutamiseen tietokannasta. Esimerkiksi SQL SELECT - lauseketta käytetään tietokantakyselyihin ja tietorivien joukon palauttamiseen. Sql:ää käyttävät yleisiä relaatiotietokannan hallintajärjestelmiä ovat esimerkiksi Microsoft SQL Server, MySQL, PostgreSQL, MariaDB ja Oracle.

American National Standards Instituten (ANSI) määrittämä SQL-kielistandardi. Kukin toimittaja lisää omia variaatioitaan ja laajennuksiaan.

SQL SELECT -kysely noutaa tietotaulukon tietokannasta

Tässä moduulissa opit

  • Opit ymmärtämään, mitä SQL on ja miten sitä käytetään
  • Tietokantaobjektien tunnistaminen rakenteet
  • SQL-lausetyyppien tunnistaminen
  • Tietokannan taulukoiden kyseleminen SELECT-lausekkeen avulla
  • Tietotyyppien käsitteleminen
  • NULL-osoitteiden käsitteleminen

Transact-SQL

SQL-peruslausekkeet, kuten SELECT, INSERT, UPDATE ja DELETE , ovat käytettävissä riippumatta siitä, mitä relaatiotietokantajärjestelmää käsittelet. Vaikka nämä SQL-lausekkeet ovat osa ANSI SQL -standardia, myös monilla tietokannan hallintajärjestelmillä on omat laajennuksensa. Nämä laajennukset tarjoavat toimintoja, joita SQL-standardi ei kata, ja ne sisältävät esimerkiksi suojauksen hallinnan ja ohjelmoitavuuden. Microsoftin tietokantajärjestelmät, kuten SQL Server, Azure SQL -tietokanta, Microsoft Fabric ja muut, käyttävät SQL:n murretta nimeltä Transact-SQL tai T-SQL. T-SQL sisältää kielilaajennukset tallennettujen toimintosarjojen ja funktioiden kirjoittamiseen. Ne ovat tietokantaan tallennettua sovelluskoodia, jolla hallitaan käyttäjätilejä.

SQL on deklaratiivinen kieli

Ohjelmointikielet voidaan luokitella proseduaalisiksi tai deklaratiivisiksi. Menettelykielien avulla voit määrittää ohjeita, joita tietokone noudattaa tehtävän suorittamiseen. Deklaratiivisten kielten avulla voit kuvata haluamasi tuloksen ja jättää tulosteen tuottamiseen tarvittavien vaiheiden tiedot suorittamismoduuliin.

SQL tukee joitakin menettelysyntakseja, mutta tietojen kyseleminen SQL:llä noudattaa yleensä deklaratiivista semantiikkaa. SQL:n avulla voit kuvata haluamiasi tuloksia, ja tietokantamoduulin kyselykäsittely kehittää kyselysuunnitelman sen noutamiseksi. Kyselynkäsittely käyttää tilastotietoja tietokannan tiedoista ja indekseistä, jotka on määritetty taulukoissa, hyvän kyselysuunnitelman määritykseksi.

Relaatiotiedot

SQL:ää käytetään useimmiten (mutta ei aina) tietojen kyselemiseen relaatiotietokannoissa . Relaatiotietokanta on tietokanta, jossa tiedot on järjestetty useisiin taulukoihin (teknisesti kutsutaan suhteiksi), joista kukin edustaa tietyntyyppistä entiteettiä (kuten asiakas, tuote tai myyntitilaus). Näiden entiteettien määritteet (esimerkiksi asiakkaan nimi, tuotteen hinta tai myyntitilauksen tilauspäivämäärä) määritetään taulukon sarakkeiksi tai määritteiksi, ja jokainen taulukon rivi edustaa entiteettityypin esiintymää (esimerkiksi tiettyä asiakasta, tuotetta tai myyntitilausta).

Tietokannan taulukot liittyvät toisiinsa käyttäen avainsarakkeita, jotka yksilöivät edustetun entiteetin. Kullekin taulukolle on määritetty perusavain , ja viittaus tähän avaimeen määritetään viiteavaimeksi missä tahansa liittyvässä taulukossa. Tämä on helpompi ymmärtää katsomalla esimerkkiä:

Relaatiotietokanta, joka sisältää neljä taulukkoa

Kaaviossa näkyy relaatiotietokanta, joka sisältää neljä taulukkoa:

  • Customer
  • SalesOrderHeader
  • SalesOrderDetail
  • Product

Jokainen asiakas tunnistetaan yksilöllisen Asiakastunnus-kentän perusteella – tämä kenttä on Asiakas-taulukon perusavain. SalesOrderHeader-taulukossa on perusavain nimeltä OrderID kunkin tilauksen tunnistamiseksi. Se sisältää myös CustomerID-viiteavaimen, joka viittaa asiakastaulukon perusavaimeen. Näin se tunnistaa kuhunkin tilaukseen liittyvän asiakkaan. Tilauksen yksittäisiä kohteita koskevat tiedot tallennetaan SalesOrderDetail-taulukkoon, jossa on yhdistelmä-perusavain, joka yhdistää SalesOrderHeader-taulukonOrderID-tunnuksenLineItemNo-arvoon. Näiden arvojen yhdistelmä yksilöi rivikohteen. OrderID-kenttää käytetään myös viiteavaimena ilmaisemaan, mihin tilaukseen rivinimike kuuluu, ProductID-kenttää käytetään viiteavaimena Tuote-taulukon ProductID-perusavaimeen ilmaisemaan, mikä tuote tilattiin.

Joukkopohjainen käsittely

Joukkoteoria on yksi tietojen hallinnan relaatiomallin matemaattisista perusteista, ja se on olennaista relaatiotietokantojen kanssa työskentelyn kannalta. Vaikka pystyt ehkä kirjoittamaan kyselyjä T-SQL:ssä ilman kattavaa tietojoukkoa, sinulla voi lopulta olla vaikeuksia kirjoittaa joitakin monimutkaisempia lausetyyppejä, joita tarvitaan optimaalisen suorituskyvyn takaamiseksi.

Sukeltamatta sarjateorian matematiikkaan voit ajatella joukkoa "kokoelmana selviä, erillisiä esineitä, joita pidetään kokonaisina". SQL Server -tietokannoissa käytetyissä termeissä voit ajatella joukkoa erillisten objektien kokoelmana, joka sisältää nolla tai useampia samantyyppisiä jäseniä. Esimerkiksi Asiakas-taulukko edustaa joukkoa: erityisesti kaikkien asiakkaiden joukkoa. Näet, että SELECT-lausekkeen tulokset muodostavat myös joukon.

Kun saat lisätietoja T-SQL-kyselylausekkeista, on tärkeää ajatella aina koko joukkoa yksittäisten jäsenten sijaan. Tämän ajattelutavan on parempi varustaa sinut kirjoittamaan joukkopohjainen koodi sen sijaan, että ajattelisit rivi kerrallaan. Joukkotyö edellyttää ajattelua toiminnoissa, jotka tapahtuvat "kaikki kerralla" yhden sijaan kerrallaan.

Yksi tärkeä joukkoteoriaan liittyvä ominaisuus on, että joukon jäsenten järjestykseen ei ole mitään määritystä. Tämä järjestyksen puute koskee relaatiotietokannan taulukoita. Ensimmäistä riviä, toista riviä tai viimeistä riviä ei ole. Elementtejä voidaan käyttää (ja hakea) missä tahansa järjestyksessä. Jos sinun on palautettava tulokset tietyssä järjestyksessä, sinun on määritettävä se eksplisiittisesti käyttämällä SELECT-kyselyn ORDER BY -lausetta.