Berapakah panjang int(5) dalam mysql

王林
Lepaskan: 2023-06-03 23:24:14
ke hadapan
1880 orang telah melayarinya

Berapa lama int(5)?

Apabila mereka bentuk medan jadual mysql, adakah int(5) bermakna panjang medan ialah 5?

Jika anda fikir begitu, sila teruskan membaca, saya percaya anda akan mendapat sesuatu yang baru.

Mari kita lihat contoh praktikal dahulu

Kami mencipta jadual baharu dengan hanya satu id kunci utama dan satu medan panjang, dengan medan panjang ditetapkan kepada int(5).

#新建test表
CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `length` int(5) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Salin selepas log masuk

Adakah benar medan panjang hanya boleh menyimpan nombor dengan panjang tidak lebih daripada 5. Mari cuba masukkan sekeping data.

Kami memasukkan sekeping data yang lebih besar 123456789. Data ini mempunyai sejumlah 9 digit untuk melihat sama ada ia boleh dimasukkan seperti biasa.

#插入一条大数据
insert into test (length) values (123456789);
Salin selepas log masuk

Ternyata int(5) boleh memasukkan data dengan panjang lebih daripada 5, jadi kini sudah pasti int(5) tidak mewakili lebar data.

#查看插入数据
mysql> select * from test;
+------------+-----------+
| id         | length    |
+------------+-----------+
|  1         | 123456789 |
+------------+-----------+
Salin selepas log masuk

Dalam mysql, panjang medan int sebenarnya ditetapkan, iaitu 4 bait Sama ada anda menggunakan int(11) atau int(5), panjang medan ditetapkan pada 4 bait.

int(5) sebenarnya digunakan bersama dengan atribut zerofill yang lain, yang bermaksud bahawa jika lebar nilai medan kurang daripada 5, 0 akan ditambah secara automatik di hadapan Jika lebarnya lebih besar daripada atau sama dengan 5, maka Tidak perlu menambah 0.

#int(5) length 字段添加了 zerofill 属性
mysql> select * from test;
+----+--------+
| id | length |
+----+--------+
|  1 |  00888 |
|  2 |  00012 |
|  3 |  12345 |
|  4 | 123456 |
+----+--------+
Salin selepas log masuk

Perhatikan bahawa atribut zerofill mesti ditambahkan pada medan, jika tidak int(5) tidak akan berfungsi.

#int(5) length 字段没有 zerofill 属性
mysql> select * from test;
+----+--------+
| id | length |
+----+--------+
|  1 |    888 |
|  2 |     12 |
|  3 |  12345 |
|  4 | 123456 |
+----+--------+
Salin selepas log masuk

Untuk menetapkan panjang medan integer, anda harus memilih jenis tinyint, smallint, mediumint, int, bigint Jenis integer ini mewakili panjang tetap.

Berapakah panjang int(5) dalam mysql

Perhatikan bahawa jika anda ingin menyimpan integer yang ditandatangani, atribut zerofill tidak disokong dan akan ditukar secara automatik kepada 0. Ini perlu dipertimbangkan dalam sesetengah perniagaan yang melibatkan pengurangan.

Atas ialah kandungan terperinci Berapakah panjang int(5) dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan