Data Types ใน MySQL คือชนิดของข้อมูลที่ใช้กำหนดให้กับคอลัมน์ในตาราง เพื่อระบุว่าข้อมูลในคอลัมน์นั้นควรเป็นประเภทใด เช่น ตัวเลข ตัวอักษร วันที่ หรือค่าตรรกะ การกำหนดชนิดข้อมูลที่เหมาะสมช่วยให้ฐานข้อมูลมีความแม่นยำ ประหยัดพื้นที่ และเพิ่มประสิทธิภาพในการประมวลผล โดย MySQL แบ่งประเภทข้อมูลหลัก ๆ ออกเป็น 4 กลุ่มใหญ่: Numeric, String (Text), Date and Time, และ Spatial
Numeric Data Types (ข้อมูลตัวเลข)
ใช้เก็บค่าตัวเลข เช่น จำนวน, รหัส, ราคาสินค้า
TINYINT– จำนวนเต็มขนาดเล็ก (1 ไบต์) เช่น อายุ (ช่วง -128 ถึง 127 หรือ 0 ถึง 255 แบบ unsigned)SMALLINT– จำนวนเต็มขนาดเล็กกว่าปกติINTหรือINTEGER– จำนวนเต็มทั่วไป ใช้บ่อยสุดBIGINT– จำนวนเต็มขนาดใหญ่ เหมาะกับรหัสที่มีตัวเลขยาว ๆDECIMAL(m, d)– ตัวเลขทศนิยมที่แม่นยำ เช่น ราคาสินค้า (DECIMAL(10,2))FLOAT,DOUBLE– ทศนิยมแบบจุดลอย (เร็ว แต่ไม่แม่นยำเท่าDECIMAL)BIT(n)– เก็บค่าทางตรรกะหรือเลขฐานสอง
String Data Types (ข้อมูลตัวอักษร)
ใช้เก็บข้อความ เช่น ชื่อ, ที่อยู่, เบอร์โทรศัพท์
CHAR(n)– ข้อความความยาวคงที่ เช่น รหัสประเทศ (TH,US)VARCHAR(n)– ข้อความความยาวแปรผัน เหมาะกับชื่อ, อีเมล, ชื่อสินค้า ฯลฯTEXT– เก็บข้อความยาว เช่น บทความ, รายละเอียดสินค้าTINYTEXT,MEDIUMTEXT,LONGTEXT– TEXT ขนาดต่าง ๆ (เล็กถึงใหญ่มาก)ENUM('A','B',...)– ข้อความที่จำกัดเฉพาะกลุ่ม เช่นENUM('ชาย','หญิง')SET(...)– เก็บค่าหลายค่าจากชุดที่กำหนดไว้ เช่นSET('อ่าน','เขียน','ลบ')
Date and Time Data Types (ข้อมูลวันที่และเวลา)
ใช้เก็บข้อมูลเกี่ยวกับวัน เวลา และช่วงเวลา
DATE– วันที่ (รูปแบบYYYY-MM-DD) เช่น2025-04-02DATETIME– วันและเวลา เช่น2025-04-02 14:30:00TIMESTAMP– เหมือนDATETIMEแต่อิงเวลาจากระบบ (UNIX time)TIME– เวลาอย่างเดียว เช่น14:30:00YEAR– ปี (รูปแบบYYYY) เช่น2025
Spatial Data Types (ข้อมูลเชิงพื้นที่ – ใช้น้อย)
ใช้ในระบบ GIS หรือข้อมูลพิกัดทางภูมิศาสตร์ เช่น แผนที่
GEOMETRY,POINT,LINESTRING,POLYGONใช้เก็บข้อมูลพิกัดตำแหน่งหรือพื้นที่
ข้อควรระวังในการเลือก Data Type
- เลือกชนิดข้อมูลให้ตรงกับลักษณะของข้อมูล เพื่อประหยัดพื้นที่และทำงานเร็วขึ้น
- หลีกเลี่ยงการใช้
TEXTหากข้อมูลมีความยาวไม่มาก ควรใช้VARCHARแทน - ใช้
DECIMALแทนFLOATหากต้องการความแม่นยำ (เช่น บัญชี, ราคาสินค้า) - สำหรับ
ENUMหรือSETควรใช้กับค่าที่จำกัด ไม่เปลี่ยนแปลงบ่อย