Database
 sql >> Baza danych >  >> RDS >> Database

SQL, Obsługa pustych komórek

Kiedy tworzymy tabelę w ten sposób:

CREATE TABLE people (
  age INT,
  name CHAR(20)
);

SQL swobodnie akceptuje puste wartości jako rekordy:

INSERT INTO people VALUES (null, null);

To może być problem, ponieważ teraz mamy wiersz z wartościami null:

 age |  name  
-----+--------
  37 | Flavio
   8 | Roger
     | 

Aby rozwiązać ten problem, możemy zadeklarować ograniczenia w naszych wierszach tabeli. NOT NULL zapobiega wartościom zerowym:

CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL
);

Jeśli spróbujemy ponownie wykonać to zapytanie:

INSERT INTO people VALUES (null, null);

Otrzymalibyśmy błąd taki:

ERROR:  null value in column "age" violates not-null constraint
DETAIL:  Failing row contains (null, null).

Zwróć uwagę, że pusty ciąg jest prawidłową wartością inną niż null.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podłączanie PolyBase do Salesforce.com

  2. Zaczekaj statystyki i magazyn zapytań

  3. Poznaj rolę architektów danych w zarządzaniu danymi

  4. Niespodzianki dotyczące wydajności i założenia:STRING_SPLIT()

  5. UŻYJ PODPOWIEDZI i DISABLE_OPTIMIZED_NESTED_LOOP