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

tinyint(ukuran), varchar(ukuran):penjelasan ukuran

Solusi kebingungan Anda adalah-

Di Mysql , int(6) tidak berarti mereka dapat menyimpan hingga 6 digit. tidak lebih dari 999999.

Namun CHAR(6)Ini berarti kolom karakter, dengan panjang maksimal 6 karakter, seperti kata-kata ini:

rumah

Jika saya mencoba menyimpan kata "khusus" di kolom itu, MySQL akan memotong nilainya menjadi "spesia", karena kata aslinya memiliki 7 karakter.

Bagaimanapun, semua kolom bilangan bulat memiliki rentang nilai preset yang diizinkan. Angka dalam kurung hanya menunjukkan lebar tampilan.

Ini mungkin masih membingungkan, jadi izinkan saya menjelaskan lebih lanjut…

Lebar tampilan adalah angka dari 1 hingga 255. Anda dapat mengatur lebar tampilan jika Anda ingin semua nilai integer Anda "muncul" dengan cara yang sama:

TINYINT[(M)] [TIDAK TANDA TANGAN] [ZEROFILL]

M menunjukkan lebar tampilan maksimum untuk tipe integer. Lebar tampilan maksimum adalah 255. Lebar tampilan tidak terkait dengan rentang nilai yang dapat dikandung oleh suatu tipe, . Untuk tipe floating-point dan fixed-point, M adalah jumlah digit yang dapat disimpan.

Jika Anda menentukan ZEROFILL untuk kolom numerik, MySQL secara otomatis menambahkan atribut UNSIGNED ke kolom.

Jadi Jawaban dari Pertanyaan Anda adalah

create table foo
(
col2 tinyint(2) unsigned zerofill, col4 tinyint(4) unsigned zerofill, col5notzerofill        tinyint(5)  
)engine=innodb;

insert into foo values (1,2,3),(11,12,14),(123,123,156),(1234,1234,12756);
select * from foo;

OUTPUT :-
+------+------+-----------------+
| col2 | col4 | col5notzerofill |
+------+------+-----------------+
|   01 | 0002 |               3 |
|   11 | 0012 |              14 |
|  123 | 0123 |             127 |
|  255 | 0255 |             127 |
+------+------+-----------------+

*Jadi Pahami, Di Mysql lebar tampilan hanya berfungsi dengan zerofill.

*kalau pakai tidak pakai zerofill, tidak efektif.

Dan jika Anda menggunakan zerofill maka mysql akan memeriksa lebar tampilan, dan jika Anda tidak menetapkan maka mysql akan secara otomatis menetapkan lebar tampilan ke kolom tersebut. *




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Praktik penyatuan koneksi JDBC MySql untuk menghindari kumpulan koneksi yang habis

  2. pilih untuk memperbarui dengan mysql yang berbeda

  3. MySQL dengan MAMP tidak bekerja dengan OSX Yosemite 10.10

  4. Cara menambahkan poin ke LINESTRING SQL

  5. bagaimana saya bisa tahu berapa banyak baris yang akan memperbarui sql yang terpengaruh sebelum saya menjalankannya?