Apakah maksud 'tidak ditandatangani' dalam MySQL dan bila hendak menggunakannya?

王林
Lepaskan: 2023-09-17 15:29:02
ke hadapan
1612 orang telah melayarinya

MySQL 中的“unsigned”是什么意思以及何时使用它?

"Tidak Ditandatangani" dalam MySQL ialah jenis data. Setiap kali kami menulis nombor yang tidak ditandatangani pada mana-mana lajur, ini bermakna anda tidak boleh memasukkan nombor negatif. Katakan, untuk nombor yang sangat besar anda boleh menggunakan jenis yang tidak ditandatangani.

Julat maksimum int yang tidak ditandatangani ialah 4294967295.

Note: If you insert negative value you will get a MySQL error.
Salin selepas log masuk

Berikut adalah contoh demonstrasi jenis tidak bertanda. Mula-mula mari kita buat jadual dengan lajur "tidak ditandatangani". Di bawah ialah pertanyaan yang mencipta jadual -

mysql> create table UnsignedDemoWithPositiveValue
   -> (
   -> Distance int unsigned
   -> );
Query OK, 0 rows affected (0.86 sec)
Salin selepas log masuk

Jika anda cuba memasukkan nilai sempadan atas yang tidak ditandatangani sebanyak 4294967295, ia akan menjana ralat kerana nilai di luar julat.

Masukkan nilai di luar julat.

mysql> insert into UnsignedDemoWithPositiveValue values(4294967296);
ERROR 1264 (22003): Out of range value for column 'Distance' at row 1
Salin selepas log masuk

Dalam contoh di atas, saya memasukkan 4294967296, yang berada di luar julat dan oleh itu menghasilkan ralat.

Sekarang saya masukkan nilai lain 4294967295 ke dalam jadual.

mysql> insert into UnsignedDemoWithPositiveValue values(4294967295);
Query OK, 1 row affected (0.30 sec)
Salin selepas log masuk

Di atas, anda dapat melihat bahawa pertanyaan telah dilaksanakan dengan jayanya.

Sekarang, mari lihat contoh lain. Jika saya memasukkan rekod negatif, saya mendapat ralat berikut -

mysql> insert into UnsignedDemoWithPositiveValue values(-124);
ERROR 1264 (22003): Out of range value for column 'Distance' at row 1
Salin selepas log masuk

Saya kini hanya akan memasukkan nilai positif dengan nilai 124. Pertanyaan adalah seperti berikut -

mysql> insert into UnsignedDemoWithPositiveValue values(124);
Query OK, 1 row affected (0.86 sec)
Salin selepas log masuk

Seperti yang ditunjukkan di atas, pertanyaan itu berjaya dilaksanakan.

Mari kami menggunakan pernyataan pilih untuk memaparkan rekod. Pertanyaannya adalah seperti berikut -

mysql> select *from UnsignedDemoWithPositiveValue;
Salin selepas log masuk

Ini adalah outputnya -

+------------+
| Distance   |
+------------+
| 4294967295 |
| 124        |
+------------+
2 rows in set (0.00 sec)
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah maksud 'tidak ditandatangani' dalam MySQL dan bila hendak menggunakannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.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