sql >> Database teknologi >  >> RDS >> Mysql

Hvad er forskellene mellem Null, Zero og Blank i SQL?

Nul er en talværdi. Det er en bestemt med præcise matematiske egenskaber. (Du kan regne på det ...)

NULL betyder fravær af nogen værdi. Du kan ikke gøre noget med det, undtagen at teste for det.

Blank er dårligt defineret. Det betyder forskellige ting i forskellige sammenhænge for forskellige mennesker. For eksempel:

  • Nogen kunne mene en strengværdi på nul:dvs. én uden tegn ('' ).
  • Nogen kunne mene en strengværdi, der ikke er nul, og som kun består af ikke-udskrivende tegn (MELLEMRUM, TAB osv.). Eller måske kun bestående af et enkelt MELLEMRUM.
  • I nogle sammenhænge (hvor tegn og streng er forskellige typer), kan nogen mene en ikke-udskrivende tegnværdi.
  • Nogen kan endda mene "alt, der ikke vises, når du udskriver eller viser det".

Pointen er, at "blank" ikke har en enkelt veldefineret betydning. I hvert fald ikke i (indfødt) engelsk it-terminologi. Det er nok bedst at undgå det ... hvis du vil have andre it-professionelle til at forstå, hvad du mener . (Og hvis en anden bruger udtrykket, og det ikke fremgår tydeligt af konteksten, så bed dem om at sige præcist, hvad de betyder!)

Vi kan ikke sige noget generelt meningsfuldt om, hvordan NUL / NULL / BLANK er repræsenteret, hvor meget hukommelse de optager eller noget lignende. Det eneste vi kan sige er, at de er repræsenteret forskelligt fra hinanden .... og at den faktiske repræsentation er implementerings- og kontekstafhængig .



  1. Introduktion til C

  2. Hvordan afslutter jeg et script i SQLPlus, når der opstår en fejl, og vender tilbage til SQLPlus-prompten uden at afbryde eller afslutte SQLPlus?

  3. Postgres holdt lige tilfældigt op med at virke (Rails, PGSQL.5432)

  4. Er Intel dømt i serverens CPU-plads?