Saya hanya ingin tahu apa manfaat / penggunaan mendefinisikan ZEROFILL
untuk INT
Tipe Data MySQL
?
`id` INT UNSIGNED ZEROFILL NOT NULL
mysql
types
unsigned-integer
diEcho
sumber
sumber
zerofill
ini tidak standar. " TheZEROFILL
atribut diabaikan ketika kolom terlibat dalam ekspresi atauUNION
query. Jika Anda menyimpan nilai-nilai yang lebih besar dari lebar layar dalam sebuah kolom integer yang memilikiZEROFILL
atribut, Anda mungkin mengalami masalah saat MySQL menghasilkan tabel sementara untuk beberapa rumit bergabung. Dalam kasus ini , MySQL mengasumsikan bahwa nilai data sesuai dengan lebar tampilan kolom. "Jawaban:
Saat Anda memilih kolom dengan tipe,
ZEROFILL
itu mengaitkan nilai bidang yang ditampilkan dengan nol hingga lebar tampilan yang ditentukan dalam definisi kolom. Nilai yang lebih panjang dari lebar tampilan tidak terpotong. Perhatikan bahwa penggunaanZEROFILL
juga menyiratkanUNSIGNED
.Penggunaan
ZEROFILL
dan lebar tampilan tidak berpengaruh pada bagaimana data disimpan. Itu hanya mempengaruhi bagaimana itu ditampilkan.Berikut adalah beberapa contoh SQL yang menunjukkan penggunaan
ZEROFILL
:Hasil:
sumber
Salah satu contoh untuk memahami, di mana penggunaan
ZEROFILL
mungkin menarik:Di Jerman, kami memiliki kode pos 5 digit. Namun, Kode tersebut dapat dimulai dengan Nol, sehingga
80337
kode pos yang valid untuk munic,01067
adalah kode pos Berlin.Seperti yang Anda lihat, setiap warga negara Jerman mengharapkan kode pos ditampilkan sebagai kode 5 digit, jadi
1067
terlihat aneh.Untuk menyimpan data tersebut, Anda bisa menggunakan
VARCHAR(5)
atauINT(5) ZEROFILL
sedangkan bilangan bulat zerofilled memiliki dua keuntungan besar:1067
, Anda masih mendapatkan01067
kembaliMungkin contoh ini membantu memahami penggunaan
ZEROFILL
.sumber
Ini adalah fitur untuk kepribadian terganggu yang suka kotak persegi.
Anda memasukkan
tetapi ketika Anda memilih, itu bantalan nilai
sumber
Ini membantu dalam penyortiran yang benar jika Anda perlu menggabungkan "integer" ini dengan sesuatu yang lain (angka atau teks lain) yang perlu disortir sebagai "teks".
sebagai contoh,
jika Anda akan perlu menggunakan nomor bidang bilangan bulat (katakanlah 5) bersambung sebagai A-005 atau 10/0005
sumber
Saya tahu saya terlambat ke pesta tetapi saya menemukan bahwa zerofill sangat membantu untuk representasi boolean dari TINYINT (1). Null tidak selalu berarti False, terkadang Anda tidak menginginkannya. Dengan zerofilling sebuah tinyint, Anda secara efektif mengonversi nilai-nilai itu ke INT dan menghapus semua aplikasi yang mungkin Anda miliki saat berinteraksi. Aplikasi Anda kemudian dapat memperlakukan nilai-nilai itu dengan cara yang mirip dengan tipe data primitif True = Tidak (0)
sumber
666
jadi saya lebih suka untuk menjaga jawaban ini;-)
sumber
http://dev.mysql.com/doc/refman/5.0/id/numeric-types.html
sumber
Jika Anda menentukan ZEROFILL untuk kolom angka, MySQL secara otomatis menambahkan atribut UNSIGNED ke kolom.
Tipe data numerik yang mengizinkan atribut TANDA TANGAN juga mengizinkan TANDA. Namun, tipe data ini ditandatangani secara default, sehingga atribut SIGNED tidak memiliki efek.
Deskripsi di atas diambil dari situs web resmi MYSQL.
sumber
NOL
Ini pada dasarnya berarti bahwa jika nilai integer 23 dimasukkan ke dalam kolom INT dengan lebar 8 maka sisa posisi yang tersedia akan secara otomatis diisi dengan nol.
Karenanya
menjadi:
sumber