NULL tai tyhjä

Tietokannoissa taitaa vakiona olla se, että kohta jossa ei ole tietoa on NULL. Huomasin että tietokantaan voi myös syöttää tyhjän tiedon eli esimerkiksi "" jolloin tietokannassa tieto näkyy tyhjänä ilman NULL merkintää. Onko sillä merkitystä käytännössä, onko siellä tyhjä merkintä vai NULL vai pitäisikö aina pyrkiä saamaan NULL kohtaan, jossa ei ole tietoa.

Voi kuulostaa tyhmältä kysymykseltä mutta minä en ainakaan ole oikein ymmärtänyt, kumpi olisi ns. parempi tieto.
51200
Äänestä

Muut lukivat myös

Vastaukset 5

Vanhimmat

Kyllä nullia kannattaa suosia vaikka se teettääkin ikävästi lisää murheita, sitä kun ei voi verrata mihinkään vaan se on aina erikseen testattava.
Mutta vaikkapa numeerisissa kentissä, jos ei halua siellä mitään numeroarvoa esittää niin ainoa vaihtoehto on silloin null.
Merkijonoissa merkitys on toki pienenpi mutta siltikin ero on aivan oleellinen eli onko tietoa vai onko kentälle määritetty jokin arvo vaikapa "", joka siis on aivan eri asia kuin se, ettei arvoa ole ollenkaan.

Äänestä
  • Monesti tota hyödynnetään esimerkiksi niin kun käyttäjät tauluun lisätään sarake "toinen nimi" aluksi se on kaikilla null siis ei tiedetä sitä. Sitten pikkuhiljaa päivittyy tyhjäksi = käyttäjällä ei toista nimeä, tai toisella nimellä. Tällöin on helppo tehdä kysely jolla saadaan ne ketkä eivät ole vielä päivittäneet toista nimeä.

    Sekä jos kyseessä on taulujen välinen liitos niin silloin ilmanmuuta null eikä mitään tyhjää.

    Numerotyyppisissä sarakkeissa nulleja käytetään usein väärin, esim jos joku ei saa palkkaa ollenkaan niin silloinhan asia tiedetään joten ei null vaan ihan 0.

    Sekä kannattaa huomioida, että nulleja voi olla monta, mutta tyhjiä taas yksi mikäli unique.

    Äänestä

  • Joku Vaan kirjoitti:

    Monesti tota hyödynnetään esimerkiksi niin kun käyttäjät tauluun lisätään sarake "toinen nimi" aluksi se on kaikilla null siis ei tiedetä sitä. Sitten pikkuhiljaa päivittyy tyhjäksi = käyttäjällä ei toista nimeä, tai toisella nimellä. Tällöin on helppo tehdä kysely jolla saadaan ne ketkä eivät ole vielä päivittäneet toista nimeä.

    Sekä jos kyseessä on taulujen välinen liitos niin silloin ilmanmuuta null eikä mitään tyhjää.

    Numerotyyppisissä sarakkeissa nulleja käytetään usein väärin, esim jos joku ei saa palkkaa ollenkaan niin silloinhan asia tiedetään joten ei null vaan ihan 0.

    Sekä kannattaa huomioida, että nulleja voi olla monta, mutta tyhjiä taas yksi mikäli unique.

    Kiitos molemmille vastauksista. Vastaukset valotti tätä asiaa aika hyvin. Luulis että näillä jo pärjännee. Tuo Joku Vaan esimerkki käyttäjän toisesta nimestä selvitti todella hyvin. Jostain syystä itsellä on ollut vaikea hahmottaa nulleja ja tyhjiä tietoja arvoina mutta nyt on taas jotain opittu lisää. Kiitos!

    Äänestä

  • Joku Vaan kirjoitti:

    Monesti tota hyödynnetään esimerkiksi niin kun käyttäjät tauluun lisätään sarake "toinen nimi" aluksi se on kaikilla null siis ei tiedetä sitä. Sitten pikkuhiljaa päivittyy tyhjäksi = käyttäjällä ei toista nimeä, tai toisella nimellä. Tällöin on helppo tehdä kysely jolla saadaan ne ketkä eivät ole vielä päivittäneet toista nimeä.

    Sekä jos kyseessä on taulujen välinen liitos niin silloin ilmanmuuta null eikä mitään tyhjää.

    Numerotyyppisissä sarakkeissa nulleja käytetään usein väärin, esim jos joku ei saa palkkaa ollenkaan niin silloinhan asia tiedetään joten ei null vaan ihan 0.

    Sekä kannattaa huomioida, että nulleja voi olla monta, mutta tyhjiä taas yksi mikäli unique.

    "Sekä kannattaa huomioida, että nulleja voi olla monta, mutta tyhjiä taas yksi mikäli unique."

    Kyllä se on niin, jotta tyhjä ei kyllä ole mikään unique, tai on jos se on kentänä tyyppi mutta sehän ei käynyt tuosta ilmi.

    Äänestä

Yleensäottaen null tarkoittaa juurikin puuttuvaa arvoa. Jos puhdasoppisesti mennään, niin null on parempi kuin esim. tyhjä merkkijono, koska sekin voi sisältää informaation siitä ettei kyseistä informaatiota ole vielä annettu.

Käytännössä itse käytän kuitenkin yleensä "" merkkijonoissa nullin tilalla ja nullia lähinnä puuttuvissa viiteavaimissa. Numerotyyppisten kenttien kanssa harvemmin tuollaista edes tarvitsee.

Äänestä

Kommentoi aloitusta


epätietoinen1235 kirjoitti:

Tietokannoissa taitaa vakiona olla se, että kohta jossa ei ole tietoa on NULL. Huomasin että tietokantaan voi myös syöttää tyhjän tiedon eli esimerkiksi "" jolloin tietokannassa tieto näkyy tyhjänä ilman NULL merkintää. Onko sillä merkitystä käytännössä, onko siellä tyhjä merkintä vai NULL vai pitäisikö aina pyrkiä saamaan NULL kohtaan, jossa ei ole tietoa.

Voi kuulostaa tyhmältä kysymykseltä mutta minä en ainakaan ole oikein ymmärtänyt, kumpi olisi ns. parempi tieto.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu