sql >> Databasteknik >  >> RDS >> Mysql

Ska jag använda NULL eller en tom sträng för att representera inga data i tabellkolumnen?

Jag håller inte med om alla som säger att man villkorslöst ska använda NULL. Att tillåta en kolumn att vara NULL introducerar ett ytterligare tillstånd som du inte skulle ha om du ställer in kolumnen som NOT NULL. Gör inte detta om du inte behöver det extra tillståndet. Det vill säga, om du inte kan komma på en skillnad mellan betydelsen av tom sträng och betydelsen av null, ställ sedan in kolumnen som NOT NULL och använd tom sträng för att representera tom. Att representera samma sak på två olika sätt är en dålig idé.

De flesta som sa åt dig att använda NULL gav också ett exempel där NULL skulle betyda något annat än tom sträng. Och i dessa exempel har de rätt.

För det mesta är dock NULL ett onödigt extra tillstånd som bara tvingar programmerare att behöva hantera fler fall. Som andra har nämnt tillåter inte Oracle detta extra tillstånd att existera eftersom det behandlar NULL och tom sträng som samma sak (det är omöjligt att lagra en tom sträng i en kolumn som inte tillåter null i Oracle).



  1. Hur LIKE-operatören fungerar i MariaDB

  2. Har replace into en where-klausul?

  3. MySQLi - deklarerar variabel efter bind_param?

  4. Hur man beställer genom pivottabelldata i Laravels Eloquent ORM