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

ค่าสูงสุดของ SMALLINT(6) UNSIGNED ใน MySQL

คำตอบสั้น

ค่าสูงสุดของ SMALLINT(6) UNSIGNED คือ 65,535

ตัวเลข (6) ไม่ได้กำหนดช่วงค่า มันเป็นแค่ Display Width สำหรับ ZEROFILL เท่านั้น

ช่วงค่าของ SMALLINT

ประเภทค่าต่ำสุดค่าสูงสุด
SIGNED (Default)-32,76832,767
UNSIGNED065,535

ตัวอย่างกับ ZEROFILL

สร้างตาราง

CREATE TABLE smallIntDemo (
    FirstNumber SMALLINT(6) ZEROFILL
);

เพิ่มข้อมูลในช่วงที่ถูกต้อง

INSERT INTO smallIntDemo VALUES (2), (23), (234), (2345), (23456);

ลองเพิ่มเกินค่าสูงสุด (Error)

INSERT INTO smallIntDemo VALUES (234567);  -- ERROR 1264: Out of range
INSERT INTO smallIntDemo VALUES (111111);  -- ERROR 1264: Out of range

ผลลัพธ์การแสดงผล (ZEROFILL)

FirstNumber (SMALLINT(6) ZEROFILL)
000002
000023
000234
002345
023456

สรุปขนาด Integer Types ใน MySQL

TypeSize (Bytes)Signed RangeUnsigned Range
TINYINT1-128 ~ 1270 ~ 255
SMALLINT2-32,768 ~ 32,7670 ~ 65,535
MEDIUMINT3-8,388,608 ~ 8,388,6070 ~ 16,777,215
INT4-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295
BIGINT8-9.22e18 ~ 9.22e180 ~ 1.84e19

ข้อสังเกต

  • MySQL 8.0.17+ Deprecated Display Width และ ZEROFILL
  • ใช้ CHECK CONSTRAINT สำหรับจำกัดช่วงค่าแทน (MySQL 8.0.16+)
  • เลือก Type ให้พอดีกับข้อมูล เพื่อประหยัดพื้นที่และเพิ่มประสิทธิภาพ