วันอาทิตย์ที่ 30 พฤศจิกายน พ.ศ. 2557

ชนิดของ field

ชนิดของ  field

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


CHAR : สำหรับเก็บข้อมูลประเภทตัวอักษร แบบที่ถูกจำกัดความกว้างเอาไว้คือ255 ตัวอักษร ไม่ สามารถปรับเปลี่ยนได้เหมือนกับ VARCHAR หากทำการสืบค้นโดยเรียงตามลำดับ ก็จะเรียงข้อมูลแบบ case-sensitive เว้นแต่จะกำหนดแอตทริบิวต์เป็นBINARY ที่จะทำให้การเรียงข้อมูลเป็นแบบ non case-sensitive เช่นเดียวกับ VARCHAR

TINYTEXT ในกรณีที่ข้อความยาวๆ หรือต้องการที่จะค้นหาข้อความ โดยอาศัยฟีเจอร์ FULL TEXT SEARCH ของ MySQL เราอาจจะเลือกที่จะไม่เก็บข้อมูลลงในฟิลด์ประเภท VARCHAR ที่มีข้อจำกัดแค่ 256 ตัวอักษร แต่เราจะเก็บลงฟิลด์ประเภท TEXTแทน โดย TINYTEXT นี้ จะสามารถเก็บข้อมูล ได้ 256 ตัวอักษร ซึ่งมองเผินๆ ก็ไม่ต่างกับเก็บลงฟิลด์ประเภท CHAR หรือ VARCHAR(255) เลย แต่
จริงๆ มันต่างกันตรงที่ มันทำFULL TEXT SEARCH ได้

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

MEDIUMTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร

LONGTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 4,294,967,295 ตัวอักษร




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

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

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




INT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 32 บิต หรือสามารถเก็บข้อมูลได้ตั้งแต่ -2147483648 ไปจนถึง 2147483647 ครับ (ในกรณีแบบคิดเครื่องหมาย) หรือ 0ถึง 4294967295 (ในกรณีที่เป็น
UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และUNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT 

BIGINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 64 บิต สามารถเก็บข้อมูลได้ตั้งแต่ - 9223372036854775808 ไปจนถึง 9223372036854775807 เลยทีเดียว (แบบคิดเครื่องหมาย) หรือ ถึง 18446744073709551615 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก 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)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOATแต่มีขนาดเป็น 64 บิต สามารถเก็บได้ตั้งแต่ -1.7976931348623157E+308 ถึง -2.2250738585072014E-308, 0 และ
2.2250738585072014E-308 ถึง 1.7976931348623157E+308




DECIMAL[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOATแต่ใช้กับข้อมูลที่ ต้องการความละเอียดและถูกต้องของข้อมูลสูง ข้อสังเกต เกี่ยวกับข้อมูลประเภท FLOAT, DOUBLE และ DECIMAL ก็คือ เวลากำหนดความ ยาวของข้อมูลในฟิลด์ จะถูกกำหนดอยู่ในรูปแบบ (M,D) ซึ่งหมายความว่า ต้องมีการระบุว่า จะให้มี ตัวเลขส่วนที่เป็นจำนวนเต็มกี่หลัก และมีเลขทศนิยมกี่หลัก เช่น ถ้าเรากำหนดว่า FLOAT(5,2)จะ หมายความว่า เราจะเก็บข้อมูลเป็นตัวเลขจำนวนเต็ม หลัก และทศนิยม หลัก ดังนั้นหากทำการใส่ ข้อมูล 12345.6789 เข้าไป สิ่งที่จะเข้าไปอยู่ในข้อมูลจริงๆ ก็คือ12345.68 (ปัดเศษให้มีจำนวนหลัก ตามที่กำหนดไว้)

DATE สำหรับเก็บข้อมูลประเภทวันที่ โดยเก็บได้จาก มกราคม ค.ศ. 1000 ถึง31 ธันวาคม ค.ศ. 9999 โดยจะแสดงผลในรูปแบบ YYYY-MM-DD

DATETIME : สำหรับเก็บข้อมูลประเภทวันที่ และเวลา โดยจะเก็บได้ตั้งแต่ 1มกราคม ค.ศ. 1000 เวลา 00:00:00 ไปจนถึง 31 ธันวาคม ค.ศ. 9999 เวลา 23:59:59 โดยรูปแบบการแสดงผล เวลาที่ทำการสืบค้น
(query) ออกมา จะเป็น YYYY-MM-DD HH:MM:SS 


TIMESTAMP[(M)] : สำหรับเก็บข้อมูลประเภทวันที่ และเวลาเช่นกัน แต่จะเก็บในรูปแบบของ YYYYMMDDHHMMSS หรือ YMMDDHHMMSS หรือ YYYYMMDD หรือYYMMDD แล้วแต่ ว่าจะระบุค่า เป็น 14, 12, 8 หรือ ตามลำดับ สามารถเก็บได้ตั้งแต่วันที่ มกราคม ค.ศ. 1000 ไป จนถึงประมาณปี ค.ศ. 2037 




TIME : สำหรับเก็บข้อมูลประเภทเวลา มีค่าได้ตั้งแต่ -838:59:59 ไปจนถึง838:59:59 โดยจะแสดงผล ออกมาในรูปแบบ HH:MM:SS YEAR[(2/4)] : สำหรับเก็บข้อมูลประเภทปี ในรูปแบบ YYYY หรือ YY แล้วแต่ว่าจะเลือก หรือ 4 (หากไม่ระบุ จะถือว่าเป็น หลัก) โดยหากเลือกเป็น หลัก จะเก็บค่าได้ตั้งแต่ ค.ศ. 1901 ถึง 2155 แต่ หากเป็น หลัก จะเก็บตั้งแต่ ค.ศ. 1970 ถึง 2069 ข้อสังเกต ค่าที่เก็บในข้อมูลประเภทTIMESTAMP และ YEAR นั้นจะมีความสามารถพอๆ กับ การเก็บข้อมูลวันเดือนปี และเวลา ด้วยฟิลด์ชนิด VARCHAR แต่ต่างกันตรงที่ จะใช้เนื้อที่เก็บข้อมูล น้อยกว่า... ทว่า ฟิลด์ประเภท TIMESTAMP นั้นจะมีข้อจำกัดในเรื่องของเวลาที่สามารถเก็บได้ คือ จะต้องอยู่ในระหว่าง มกราคม ค.ศ. 1000 ไปจนถึงแถวๆ ค.ศ. 2037 อย่างที่บอก แต่หากเก็บเป็น VARCHAR นั้นจะไม่ติดข้อจำกัดนี้ ฟิลด์ชนิด YEAR ก็เช่นกันครับ... ใช้เนื้อที่แค่ ไบต์เท่านั้นในการ เก็บข้อมูล แต่ข้อจำกัดจะอยู่ที่ ปี ค.ศ. 1901 ถึง 2155 เท่านั้น (หรือ ค.ศ.1970 ถึง 2069 ในกรณี หลัก) แต่หากเก็บเป็น VARCHAR จะได้ตั้งแต่ 0000 ถึง 9999เลย อันนี้เลยอยู่ที่ความจำเป็นมากกว่าครับ (แต่ ด้วยความที่ว่า ปัจจุบันฮาร์ดดิสก์ราคาถูกมากๆ ผมเลยไม่ติดใจอะไรที่จะใช้ VARCHAR แทน เพื่อ ความสบายใจ อิอิ เพราะสมมติว่ากินเนื้อที่ต่างกัน ไบต์ ต่อ ระเบียน มีข้อมูล ล้านระเบียน ก็เพิ่ง ต่างกัน 12 ล้านไบต์ หรือ 12 เมกะไบต์เท่านั้นเอง ซึ่งหากเทียบกับปริมาณข้อมูลทั้งหมดของข้อมูล ล้านระเบียน ผมว่ามันต้องมีอย่างน้อยเป็นกิกะไบต์ ดังนั้นความแตกต่างที่ไม่กี่เมกะไบต์จึงไม่มากมาย)

TINYBLOB : สำหรับเก็บข้อมูลประเภทไบนารี ได้แก่ ไฟล์ข้อมูลต่างๆไฟล์รูปภาพไฟล์มัลติมีเดีย เป็นต้น คือไฟล์อะไรก็ตามที่อัพโหลดผ่านฟอร์มอัพโหลดไฟล์ในภาษา HTML โดย TINYBLOB นั้นจะมีเนื้อที่ให้เก็บข้อมูลได้ 256 ไบต์


BLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่สามารถเก็บข้อมูลได้ 64KB

ข้อสอบ O-Net การงานอาชีพและเทคโนโลยี ชุด

1. ระบบสารสนเทศมีความสำคัญอย่างไร
    ก. ช่วยให้ได้ข้อมูลมาประกอบการตัดสินใจ
    ข. ช่วยให้ได้สารสนเทศที่มีคุณภาพดี
    ค. ช่วยให้ได้สารสนเทศที่เข้าใจได้ง่าย
    ง.  ช่วยให้ได้ข้อมูลที่ถูกต้องชัดเจน
เฉลย        ง.  ช่วยให้ได้ข้อมูลที่ถูกต้องชัดเจน
2. องค์ประกอบสารสนเทศที่สำคัญที่สุดตรงกับข้อใด
    ก. ฮาร์ดแวร์                    ข. ซอฟต์แวร์
ค. บุคลากร                      ง.  ข้อมูล
เฉลย      ง.  ข้อมูล
3. การจัดทำคู่มือการทำงานเป็นกิจกรรมขององค์ประกอบสารสนเทศข้อใด
    ก. ข้อมูล
    ข. ฮาร์ดแวร์
    ค. ซอฟต์แวร์
    ง.  ขั้นตอนการปฏิบัติงาน
เฉลย      ก. ข้อมูล
4. ข้อใดเป็นการใช้คอมพิวเตอร์ในการประมวลผลข้อมูลให้เป็นสารสนเทศ เพื่อประกอบการตัดสินใจ
    ก. ใช้ซอฟต์แวร์เพาเวอร์พอยนต์นำเสนองานเกี่ยวกับการขายสินค้า
    ข. ใช้ซอฟต์แวร์เอสพีเอสเอสจัดเรียงลำดับข้อมูลในแบบสอบถาม
    ค. ใช้คอมพิวเตอร์จัดเก็บข้อมูลหนังสือในห้องสมุด
ง. ใช้คอมพิวเตอร์คำนวณการเสียภาษีของพนักงาน
เฉลย       ก. ใช้ซอฟต์แวร์เพาเวอร์พอยนต์นำเสนองานเกี่ยวกับการขายสินค้า
5. การใช้โปรแกรมไมโครซอฟต์แอกเซสจัดการฐานข้อมูลมีประโยชน์อย่างไร
    ก. ช่วยให้ค้นหาข้อมูลได้ง่าย
    ข. ช่วยให้ข้อมูลไม่สู­ญหาย
    ค. ช่วยให้ข้อมูลทันสมัยอยู่เสมอ
    ง.  ช่วยให้ข้อมูลเปลี่ยนแปลงไม่ได้
เฉลย         ก. ช่วยให้ค้นหาข้อมูลได้ง่าย
6. ถ้าต้องการจัดการฐานข้อมูลนักเรียนในห้องเรียนควรเลือกใช้คำสั่งใด
    ก. Object                         ข. Forms
    ค. Tables                         ง.  Queries
เฉลย          ค. Tables                        
7. ข้อใดสรุปหลักการทำงานของคอมพิวเตอร์ได้ถูกต้อง
    ก. หน่วยส่งออก > หน่วยประมวลผลกลาง  หน่วยความจำหลักและหน่วยความจำรอง > หน่วยรับเข้า
    ข. หน่วยรับเข้า > หน่วยประมวลผลกลาง <>  หน่วยความจำหลักและหน่วยความจำรอง > หน่วยส่งออก
    ค. หน่วยประมวลผลกลาง > หน่วยความจำหลัก <> หน่วยความจำรองหน่วยส่งออก <>   หน่วยรับเข้า
    ง. หน่วยความจำหลักและหน่วยความจำรอง > หน่วยส่งออก หน่วยรับเข้า <> หน่วยประมวลผลกลาง
เฉลย        ข. หน่วยรับเข้า > หน่วยประมวลผลกลาง <>  หน่วยความจำหลักและหน่วยความจำรอง > หน่วยส่งออก
8. ฮาร์ดดิสก์ข้อใดมีประสิทธิภาพมากที่สุด
    ก. 8 มิลลิวินาที/1.5 เทระไบต์
    ข. 12 มิลลิวินาที/2 กิกะไบต์
    ค. 24 มิลลิวินาที/4 กิกะไบต์
    ง.  36 มิลลิวินาที/8 กิกะไบต์
เฉลย        ก. 8 มิลลิวินาที/1.5 เทระไบต์
9. บัสเปรียบเทียบได้กับสิ่งใด
    ก. ลิฟต์                             ข. ฟุตบาท
    ค. แผนที่                          ง.  ช่องทางจราจร
เฉลย        ง.  ช่องทางจราจร
10. ข้อใดจับคู่ประเภทคอมพิวเตอร์กับการใช้งานได้ถูกต้อง
      ก. ซูเปอร์คอมพิวเตอร์-ใช้งานในธนาคาร
      ข. มินิคอมพิวเตอร์-ใช้งานในโรงแรม
      ค. ไมโครคอมพิวเตอร์-ใช้งานในธุรกิจการบิน
      ง. เมนเฟรมคอมพิวเตอร์-ใช้งานในบ้าน
เฉลย        ก. ซูเปอร์คอมพิวเตอร์-ใช้งานในธนาคาร