Yksinkertaistettu SQL: Modulaaristen ja ymmärrettävien kyselyjen luominen CTE:illä - KDnuggets

Yksinkertaistettu SQL: Modulaaristen ja ymmärrettävien kyselyjen luominen CTE:illä – KDnuggets

Lähdesolmu: 3084928

Yksinkertaistettu SQL: Modulaaristen ja ymmärrettävien kyselyjen luominen CTE:illä
Kuva tekijältä 
 

Tietojen maailmassa SQL on edelleen lingua franca vuorovaikutuksessa tietokantojen kanssa. 

Vielä nykyäänkin se on yksi eniten käytetyistä kielistä tietojen käsittelyssä, ja sitä pidetään edelleen jokaisen hyvän data-ammattilaisen välttämättömänä. 

Jokainen, joka on työskennellyt monimutkaisten SQL-kyselyiden kanssa, tietää kuitenkin, että ne voivat nopeasti muuttua raskaaksi pedoiksi – niitä on vaikea lukea, ylläpitää tai käyttää uudelleen. 

Siksi nykyään ei riitä, että osaat SQL:ää, meidän on oltava hyviä laatimaan kyselyitä. Ja tämä on itse asiassa eräänlaista taidetta. 

Tässä kohtaa Common Table Expressions (CTE:t) tulee peliin, mikä muuttaa kyselyn kirjoittamisen jäsennellymmäksi ja helposti lähestyttäväksi taiteeksi.

Otetaan siis yhdessä selvää, kuinka koodataan luettavia ja uudelleenkäytettäviä kyselyjä.

Jos mietit, mikä on CTE, olet oikeassa artikkelissa. 

Common Table Expression (CTE) on väliaikainen tulosjoukko, joka määritellään yhden SQL-käskyn suoritusalueella. 

 

Ne ovat ajallisia taulukoita, joihin voidaan viitata monta kertaa yhdessä kyselyssä, ja niitä käytetään tyypillisesti monimutkaisten liitosten ja alikyselyjen yksinkertaistamiseen, ja perimmäisenä tavoitteena on parantaa SQL-koodin luettavuutta ja organisointia.

Joten ne ovat tehokas työkalu monimutkaisten kyselyiden jakamiseen yksinkertaisempiin osiin.

Tästä syystä sinun tulee harkita CTE: n käyttöä:

  • modulaarisuus: Voit hajottaa monimutkaisen logiikan luettaviin osiin.
  • luettavuus: Se helpottaa SQL-kyselyjen kulun ymmärtämistä.
  • Uudelleenkäytettävyys: CTE:ihin voidaan viitata useita kertoja yhdessä kyselyssä toiston välttämiseksi.

Taika alkaa WITH-lauseella, joka edeltää pääkyselyäsi ja määrittelee erilaisia ​​temporaalitaulukoita (CTE) aliaksineen.

Siksi meidän on aina aloitettava kyselymme "WITH"-komennolla, jotta voimme alkaa määrittää omia CTE:itä. Käyttämällä CTE:itä voimme jakaa minkä tahansa monimutkaisen SQL-kyselyn: 

– Pienet temporaaliset taulukot, jotka laskevat toisiinsa liittyviä muuttujia. 

– Lopputaulukko, joka ottaa vain ne muuttujat, jotka haluamme tuotokseksi.

Ja tämä on juuri se MODULAARINEN lähestymistapa, jonka haluamme missä tahansa koodissa!

 

Yksinkertaistettu SQL: Modulaaristen ja ymmärrettävien kyselyjen luominen CTE:illä
Kuva tekijältä
 

Joten käyttämällä CTE:itä kyselyissämme voimme:

– Suorita temporaalinen taulukko KERRAN ja viittaa siihen USEITA kertoja.

– Paranna luettavuutta ja yksinkertaistaa monimutkaista logiikkaa.

– Edistää koodin uudelleenkäytettävyyttä ja modulaarista suunnittelua.

Ymmärtääksemme tätä paremmin, voimme ottaa käytännön esimerkin Airbnb-listauksista Barcelonassa. 

Kuvittele, että haluamme analysoida listausten tehokkuutta kaupunginosittain ja verrata sitä kaupungin yleiseen suorituskykyyn. Sinun on koottava yhteen tiedot kaupunginosista, yksittäisistä asunnoista, isännöistä ja hinnoittelusta.

Esimerkkinä tästä käytämme InsideAirbnb Barcelonan taulukko, joka näyttää tältä: 

 

Yksinkertaistettu SQL: Modulaaristen ja ymmärrettävien kyselyjen luominen CTE:illä
 

Naiivi lähestymistapa saattaa johtaa siihen, että luot sisäkkäisiä alikyselyitä, joista tulee nopeasti ylläpidon painajainen, kuten seuraava:

Kirjoittajan koodi

Sen sijaan voimme käyttää CTE:itä jakaaksemme kyselymme loogisiin osiin, joista jokainen määrittelee palapelin palan.

  • Naapuruston tiedot: Luo CTE tehdäksesi yhteenvedon tiedoista naapuruston mukaan.
  • Asunnon ja isäntätiedot: Määritä CTE:t saadaksesi lisätietoja asunnoista ja isännöistä.
  • Kaupungin laajuiset mittarit: Toinen CTE kerää kaupunkitason tilastoja vertailua varten.
  • Lopullinen kokoonpano: Yhdistä CTE:t lopulliseen SELECT-lauseeseen esittääksesi tiedot yhtenäisesti.

 

Yksinkertaistettu SQL: Modulaaristen ja ymmärrettävien kyselyjen luominen CTE:illä
Kuva tekijältä
 

Ja päädymme seuraavaan kyselyyn:

Kirjoittajan koodi

Käyttämällä CTE:itä muutamme mahdollisesti hirviömäisen yksittäisen kyselyn järjestetyksi tietomoduulijoukoksi. Tämä modulaarinen lähestymistapa tekee SQL-koodista intuitiivisemman ja mukautuvamman muutoksiin. 

Jos uusia vaatimuksia ilmenee, voit muokata tai lisätä CTE:itä ilman koko kyselyn tarkistamista.

Kun olet määrittänyt CTE:si, voit käyttää niitä uudelleen vertailevan analyysin tekemiseen. Jos esimerkiksi haluat verrata naapuruston tietoja kaupungin laajuisiin mittareihin, voit viitata CTE-pisteisiisi sarjassa JOIN-toimintoja. 

Tämä paitsi säästää aikaa, myös pitää koodisi tehokkaana, koska sinun ei tarvitse toistaa samaa kyselyä kahdesti!

CTE:t ovat osoitus periaatteesta, että pienellä rakenteella pääsee pitkälle ohjelmoinnissa. Ottamalla käyttöön CTE:t voit kirjoittaa selkeämpiä, helpommin ylläpidettäviä ja uudelleenkäytettäviä SQL-kyselyitä. 

Se virtaviivaistaa kyselyn kehitysprosessia ja helpottaa monimutkaisen tiedonhakulogiikan välittämistä muille.

Muista, että kun seuraavan kerran alat kirjoittaa usean liitoksen sisäkkäistä alikyselyhirviötä, harkitse sen hajottamista CTE:illä. 

Tuleva itsesi – ja kaikki muut, jotka saattavat lukea koodisi – kiittävät sinua.
 
 

Josep Ferrer on analytiikkainsinööri Barcelonasta. Hän valmistui fysiikan insinööriksi ja työskentelee tällä hetkellä tietotieteen alalla, jota sovelletaan ihmisen liikkuvuuteen. Hän on osa-aikainen sisällöntuottaja, joka keskittyy tietotieteeseen ja teknologiaan. Voit ottaa häneen yhteyttä LinkedIn, Twitter or Keskikokoinen.

Aikaleima:

Lisää aiheesta KDnuggets