DATETIME : เป็นฟิลด์ชนิดที่เหมาะสมกับการเก็บข้อมูลวันที่
และเวลา สมดังชื่อของมันนั่นแหละ โดยจะเก็บได้ตั้งแต่ 1 มกราคม ค.ศ. 1000 เวลา 00:00:00 ไปจนถึง 31ธันวาคม ค.ศ. 9999 เวลา 23:59:59 โดยรูปแบบการแสดงผล
เวลาที่ทำการสืบค้น (query) ออกมา จะเป็น YYYY-MM-DD
HH:MM:SS
TIMESTAMP[(M)] : เอาไว้เก็บเวลาเช่นกัน
แต่จะเก็บในรูปแบบของYYYYMMDDHHMMSS หรือ YYMMDDHHMMSS หรือ YYYYMMDD หรือYYMMDD แล้วแต่ว่าเราจะระบุค่า M เป็น 14,
12, 8 หรือ 6 ตามลำดับ
โดยความเห็นส่วนตัวของผมแล้ว การเก็บค่า วันเดือนปี และเวลา
ในรูปแบบนี้มันเอาไปใช้งานสะดวกดี เราสามารถเก็บได้ตั้งแต่วันที่ 1 มกราคม ค.ศ. 1000 ไปจนถึงแถวๆ ปี ค.ศ.2037
TIME : อันนี้เอาไว้เก็บเวลา มีค่าได้ตั้งแต่ -838:59:59 ไปจนถึง 838:59:59 โดยจะแสดงผลออกมาในรูปแบบ HH:MM:SS
YEAR[(2/4)] : อันนี้ก็สมดังชื่อ
คือเอาไว้เก็บปี ในรูปแบบ YYYY หรือ YY แล้วแต่ว่าจะเลือก 2 หรือ 4 (หากไม่ระบุ จะถือว่าเป็น 4 หลัก)
โดยหากเลือกเป็น 4 หลัก จะเก็บค่าได้ตั้งแต่ ค.ศ. 1901 ถึง 2155 แต่หากเป็น 2 หลัก จะเก็บตั้งแต่ ค.ศ. 1970 ถึง 2069
CHAR : เป็นข้อมูลประเภท string แบบที่ถูกจำกัดความกว้างเอาไว้คือ 255 ตัวอักษร
ไม่สามารถปรับเปลี่ยนได้เหมือนกับ VARCHAR หากเราทำการสืบค้นโดยเรียงตามลำดับ
มันก็จะเรียงข้อมูลแบบ case-sensitive คือ
คำนึงถึงตัวอักษรเล็ก และใหญ่ เว้นเสียแต่เราจะกำหนดแอตทริบิวต์เป็น BINARY ที่จะทำให้การเรียงข้อมูลเป็นแบบ non case-sensitive คือ ตัวอักษรใหญ่ และเล็ก มีค่าเท่ากัน
TINYBLOB : ฟิลด์ชนิด BLOB นั้นจะมีไว้เพื่อเก็บข้อมูลประเภทไบนารี พูดง่ายๆ คือพวก ไฟล์ข้อมูลต่างๆ, ไฟล์รูปภาพ, ไฟล์มัลติมีเดีย เป็นต้น
คือไฟล์อะไรก็ตามที่อัพโหลดผ่านฟอร์มอัพโหลดไฟล์ในภาษา HTML ประมาณนั้น (จะกล่าวถึงภายหลังแน่นอน
ตอนที่จะลองประยุกต์พัฒนาเว็บแอปพลิเคชันสักตัว) โดย TINYBLOB นั้นจะมีเนื้อที่ให้เก็บข้อมูลได้ 256 ไบต์
TINYTEXT : ในกรณีที่ข้อความยาวๆ
หรือต้องการที่จะค้นหาข้อความ โดยอาศัยฟีเจอร์ FULL TEXT SEARCH ของ MySQL (จะกล่าวถึงในตอนประยุกต์การพัฒนาเว็บบอร์ด)
เราอาจจะเลือกที่จะไม่เก็บข้อมูลลงในฟิลด์ประเภท VARCHAR ที่มีข้อจำกัดแค่ 256 ตัวอักษร
แต่เราจะเก็บลงฟิลด์ประเภท TEXT แทน
(ต้องขออภัยที่ผมลืมอธิบายส่วนนี้ ตอนที่พูดถึง TEXT)... TINYTEXT นี้ จะให้เราเก็บข้อมูลได้ 256 ตัวอักษร
ซึ่งมองเผินๆ ก็ไม่ต่างกับเก็บลงฟิลด์ประเภท CHAR หรือ VARCHAR(255) เลย แต่จริงๆ มันต่างกันตรงที่ มันทำ FULL TEXT SEARCH ได้
BLOB : เหมือน TINYBLOB แต่สามารถเก็บข้อมูลได้ 64KB
MEDIUMBLOB : เหมือน TINYBLOB เช่นกัน แต่เก็บข้อมูลได้ 16MB
MEDIUMTEXT : เหมือน TEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร
LONGBLOB : เหมือน TINYBLOB เช่นกัน แต่เก็บข้อมูลได้ 4GB
LONGTEXT : เหมือน TEXT แต่เก็บข้อมูลได้ 4,294,967,295 ตัวอักษร
MEDIUMINT : เช่นเดียวกับ SMALLINT แต่จะมีขนาดใหญ่ขึ้นมาอีก ก็คือ 24 บิต
นั่นก็หมายความว่าสามารถเก็บข้อมูลตัวเลขได้ตั้งแต่ -8388608 ไปจนถึง 8388607 (ในกรณีแบบคิดเครื่องหมาย)
หรือ 0 ถึง 16777215 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) แน่นอน สามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED
ZEROFILL ได้เช่นเดียวกับ TINYINT
INT : เช่นเดียวกับ SMALLINT เช่นกัน แต่งานนี้จะเป็นขนาดปกติคือ 32 บิต
หรือสามารถเก็บข้อมูลได้ตั้งแต่ -2147483648 ไปจนถึง 2147483647 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 4294967295
(ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย)
แน่นอน สามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT
BIGINT : ในกรณีที่ต้องการเก็บค่าตัวเลขแบบเยอะสุดๆ ก็ใช้นี่เลย เก็บข้อมูลแบบ 64บิต
สามารถเก็บข้อมูลได้ตั้งแต่ -9223372036854775808 ไปจนถึง9223372036854775807 เลยทีเดียว (แบบคิดเครื่องหมาย) หรือ 0 ถึง18446744073709551615 สามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT
FLOAT[(M,D)] : ที่กล่าวถึงไปทั้งหมด
ในตระกูล INT นั้นจะเป็นเลขจำนวนเต็ม
หากเราบันทึกข้อมูลที่มีเศษทศนิยม มันจะถูกปัดทันที
ดังนั้นหากเราต้องการจะเก็บค่าที่เป็นเลขทศนิยม เราต้องเลือกชนิดขอฟิลด์เป็น FLOAT อันนี้จะเก็บข้อมูลแบบ 32 บิต
คือมีค่าตั้งแต่ -3.402823466E+38 ไปจนถึง -1.175494351E-38,
0 และ 1.175494351E-38 ถึง3.402823466E+38...
DOUBLE[(M,D)] : ในกรณีที่ต้องการเก็บเลขทศนิยมในระดับที่ละเอียดแบบสุดๆ
ไปเลย ก็ต้องเลือกชนิดนี้ เพราะจะเก็บข้อมูลแบบ 64 บิต สามารถเก็บได้ตั้งแต่ -1.7976931348623157E+308 ถึง -2.2250738585072014E-308, 0 และ2.2250738585072014E-308 ถึง 1.7976931348623157E+308
DECIMAL[(M,D)] : อันนี้ต้องสารภาพตามตรงว่าอ่านจากข้อมูลที่หามาได้
แล้วก็งง คือเขาบอกว่า เป็นข้อมูลชนิดตัวเลขแบบ unpacked คือ อนุญาตให้สามารถเก็บข้อมูลตัวอักษรเข้าไปได้ด้วย
แต่จากการที่ผมลองใช้งานดู มันก็ไม่แตกต่างอะไรไปจาก ฟิลด์ชนิด DOUBLE เลย สามารถเก็บข้อมูลได้เท่ากัน และมีการใช้งานที่เหมือนกัน...
ผมลองกรอกข้อมูลแบบเป็นตัวเลขปนตัวอักษรไป มันก็ไม่นับตัวอักษร และตัวเลขใดๆ
ที่อยู่ตามหลังตัวอักษร
VARCHAR : เอาไว้เก็บข้อมูลประเภทตัวอักษร
ทุกครั้งที่เลือกชนิดของฟิลด์เป็นประเภทนี้
จะต้องมีการกำหนดความยาวของข้อมูลลงไปด้วย ซึ่งสามารถกำหนดได้ตั้งแต่ 1
- 255 ฟิลด์ชนิดนี้ เหมาะสำหรับการเก็บข้อมูลสั้นๆ เช่น ชื่อ
นามสกุล หรือหัวข้อต่างๆ เป็นต้น... ในส่วนฟิลด์ประเภทนี้ จะสามารถเลือก
"แอตทริบิวต์" เป็นBINARY ได้
ปกติแล้วการจัดเรียงข้อมูลเวลาสืบค้น (query) สำหรับ VARCHAR จะเป็นแบบ case-sensitive (ตัวอักษรใหญ่
และเล็กมีความหมายแตกต่างกัน) แต่หากระบุ "แอตทริบิวต์" เป็น BINARY ปุ๊บ การสืบค้นจะไม่คำนึงตัวอักษรว่าจะเป็นตัวใหญ่ หรือตัวเล็ก
TINYINT : ข้อมูลประเภทตัวเลข
แต่มีขนาดสูงสุดได้แค่ 8 บิต...
ข้อมูลประเภทนี้เราสามารถกำหนดเพิ่มเติมในส่วนของ "แอตทริบิวต์"
ได้ว่าจะเลือกเป็น UNSIGNEDหรือ UNSIGNED
ZEROFILL
TEXT : เอาไว้เก็บข้อมูลประเภทตัวอักษร
แต่สามารถเก็บได้มากขึ้น โดยสูงสุดคือ65,535 ตัวอักษร
หรือ 64KB เหมาะสำหรับเก็บข้อมูลพวกเนื้อหาต่างๆ
ที่ยาวๆ
DATE : เอาไว้เก็บข้อมูลประเภทวันที่
โดยเก็บได้จาก 1 มกราคม ค.ศ. 1000 ถึง 31ธันวาคม ค.ศ. 9999 โดยจะแสดงผลในรูปแบบ YYYY-MM-DD
Cerdit :
http://computer.thepbodint.ac.th/topmenu.php?c=show_note_work&w_id=16
ไม่มีความคิดเห็น :
แสดงความคิดเห็น