6.5 ชนิดของข้อมูลในฐานข้อมูลมายเอสคิวแอล  

     ข้อมูลที่จัดเก็บในฐานข้อมูล แต่ละฟิลด์แต่ละคอลัมน์มีรูปแบบที่แตกต่างกัน เช่น ข้อมูลการสมัครสมาชิกประกอบไปด้วย ชื่อ นามสกุล ที่เป็นตัวอักษร เบอร์โทรศัพท์ที่เป็นตัวเลข วันเกิด ที่เป็นวันเดือนปี หรือ เพศที่เป็นตัวเลขที่มีความหมาย เช่นกําหนด 0 หมายถึงเพศชาย และ 1 หมายถึงเพศหญิง เป็นต้น ซึ่งการกําหนดค่าแต่ละฟิลด์ของข้อมูลจะต้องกําหนดให้ตรงกันกับข้อมูลที่จัดเก็บ หากไม่ตรงกัน อาจเกิดความผิดพลาดในการจัดเก็บข้อมูล เช่น ข้อมูลไม่ครบถ้วน หรือ เกิดข้อผิดพลาดระหว่างการ บันทึกข้อมูล เป็นต้น  

     นอกจากชนิดของข้อมูลแล้วการกําหนดขนาดของฟิลด์เพื่อจองพื้นที่ในการจัดเก็บข้อมูล เพื่อให้ข้อมูลครบถ้วน เช่น หากกําหนดชนิดของฟิลด์เป็นตัวเลขขนาด 3 ตัวอักษร จะไม่สามารถบันทึกข้อมูลที่มีตัวเลขเกิน 3 ตัวได้ทําให้ฟิลด์รองรับการกรอกข้อมูลระหว่าง 0 – 999 เท่านั้น เป็นต้น จะเห็นว่าชนิดของข้อมูลและขนาดของข้อมูลมีส่วนสําคัญในการกําหนดค่า ซึ่งชนิดของฐานข้อมูลมายเอสคิวแอล สามารถแบ่งออกเป็นหมวดหมู่ได้ ดังนี้

6.5.1 ชนิดตัวอักษร (Text)

     ชนิดตัวอักษร (Text) เป็นการจัดเก็บข้อมูลที่เป็นตัวอักษรซึ่งแบ่งตามคุณลักษณะของ ตัวอักษร ดังตารางที่ 6.1

ตารางที่ 6.1 ชนิดของข้อมูลแบบตัวอักษร

ชนิดของข้อมูลรายละอียด
CHAR (size)ใช้เก็บตัวอักษรสามารถระบุขนาดของตัวอักษร ตัวเลข สัญลักษณ์ต่างๆ (Size)  ได้ไม่เกิน 255 ตัวอักษร 
VARCHAR (size)นิยมใช้เก็บตัวอักษรสามารถระบุจํานวนขนาดของตัวอักษร (Size) ได้จํานวนไม่เกิน 65,535 ตัวอักษร (สําหรับ MySQL 5.0.3 ขึ้นไป) 
TINYTEXTเก็บตัวอักษรได้ไม่ เกิน 255 ตัวอักษร
TEXTเก็บตัวอักษรได้ไม่ เกิน 65,535 ตัวอักษร
BLOBBLOB (Binary Large Object) เก็บข้อมูลได้ 65,535 ไบต์
MEDIUMTEXTเก็บตัวอักษรได้สูงสุด 16,777,215 ตัวอักษร
MEDIUMBLOBเก็บข้อมูลได้สูงสุด 16,777,215 ไบต์
LONGTEXTเก็บตัวอักษรได้สูงสุด 4,294,967,295 ตัวอักษร
LONGBLOBเก็บข้อมูลได้สูงสุด 4,294,967,295 ไบต์
ENUMกลุ่มของข้อมูลตั้งแต่ 0,1,2,3, … 65535
SETกลุ่มของข้อมูลตั้งแต่ 0,1,2,3, … 64

6.5.2 ชนิดตัวเลข (Number)

     ชนิดตัวเลข (Number) การเก็บข้อมูลชนิดตัวเลขมีหลายชนิดขึ้นอยู่กับขนาดของตัวเลข ซึ่งสามารถกําหนดได้ว่าข้อมูลเป็นจํานวนบวกอย่างเดียว (Unsingned) หรือ ทั้งบวกและลบ (Normal) ดังตารางที่ 6.2

ตารางที่ 6.2 ชนิดของข้อมูลแบบตัวเลข

ชนิดของข้อมูลรายละอียด
TINYINT (size)สามารถจัดเก็บตัวเลขได้ -128 to 127 แบบ normal และ 0 to 255 แบบ UNSIGNED สามารถกําหนดขนาด (Size) ของตัวเลขที่จัดเก็บได้
SMALLINT (size)สามารถจัดเก็บตัวเลขได้ -32768 to 32767 แบบ normal และ 0 to 65535 แบบ UNSIGNED
MEDIUMINT (size)สามารถจัดเก็บตัวเลขได้ -8388608 to 8388607 แบบ normal และ 0 to 16777215 แบบ UNSIGNED
INT (size)สามารถจัดเก็บตัวเลขได้ -2147483648 to 2147483647 แบบ normal และ 0 to 4294967295 แบบ UNSIGNED
BIGINT (size)สามารถจัดเก็บตัวเลขได้ -9223372036854775808 to 9223372036854775807 แบบ normal และ 0 to 18446744073709551615 UNSIGNED
FLOAT (size,d)สามารถจัดเก็บตัวเลขและทศนิยมที่มีขนาดไม่ใหญ่มาก จํานวนสูงสุดสามารถกําหนดได้ที่ขนาดของตัวเลข และจํานวนที่กําหนดจะถูกแยกออกมาเป็น จํานวนทศนิยม สามารถกําหนดได้หลังขนาดของตัวเลข
DOUBLE (size,d)สามารถจัดเก็บตัวเลขและทศนิยมที่มีขนาดใหญ่ ซึ่งสามารถกําหนดขนาด ของตัวเลข และขนาดของทศนิยมที่ต้องการได้
DECIMAL (size,d)สามารถจัดเก็บข้อมูลที่เป็นตัวเลขและทศนิยมได้ สามารถกําหนดขนาด ตัวเลขและขนาดของทศนิยมตามที่ต้องการได้ แต่คุณลักษณะของข้อมูลจะ เป็นตัวอักษร (String)

6.5.3 ชนิดวันที่/เวลา (Date/Time)

     ชนิดวันที่/เวลา (Date/Time) เป็นการเก็บข้อมูลที่เป็นวันที่และเวลา ซึ่งปกติรูปแบบ การจัดเก็บวันที่จะเป็น YYYY-MM-DD ซึ่งหมายถึง ปี-เดือน-วัน ซึ่งปีเก็บอยู่ในรูปแบบปี ค.ศ. จํานวน 4 ตัวอักษรเช่น 2016 ส่วนเดือนจะเก็บในรูปแบบของตัวเลข 2 ตัว เช่น เดือนมกราคมเก็บ 01 เดือน ธันวาคม เก็บ 12 เป็นตัน และวันที่เก็บเป็นตัวเลข 2 ตัวอักษร จาก 01-31 เช่น 2016-12-22 เป็นตัน รูปแบบวันที่ที่จัดเก็บดังตารางที่ 6.3

ตารางที่ 6.3 ชนิดของข้อมูลแบบวันที่/เวลา

ชนิดของข้อมูลรายละอียด
DATE()เป็นข้อมูลเฉพาะ วัน/เดือน/ปี ระหว่าง 1000-01-01 ถึง 9999-12-31
DATETIME()เป็นข้อมูล วัน/เดือน/ปี และ เวลา ระหว่าง 1000-01-01 00:00:00 ถึง 9999- 12-31 23:59:59
TIMESTAMP()เป็นค่า TIMESTAMP ที่จัดเก็บจํานวนของวินาทีซึ่งเริ่มนับตั้งแต่ 1970-01-01 00:00:00 สามารถจัดเก็บข้อมูลระหว่าง 1970-01-01 00:00:01 UTC ถึง 2038-01-09 03:14:07 UTC
TIME()เป็นข้อมูล เวลา รูปแบบ HH:MI:SS ระหว่าง -838:59:59 ถึง 838:59:59
YEAR()เป็นข้อมูล ปี ซึ่งสามารถเลือกเก็บ 2 หรือ 4 ตัวอักษร ซึ่งถ้าเป็น 4 ตัวอักษร จะสามารถเก็บข้อมูลได้ระหว่าง 1901 ถึง 2155 และหากเป็น 2 ตัวอักษรจะ เก็บข้อมูลระหว่าง 70 ถึง 69 ซึ่งหมายถึงช่วงปี 1970 ถึง 2069