Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

“unsigned” ใน MySQL หมายถึงอะไรและควรใช้เมื่อใด


“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 วินาที)