Kodulehed
[388] - Andmebaasid I (ITI0206) (kevad 2025)
Esiletöstetud Kiirvalik
Lisainfo Kõige olulisemate tegevuste kiirvalik. Failide saatmiseks valige Vastamine alt sobiv ülesanne.
Üldist
Materjalid
LisainfoMaterjalide kataloogid
Isiklik
Lisainfo Info ainult Sulle - teised kasutajad seda ei näe
Abi
Lisainfo Võimalus küsida õppejõult abi (nagu foorum, kus saab küsida küsimusi ja kommenteerida vastuseid)
Mitmesugust
Abi / Kasutajatugi / SQL

Avalikud küsimused ja vastused:

Küsimuste teemade nimekiri

Anonüümne (01.02.2025 14:55):
Kuidas jõustada MS Accessi ja PostgreSQL andmebaasis piirangut, et väärtus ei tohi olla tühi string, tühikutest koosnev string, tühimärkidest koosnev string?
Vastus (01.02.2025 15:13): Tühi string, tühikutest koosnev string ja tühimärkidest koosnev string on kõik tekstilised väärtused ning selliseid piiranguid võib olla vaja jõustada tekstiliste veergude põhjal.

Need ei ole sama mis NULL. NULL on spetsiaalne tähis, mis osutab väärtuse puudumisele, samas kui eelnimetatud on väärtused. Tühimärkide hulk (ingl k whitespace character)  hõlmab tühikuid, tabulatsioone, reavahetusi ja muid mitteprinditavaid tühikuid tekstis.

Oletame, et tabelis on veerg nimega nimetus. Mõned märkused:
  • Trim on paljudes andmebaasisüsteemides toetatud funktsioon, mis eemaldab stringi algusest ja lõpust tühikud.
  • Esitatud kitsendused on sellised, kus iga kitsenduse realisatsioon hõlmab endas ka eelmiste kitsenduste jõustamist (seega näiteks kitsenduse "ei tohi olla tühimärkidest koosnev string" realisatsioon välistab ka tühikutest koosnevate stringide ja tühjade stringide registreerimise.

MS Access
  • Ei tohi olla tühi string (kaks võimalikku viisi):
    • Veeru nimetus omadus, mida saab määrata graafilises kasutajaliideses: Allow Zero Length = No
    • CHECK(nimetus<>'')
  • Ei tohi olla tühikutest koosnev string (kaks võimalikku viisi):
    • Veeru nimetus valideerimisreegel, mida saab määrata graafilises kasutajaliideses: Trim([nimetus])<>''
    • CHECK(Trim(nimetus)<>'')
  • Ei tohi olla tühimärkidest koosnev string: Ei saa jõustada

PostgreSQL
  • Ei tohi olla tühi string:
    • CHECK(nimetus<>'')
  • Ei tohi olla tühikutest koosnev string:
    • CHECK(Trim(nimetus)<>'')
  • Ei tohi olla tühimärkidest koosnev string:
    • CHECK(nimetus!~'^[[:space:]]*$')
      • Kasutatakse regulaaravaldist
      • !~ - operaator, mis kontrollib, et string ei vastaks mustrile
      • [[:space:]] - tühimärkide klass
      • ^ - stringi algus
      • $ - stringi lõpp
      • * - esineb null või rohkem korda
      • Alternatiivne kirjapilt: CHECK(nimetus!~'^\s*$')

Hinda vastust:

Keskmine hinne : Pole veel hinnanguid!