BIT สามารถใช้เก็บค่า 1 บิตได้ อาจเป็น 0 หรือ 1 เราไม่สามารถจัดเก็บได้ ตัวอย่างเช่น 2 ที่มีประเภทข้อมูล BIT หากเราพยายามแทรก 2 ด้วยประเภทข้อมูล BIT MySQL จะทำให้เกิดข้อผิดพลาด
TINYINT สามารถใช้เก็บค่า 8 บิตได้ ค่าสูงสุดที่เราจัดเก็บได้คือ 127 เราไม่สามารถเก็บได้ เช่น 987 ที่มีค่า 8 บิต หากเราพยายามแทรก 987 ด้วยประเภทข้อมูล TINYINT MySQL จะทำให้เกิดข้อผิดพลาด
ให้เราทำงานผ่าน MySQL เวอร์ชัน 8.0.12
เพื่อตรวจสอบเวอร์ชันที่ติดตั้งในระบบของคุณ
mysql> เลือกเวอร์ชัน ();
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+-----------+| รุ่น() |+-----------+| 8.0.12 |+-----------+1 แถวในชุด (0.00 วินาที)ประเภทบิต
การสร้างตารางด้วยประเภท BIT
mysql> สร้างตาราง BitDemo -> ( -> Id BIT -> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.56 วินาที)
การแทรกระเบียนลงในตาราง 'BitDemo'
mysql> แทรกลงในค่า BitDemo(1); Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า BitDemo (0); Query OK, 1 แถวได้รับผลกระทบ (0.33 วินาที)
เราได้รับข้อผิดพลาดทุกครั้งที่เราแทรก 2 ลงในบิต
mysql> แทรกลงในค่า BitDemo(2);ข้อผิดพลาด 1406 (22001):ข้อมูลยาวเกินไปสำหรับคอลัมน์ 'Id' ที่แถว 1
TINYINT
การสร้างตารางด้วยประเภทข้อมูล TINYINT
mysql> สร้างตาราง TinyIntDemo -> ( -> Id TINYINT -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.69 วินาที)
กำลังแทรกบันทึก
mysql> แทรกลงในค่า TinyIntDemo (123); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า TinyIntDemo (97); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า TinyIntDemo ( 127);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.16 วินาที)
เราได้รับข้อผิดพลาดทุกครั้งที่เราพยายามใส่ค่าเกิน 127
mysql> แทรกลงในค่า TinyIntDemo (9876);ข้อผิดพลาด 1264 (22003):ค่านอกช่วงสำหรับคอลัมน์ 'Id' ที่แถว 1mysql> แทรกลงในค่า TinyIntDemo (987);ข้อผิดพลาด 1264 (22003):ค่านอกช่วง สำหรับคอลัมน์ 'Id' ที่ rowmysql> แทรกลงในค่า TinyIntDemo (255);ข้อผิดพลาด 1264 (22003):ค่านอกช่วงสำหรับคอลัมน์ 'Id' ที่แถว 1mysql> แทรกลงในค่า TinyIntDemo (254); ERROR 1264 (22003):ออก ของค่าช่วงสำหรับคอลัมน์ 'Id' ที่แถว 1mysql> แทรกลงในค่า TinyIntDemo(200);ERROR 1264 (22003):ค่านอกช่วงสำหรับคอลัมน์ 'Id' ที่แถว 1mysql> แทรกลงในค่า TinyIntDemo(199);ERROR 1264 ( 22003):ค่านอกช่วงสำหรับคอลัมน์ 'Id' ที่แถว 1
ค่าสูงสุดที่เราเก็บได้คือ 127
หากต้องการแสดงระเบียนที่แทรกที่ถูกต้องทั้งหมด ให้เราใช้คำสั่ง SELECT
mysql> เลือก *จาก TinyIntDemo;
นี่คือผลลัพธ์
<ก่อนหน้า>+------+| รหัส |+------+| 123 || 97 || 127 |+------+3 แถวในชุด (0.00 วินาที)