createtableUnsignedDemoWithPositiveValue-&"/> createtableUnsignedDemoWithPositiveValue-&">

Rumah >pangkalan data >tutorial mysql >Apakah maksud 'tidak ditandatangani' dalam MySQL dan bila hendak menggunakannya?

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

王林
王林ke hadapan
2023-09-17 15:29:021621semak imbas

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.

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)

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

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)

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

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)

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;

Ini adalah outputnya -

+------------+
| Distance   |
+------------+
| 4294967295 |
| 124        |
+------------+
2 rows in set (0.00 sec)

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam