StepCoding

MySQL Data Types

อ่าน [7810] หมวดหมู่: ฟังก์ชัน MySQL ใน PHP

ในการสร้าง table ให้กับ database นั้น ๆ เราจะต้องกำหนดโครงสร้าง field ต่าง ๆ ซึ่งแต่ละ field นั้นจะต้องกำหนด data type ให้กับมันด้วย ซึ่งในบทความนี้ผมจะแสดง data type ทั้งหมดของ MySQL เพื่อให้ผู้อ่านเลือกใช้ในการสร้าง table กันครับ

TypeSizeการใช้งาน
TINYINT(M), BIT, BOOL, BOOLEAN มีความหมายเดียวกับ TINYINT(1)1 byteถ้าไม่กำหนดเครื่องหมาย (unsigned) มันจะเก็บค่าตั้งแต่ 0-255 แต่ถ้ากำหนดเครื่องหมายมันจะเก็บค่าได้ ตั้งแต่ -128-127
SMALLINT(M)2 bytesถ้าไม่กำหนดเครื่องหมาย (unsigned) มันจะ เก็บค่าตั้งแต่ 0-65535 แต่ถ้ากำหนดเครื่องหมายันจะเก็บค่าตั้งแต่ -32768-32767
MEDIUMINT(M)3 bytesถ้าไม่กำหนดเครื่องหมาย (unsigned) มัน จะเก็บค่าตั้งแต่ 0-16777215 แต่ถ้ากำหนดเครื่องหมายันจะเก็บค่าตั้งแต่ -8388608-8388607
INT(M), INTEGER(M)4 bytesถ้าไม่กำหนดเครื่องหมาย (unsigned) มันจะเก็บค่าตั้งแต่ 0-4294967295 แต่ถ้ากำหนดเครื่องหมายันจะเก็บค่าตั้งแต่ -2147483648-2147483647
BIGINT(M)8 bytesถ้าไม่กำหนดเครื่องหมาย (unsigned) มันจะเก็บ ค่าตั้งแต่ 0-18446744073709551615 แต่ถ้ากำหนดเครื่องหมายันจะเก็บค่าตั้งแต่ -9223372036854775-9223372036854775807
FLOAT(precision)4 หรือ 8 bytesโดยที่สามารถกำหนด precision ตั้งแต่ 0-53 แต่ถ้า precision <= 24 จะถูกแปลงเป็น FLOAT ถ้า precision > 24 และ <= 53 จะถูกแปลงเป็น DOUBLE
FLOAT(M, D)4 bytesSingle precision floating-point number
DOUBLE(M, D), DOUBLE PRECISION, REAL8 bytesDouble-precision floating-point number
DECIMAL(M,D), DEC, NUMERIC, FIXEDM+1 หรือ M+2 bytesเป็นส่วนย่อยของ floating-point number โดยจะถูกเก็บเหมือนกับ CHAR ใช้สำหรับ small decimal เช่นการเก็บ money
DATE3 bytesแสดงผลในรูปแบบ YYYY-MM-DD
DATETIME8 bytesแสดงผลในรูปแบบ YYYY-MM-DD HH:MM:SS
TIMESTAMP4 bytesเก็บค่าวันที่และเวลาในรูปแบบ timestamp
TIME3 bytesแสดงผลในรูปแบบ HHH:MM:SS โดยที่ HHH จะคืน ค่าจาก -838 ถึง 838
YEAR1 bytesแสดงผลในรูปแบบ YYYY ซึ่งเป็นค่าตั้งแต่ 1901 - 2155 เท่านั้น
CHAR(M)M bytesกำหนดขนาด ถ้าอักขระของเรายาวไม่เท่ากับที่ กำหนดไว้ มันจะแทนที่ด้วยช่องว่าง โดยที่ M <= 255
VARCHAR(M)Up to M bytesM <= 255
TINYBLOB หรือ TINYTEXTUp to 255 bytesTINYBLOB เป็น case-sensitive สำหรับการเรียงและเปรียบเทียบ แต่ TINYTEXT เป็น case-insensitive
BLOB หรือ TEXTUp to 65 KBBLOB เป็น case-sensitive สำหรับ การเรียงและเปรียบเทียบ แต่ TEXT เป็น case-insensitive
MEDIUMBLOB หรือ MEDIUMTEXTUp to 16MB MEDIUMBLOB เป็น case-sensitive สำหรับการเรียงและเปรียบเทียบ แต่ MEDIUMTEXT เป็น case-insensitive
LONGBLOB หรือ LONGTEXTUp 4 GBLONGBLOB เป็น case- sensitive สำหรับการเรียงและเปรียบเทียบ แต่ LONGTEXT เป็น case-insensitive
ENUM(value1, ..., valueN)1 หรือ 2 bytesUp to 65535 เป็นค่าที่ไม่ ซ้ำกัน
SET(value1, ..., valueN)Up 8 bytesUp to 64 เป็นค่าที่ไม่ซ้ำกัน

ผู้สนับสนุน