“unsigned” ใน MySQL เป็นประเภทข้อมูล เมื่อใดก็ตามที่เราเขียน unsigned ลงในคอลัมน์ใดๆ ที่หมายความว่าคุณไม่สามารถใส่ตัวเลขติดลบได้ สมมติว่าสำหรับจำนวนที่มาก คุณสามารถใช้ประเภทที่ไม่มีลายเซ็นได้
ช่วงสูงสุดที่มี int ที่ไม่ได้ลงนามคือ 4294967295
หมายเหตุ:หากคุณใส่ค่าลบ คุณจะได้รับข้อผิดพลาด MySQL
นี่คือตัวอย่างการสาธิตประเภทที่ไม่ได้ลงนาม ให้เราสร้างตารางที่มีคอลัมน์ "unsigned" ก่อน ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างตาราง −
mysql> สร้างตาราง UnsignedDemoWithPositiveValue -> ( -> Distance int unsigned -> );Query OK, 0 แถวได้รับผลกระทบ (0.86 วินาที)
หากคุณจะพยายามแทรกค่าบนด้วย 4294967295 ที่ไม่ได้ลงนาม จะเกิดข้อผิดพลาดขึ้นเนื่องจากค่าอยู่นอกช่วง
กำลังแทรกค่านอกช่วง
mysql> แทรกลงในค่า UnsignedDemoWithPositiveValue (4294967296);ข้อผิดพลาด 1264 (22003):ค่านอกช่วงสำหรับคอลัมน์ 'ระยะทาง' ที่แถว 1
ในตัวอย่างข้างต้น ฉันได้แทรก 4294967296 ซึ่งอยู่นอกช่วง ดังนั้นจึงเกิดข้อผิดพลาด
ตอนนี้ฉันกำลังแทรกค่าอื่น 4294967295 ลงในตาราง
mysql> แทรกลงในค่า UnsignedDemoWithPositiveValue (4294967295) ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.30 วินาที)
ด้านบน คุณจะเห็นว่าการสืบค้นทำงานสำเร็จ
ทีนี้มาดูตัวอย่างอื่นกัน หากคุณแทรกระเบียนเชิงลบ ข้อผิดพลาดต่อไปนี้สามารถเห็นได้ -
mysql> แทรกลงในค่า UnsignedDemoWithPositiveValue (-124);ข้อผิดพลาด 1264 (22003):ค่านอกช่วงสำหรับคอลัมน์ 'Distance' ที่แถว 1
ตอนนี้ฉันจะแทรกเฉพาะค่าบวกที่มีค่า 124 แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า UnsignedDemoWithPositiveValue (124); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.86 วินาที)
ดังที่คุณเห็นด้านบน แบบสอบถามดำเนินการสำเร็จแล้ว
ให้เราแสดงบันทึกโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก UnsignedDemoWithPositiveValue;
นี่คือผลลัพธ์ -
<ก่อนหน้า>+-----------+| ระยะทาง |+-----------+| 4294967295 || 124 |+-----------+2 แถวในชุด (0.00 วินาที)