วันอังคารที่ 3 พฤศจิกายน พ.ศ. 2552

VARCHAR สำหรับเก็บข้อมูลประเภทตัวอักษร ทุกครั้งที่เลือกชนิดของฟิลด์เป็นประเภทนี้ จะต้องมี การกำหนดความยาวของข้อมูลลงไปด้วย ซึ่งสามารถกำหนดค่าได้ตั้งแต่ 1 - 255 ฟิลด์ชนิดนี้ เหมาะสำหรับการเก็บข้อมูลสั้นๆ เช่น ชื่อ นามสกุล หรือหัวข้อต่างๆ เป็นต้น... ในส่วนฟิลด์ประเภทนี้ จะ สามารถเลือก "แอตทริบิวต์" เป็น BINARY ได้ โดยปกติแล้วการจัดเรียงข้อมูลเวลาสืบค้น (query) สำหรับ VARCHAR จะเป็นแบบ case-sensitive (ตัวอักษรใหญ่ และเล็กมีความหมายแตกต่างกัน) แต่ หากระบุ "แอตทริบิวต์" เป็น BINARY ปุ๊บ การสืบค้นจะไม่คำนึงตัวอักษรว่าจะเป็นตัวใหญ่ หรือตัวเล็ก

TINYINT สำหรับเก็บข้อมูลชนิดตัวเลขที่มีขนาด 8 บิต ข้อมูลประเภทนี้เราสามารถกำหนดเพิ่มเติม ในส่วนของ "แอตทริบิวต์" ได้ว่าจะเลือกเป็น UNSIGNED หรือ UNSIGNED ZEROFILL โดยจะมีความแตกต่างดังนี้UNSIGNED : จะหมายถึงเก็บค่าตัวเลขแบบไม่มีเครื่องหมาย แบบนี้จะทำใหสามารถเก็บค่าได้ ตั้งแต่ 0 - 255 UNSIGNED ZEROFILL : เหมือนข้างต้น แต่ว่าหากข้อมูลที่กรอกเข้ามาไม่ครบตามจำนวน หลักที่เรากำหนด ตัว MySQL จะทำการเติม 0 ให้ครบหลักเอง เช่น ถ้ากำหนดให้ใส่ได้ 3 หลัก แล้วทำการเก็บข้อมูล 25 เข้าไป เวลาที่สืบค้นดู เราจะได้ค่าออกมาเป็น 025 หากไม่เลือก "แอ ตทริบิวต์" สิ่งที่เราจะได้ก็คือ SIGNED นั่นก็คือต้องเสียบิตนึงไปเก็บเครื่องหมาย บวก/ลบ ทำ ให้สามารถเก็บข้อมูลได้อยู่ในช่วง -128 ถึง 127 เท่านั้น

TEXT สำหรับเก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่สามารถเก็บได้มากขึ้น โดย สูงสุดคือ 65,535 ตัวอักษร หรือ 64KB เหมาะสำหรับเก็บข้อมูลพวกเนื้อหาต่างๆ ที่ยาวๆ MEDIUMTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร

DATE ขนาดที่เก็บ 3 ไบต์เก็บค่าวันที่ในรูปแบบ YYYY-MM-DDโดยมีค่าตั้งแต่ 1000-01-01 ถึง 9999-12-31

SMALLINT สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 16 บิต จึงสามารถเก็บค่าได้ตั้งแต่ -32768 ถึง 32767 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 65535 (ในกรณี UNSIGNED หรือไม่คิดเครื่องหมาย)ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINTMEDIUMINT สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 24 บิต นั่นก็หมายความว่าสามารถเก็บ ข้อมูลตัวเลขได้ตั้งแต่ -8388608 ไปจนถึง 8388607 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 16777215(ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ

TINT สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 32 บิต หรือสามารถเก็บข้อมูลได้ตั้งแต่ -2147483648 ไปจนถึง 2147483647

BIGINT ขนาดที่เก็บ 8 ไบต์UNSIGNED เก็บค่าจำนวนเต็ม 0 ถึง 18446744073709551615SIGNED เก็บค่าจำนวนเต็ม -9223372036854775808 ถึง 9223372036854775807

FLOAT ขนาดที่เก็บ 4 ไบต์เก็บค่าจำนวนจริงแบบ IEEEตั้งแต่ -3.402823466E+38 ถึง -1.175494351E-38และ 0และ 1.175494351E-38 ถึง 3.402823466E+38

DOUBLE ขนาดที่เก็บ 8 ไบต์เก็บค่าจำนวนจริงแบบ IEEEตั้งแต่ -1.7976931348623157E+308 ถึง -2.2250738585072014E-308และ 0และ 2.2250738585072014E-308 ถึง 1.7976931348623157E+308

DECIMAL สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่ใช้กับข้อมูลที่ ต้องการความละเอียดและถูกต้องของข้อมูลสูง ข้อสังเกต เกี่ยวกับข้อมูลประเภท FLOAT, DOUBLE และ DECIMAL ก็คือ เวลากำหนดความ ยาวของข้อมูลในฟิลด์ จะถูกกำหนดอยู่ในรูปแบบ (M,D) ซึ่งหมายความว่า ต้องมีการระบุว่า จะให้มี ตัวเลขส่วนที่เป็นจำนวนเต็มกี่หลัก และมีเลขทศนิยมกี่หลัก เช่น ถ้าเรากำหนดว่า FLOAT(5,2) จะ หมายความว่า เราจะเก็บข้อมูลเป็นตัวเลขจำนวนเต็ม 5 หลัก และทศนิยม 2 หลัก ดังนั้นหากทำการใส่ ข้อมูล 12345.6789 เข้าไป สิ่งที่จะเข้าไปอยู่ในข้อมูลจริงๆ ก็คือ 12345.68 (ปัดเศษให้มีจำนวนหลัก ตามที่กำหนดไว้)DATETIME ขนาดที่เก็บ 8 ไบต์เก็บค่าวันที่และเวลาในรูปแบบ YYYY-MM-DD HH:mm:SSโดยมีค่าตั้งแต่ 1000-01-01 00:00:00 ถึง 9999-12-31 23:59:59

TIMESTAMP ขนาดที่เก็บ 4 ไบต์เก็บวันที่และเวลาในรูปแบบ String Timestampm = 14 หรือไม่กำหนด -> YYYYMMDDHHmmSSm = 12 -> YYMMDDHHmmSSm = 10 -> YYMMDDHHmmm = 8 -> YYYYMMDDm = 6 -> YYMMDDm = 4 -> YYMMm = 2 -> YYโดยมีค่าตั้งแต่ 1970-01-01 00:00:00 ถึง 2037

TIME ข้อมูลประเภทเวลา สามารถเป็นได้ตั้งแต่ ‘-838:59:59’ ถึง ‘838:59:59’ แสดงผลในรูปแบบ HH:MM:SS

YEAR ข้อมูลประเภทปี คศ โดยสามารถเลือกว่าจะใช้แบบ 2 หรือ 4 หลักถ้าเป็น 2 หลักจะใช้ได้ตั้งแต่ปี คศ 1901 ถึง 2155ถ้าเป็น 4 หลักจะใช้ได้ตั้งแต่ปี คศ 1970 ถึง 2069

CHAR เป็นข้อมูลสตริงที่จำกัดความกว้าง ไม่สามารถปรับขนาดได้ ขนาดความกว้างเป็นได้ตั้งแต่ 1 ถึง 255 ตัวอักษร

TINYBLOB ขนาดที่เก็บตามข้อมูลจริง +1 ไบต์ แต่ไม่เกิน 255 ไบต์เก็บค่าอักษรตามรหัส ASCII หรือข้อมูล BINARY

TINYTEXT ขนาดที่เก็บตามข้อมูลจริง +1 ไบต์ แต่ไม่เกิน 255 ไบต์เก็บค่าอักษรตามรหัส ASCII หรือข้อมูล BINARY

BLOB ขนาดที่เก็บตามข้อมูลจริง +2 ไบต์ แต่ไม่เกิน 65535 ไบต์เก็บค่าอักษรตามรหัส ASCII หรือข้อมูล BINARY

MEDIUMBLOB ขนาดที่เก็บตามข้อมูลจริง +3 ไบต์ แต่ไม่เกิน 16777215 ไบต์เก็บค่าอักษรตามรหัส ASCII หรือข้อมูล BINARY

MEDIUMTEXTขนาดที่เก็บตามข้อมูลจริง +3 ไบต์ แต่ไม่เกิน 16777215 ไบต์เก็บค่าอักษรตามรหัส ASCII หรือข้อมูล BINARY

LONGBLOB ขนาดที่เก็บตามข้อมูลจริง +4 ไบต์ แต่ไม่เกิน 4294967295 ไบต์เก็บค่าอักษรตามรหัส ASCII หรือข้อมูล BINARY

LONGTEXT ขนาดที่เก็บตามข้อมูลจริง +4 ไบต์ แต่ไม่เกิน 4294967295 ไบต์เก็บค่าอักษรตามรหัส ASCII หรือข้อมูล BINARY

ENUM ขนาดที่เก็บ 1 หรือ 2 ไบต์ ตามจำนวนค่า value ซึ่งกำหนดได้มากที่สุด 65535 ค่าเก็บค่าตาม value ที่กำหนด

SET ขนาดที่เก็บ 1, 2, 3, 4 หรือ 8 ไบต์ ตามจำนวนค่า value ซึ่งกำหนดได้มากที่สุด 64 ค่าเก็บค่าตาม value ที่กำหนด

BOOL เป็นชนิดข้อมูลที่เก็บได้เพียง2ค่าเท่านั้น คือ True กับ false

BINARY เป็นการอ้างถึงแบบแผนของเลขฐานสอง ซึ่งมีค่าที่เป็นไปได้ 2 ค่า สำหรับแต่ละตัวเลข คือ 0 และ 1 คำนี้ยังมีหมายถึงการอ้างอิงของระบบในการเข้ารหัส ( encoding) และการถอดรหัส ( decoding) ของตัวเลข ซึ่งมีสถานที่เป็นไปได้ 2 สถานะ ตัวอย่างเช่น ASCII และ Unicode ในหน่วยความจำตัวเก็บข้อมูล , การประมวลผล และการสื่อสาร ของข้อมูลตัวเลข บางครั้งเรียกค่า 0 และ 1 เป็น “ ต่ำ ” และ “ สูง ” (“low และ high”) เลขฐานสองจะดูแปลกเมื่อเขียนโดยตรง เพราะตัวเลขจะเพิ่มเป็นกำลังของ 2 ในหลักของตัวเลขหลักทางขวาสุด คือ หนึ่งหลัก หลักต่อมาทางซ้าย คือ สองหลัก ต่อมาเป็นสี่หลัก ต่อมาเป็นแปดหลัก ต่อมา “165” หลัก ต่อมาเป็น “325” หลัก และต่อ ๆ ไป เลขฐานสิบเทียบเท่ากับเลขฐานสองที่สามารถพบโดยการหาผลรวมของตัวเลขทั้งหมด เช่น เลขฐานสอง 10101 เท่ากับ เลขฐานสิบ 1+4+16 = 21
VARBINARY คือ ข้อมูลมีขนาดแค่ไหน ก็เก็บแค่นั้น แต่ต้องไม่เกิน 1000 ไบต์
(ขนาดพื้นที่เก็บจริง เท่ากับขนาดข้อมูล+2ไบต์)