Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa gunanya NOT NULL DEFAULT '' ?

NULL memiliki perilaku khusus:membandingkan apa pun dengan NULL memberi Anda kembali NULL , yang merupakan sesuatu selain false atau 0 . Artinya "tidak diketahui".

Misalnya, ambil tabel ini:

 user_id | gender
------------------
 1       | NULL
 2       | 'M'
 3       | 'F'
 4       | 'F'

SELECT * FROM mytable WHERE gender = 'M' akan mengembalikan 1 baris, seperti yang diharapkan

SELECT * FROM mytable WHERE gender != 'M' akan mengembalikan 2 baris, BUKAN 3 baris.

SELECT * FROM mytable WHERE gender != 'M' OR gender IS NULL akan mengembalikan 3 baris yang diharapkan.

Sunting:Untuk beberapa aplikasi, menggunakan 0 (atau, Tuhan melarang, "angka ajaib") lain daripada NULL bahkan tidak disarankan (satuan atau nilai eksak tidak relevan dalam contoh ini):

 Date       | Temperature 
--------------------------
 2010-01-01 | 10          
 2010-01-02 | 4
 2010-01-03 | 0
 2010-01-04 | -22
 2010-01-05 | -45
 2010-01-06 | NULL
 2010-01-07 | -34

Di sini, NULL pada 6 Januari berarti "nilai tidak diketahui" - mungkin karena suhunya sangat rendah sehingga probe termometer berhenti merespons. Namun, ini berbeda artinya dengan 3 Januari, saat suhu 0 , yaitu, 0 derajat.

Juga, seperti yang disebutkan @Bill Karwin, NULL berperilaku khusus dalam fungsi agregat (COUNT ,SUM ,AVG dll.):menghitung AVG(Temperature) pada data di atas akan memberi Anda -14.5 , karena baris NULL diabaikan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Melampirkan database yang ada dengan MySQL

  2. unggah file ke DB MySql dengan PHP

  3. periksa apakah kolom berisi SEMUA nilai kolom lain - Mysql

  4. Tidak dapat menemukan input type=image value di $_POST

  5. mysql Dimana tidak menggunakan dua kolom