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

ช่วงค่าของ MySQL DECIMAL(x,0) คือเท่าไหร่

ช่วงค่าของชนิดข้อมูล DECIMAL ใหญ่กว่า INTEGER และ BIGINT BIGINT เก็บได้สูงสุด 18446744073709551615 แต่ DECIMAL สามารถเก็บ DECIMAL(65,0) ได้ โดย x แทนตัวเลข 9 จำนวน 65 หลัก DECIMAL เก็บตัวเลขในรูปแบบไบต์ สูตรคำนวณพื้นที่จัดเก็บ:

StorageRequirementInBytes = (x/9) + remaining; WHERE remaining = round_up((x%9) / 2)

DECIMAL(65,0) จะเก็บได้:

99999999999999999999999999999999999999999999999999999999999999999

มาสร้างตารางทดสอบ:

mysql> create table DecimalDemo ( UserId DECIMAL(65,0) ); Query OK, 0 rows affected (0.62 sec)

แทรกข้อมูล:

mysql> insert into DecimalDemo values(99999999999999999999999999999999999999999999999999999999999999999); Query OK, 1 row affected (0.16 sec) mysql> insert into DecimalDemo values(99999999999999999999999999999999999999999999999999999999999999999.0); Query OK, 1 row affected (0.28 sec)

แสดงข้อมูล:

mysql> select * from DecimalDemo;

ผลลัพธ์

+-------------------------------------------------------------------+ | UserId | +-------------------------------------------------------------------+ | 99999999999999999999999999999999999999999999999999999999999999999 | | 99999999999999999999999999999999999999999999999999999999999999999 | +-------------------------------------------------------------------+ 2 rows in set (0.00 sec)

หากพยายามสร้าง DECIMAL(66,0) จะเกิดข้อผิดพลาด:

mysql> create table DecimalDemo1 ( UserId DECIMAL(66,0) ); ERROR 1426 (42000): Too-big precision 66 specified for 'UserId'. Maximum is 65.