ในนิยามของตาราง MySQL มีความแตกต่างระหว่างINT(5)
และSMALLINT(5)
? หรือว่าพวกเขาทั้งสองมีขนาดเท่ากัน?
ในนิยามของตาราง MySQL มีความแตกต่างระหว่างINT(5)
และSMALLINT(5)
? หรือว่าพวกเขาทั้งสองมีขนาดเท่ากัน?
คำตอบ:
A int
และ a smallint
มีขนาดต่างกันและมีขนาดต่างกัน (5)
เป็นsmallint(5)
หรือint(5)
ที่เรียกว่า"ตัวเลขประเภทแอตทริบิวต์"และมันหมายถึง "ความกว้างของจอแสดงผล" ของสนาม
MySQL รองรับส่วนขยายสำหรับทางเลือกในการระบุความกว้างในการแสดงผลของชนิดข้อมูลจำนวนเต็มในวงเล็บตามด้วยคำหลักพื้นฐานสำหรับประเภท ตัวอย่างเช่น
INT(4)
ระบุINT
ด้วยที่มีความกว้างของการแสดงผลสี่หลัก แอปพลิเคชันอาจใช้ความกว้างในการแสดงผลเพิ่มเติมนี้เพื่อแสดงค่าจำนวนเต็มที่มีความกว้างน้อยกว่าความกว้างที่ระบุสำหรับคอลัมน์ (นั่นคือความกว้างนี้จะปรากฏในข้อมูลเมตาที่ส่งคืนพร้อมชุดผลลัพธ์ไม่ว่าจะถูกใช้หรือไม่นั้นขึ้นอยู่กับแอปพลิเคชัน)เมื่อใช้ร่วมกับแอตทริบิวต์เผื่อเลือก (ไม่เป็นมาตรฐาน)
ZEROFILL
การเว้นช่องว่างเริ่มต้นจะถูกแทนที่ด้วยค่าศูนย์ ตัวอย่างเช่นสำหรับคอลัมน์ประกาศเป็นINT(4) ZEROFILL
ค่าของจะถูกเรียกว่าเป็น5
0005
นี่คือ MySQL "ส่วนขยาย" และ zerofill เป็น "ส่วนขยาย" ในส่วนขยาย
สำหรับวิธีการที่มีเหตุผลในการควบคุมการแสดงผลประเภทตัวเลขอย่าใช้คุณสมบัติประเภทตัวเลขและใช้แทน