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

MySQL:Mengapa menentukan lebar tampilan tanpa menggunakan zerofill

Lebar tampilan "fitur" tambahan ini cukup membingungkan, karena pada jenis kolom lain seperti CHAR adalah menentukan panjangnya.

Berikut uraian singkatnya:

  • Paling penting:Ini tidak menentukan "ruang penyimpanan" atau "jumlah digit". Itu hanya mengatakan bagaimana data di kolom ini diformat sebelum dikembalikan. INT(5) dapat menyimpan sama nilai seperti INT(16) atau INT(255) - ketiganya dapat menyimpan semua (dan hanya) nilai yang valid untuk INT. INT(255) tidak dapat menyimpan angka dengan 255 digit. Ruang penyimpanan untuk semuanya adalah ruang yang ditempati INT.
  • Jika Anda menggunakan ZEROFILL pada kolom dengan lebar tampilan, dan representasi string dari nomor yang disimpan lebih pendek dari lebar tampilan, itu akan diisi dengan nol. Jika lebih lama, tidak ada yang terjadi. Jika Anda memilih INT(5) dan nilainya 13, itu akan dikembalikan sebagai 00013. Jika nilainya 123456, itu akan dikembalikan sebagai 123456.
  • Jika Anda tidak menggunakan ZEROFILL , tidak akan ada padding sama sekali (tanpa spasi dan semacamnya)
  • Jika Anda menggunakan ZEROFILL , Anda harus menyadari bahwa kolom tersebut juga akan UNSIGNED
  • Bagaimanapun, lebar tampilan dikembalikan saat data meta tabel dikueri. Jadi aplikasi bisa mengetahui bagaimana data harus diformat.

Saya tidak suka lebar tampilan, karena lapisan penyimpanan "tahu" tentang presentasi visual dari data yang disimpan. Selain itu, tidak ada gunanya yang saya sadari.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbaiki semua tabel sekaligus

  2. PostgreSQL vs. MySQL

  3. bagaimana kita bisa mengubah nilainya dengan menggunakan tombol radio

  4. Batasan kunci asing gagal

  5. Tautan dinamis MySQL untuk mengambil baris kanan