นี่คือตารางบอกประเภทของข้อมูลใน MySQL เอาแบบตัวที่ใช้บ่อยๆ เลยนะ

เดี๋ยวอธิบายให้ฟังแล้วกัน ว่าประเภทของข้อมูลมีความสำคัญอย่างไร

สมมุติว่าเราจะสร้าง ฟิลด์ที่เก็บชื่อคน เราจะเลือกใช้ประเภทข้อมูลตัวไหน???
ลองไปดูในตารางประเภทข้อความครับว่ามีตัวใดเหมาะสม

บอกให้เลยแล้วกันครับส่วนใหญ่ก็จะใช้ VARCHAR ครับ ในการเก็บชื่อคน
คือสามารถเก็บตัวอักษรได้สูงสุด 255 ตัว ชื่อคนคงไม่เกิน 255 ตัวอยุ่แล้ว -*-

ใน SQL เราสามารถกำหนดขอบเขตของข้อมูลได้ครับ แต่กำหนดได้ไม่เกินความยาวสูงสุด
ของประเภทข้อมูลนั้นๆนะ ส่วนการกำหนด กำหนดยังไงเอาไว้ไปดูตัวอย่างเลยดีกว่า -*-

นี่ล่ะครับ การออกแบบฐานข้อมูลต้องคำนึงถึงประเภทของข้อมูลว่าเก็บข้อมูลเป็นอะไร
และมีขนาดข้อมูลที่จะจัดเก็บเท่าไร

เอาล่ะเรามาดูกันว่ามีประเภทข้อมูลตัวไหน น่าสนใจ

ประเภทข้อมูล วันที่ และเวลา

ประเภท

ช่วงข้อมูล

คำอธิบาย

DATE

1000-01-01

9999-12-31

วันที่ แสดงเป็น YYYY-MM-DD (ปี เดือน วัน)

TIME

-838 :59:59

838 :59:59

เวลา แสดงเป็น HH:MM:SS (ชั่วโมง นาที วินาที)

หมายเหตุ ช่วงข้อมูลกว้างกว่าความต้องการใช้

DATETIME

1000-01-01 00 :00:00

9999-12-31 23:59:59

วันที่และเวลา แสดงเป็น YYYY-MM-DD HH:MM:SS (ปี เดือน วัน ชั่วโมง นาที วินาที)

TIMESTAMP [(M)]

1970-01-01 00:00:00

บางกรณีเป็น 2037 timestamp

timestamp ใช้กับรายงานทรานแซคชัน รูปแบบการแสดงขึ้นกับค่าของ M

ช่วงข้อมูลด้านบน ขึ้นกับ UNIX

YEAR

70 – 69 (1970 – 2069)

1901 - 2155

ปี สามารถระบุเป็นรูปแบบ 2 หรือ 4 ตำแหน่ง แต่ละรูปแบบมีช่วงข้อมูลต่างกัน


ประเภทข้อมูลตัวเลข

ประเภท

ช่วงข้อมูล

การเก็บ (ไบต์)

คำอธิบาย

TINYINT [(M)]

-127..128
หรือ 0..255

1

จำนวนเต็มขนาดเล็กมาก

SMALLINT [(M)]

-32768..32767
หรือ 0..65535

2

จำนวนเต็มขนาดเล็ก

MEDIUMINT [(M)]

-8388608.. 8388607
หรือ 0.. 16777215

3

จำนวนเต็มขนาดกลาง

INT [(M)]

-2 31 .. 2 31 -1
หรือ 0.. 2 32 -1

4

จำนวนเต็มปกติ

INTEGER [(M)]

ชื่อเดียวกับ INT

BIGINT [(M)]

-2 63 .. 2 63 -1
หรือ 0.. 2 64 -1

8

จำนวนเต็มปกติ


ประเภท

ช่วงข้อมูล

การเก็บ (ไบต์)

คำอธิบาย

FLOAT ( precision )

ขึ้นกับ precision

แปรผัน

สามารถระบุเป็น Single หรือ Double

FLOAT [(M,D)]

?1.175494351E-38
?3.402823466E+38

4

ขนาด Single เทียบเท่ากับ FLOAT (4) แต่ระบุการแสดงความกว้างและจำนวนทศนิยม

DOUBLE [(M,D)]

?1.7976931348623157E+308
?2.2250738585072014E-308

8

ขนาด Double เทียบเท่ากับ FLOAT (8) แต่ระบุการแสดงความกว้างและจำนวนทศนิยม

DOUBLE PRECISION [(M,D)]

เท่ากับ DOUBLE

ชื่อเดียวกับ DOUBLE [(M,D)]

REAL [(M,D)]

เท่ากับ DOUBLE

ชื่อเดียวกับ DOUBLE [(M,D)]

DECIMAL[(M [,D])]

แปรผัน

M+2

จำนวนทศนิยมที่จัดเก็บเป็น char ช่วงข้อมูลขึ้นกับ M และแสดงความกว้าง

NUMERIC [(M,D)]

เท่ากับ NUMERIC

ชื่อเดียวกับ NUMERIC


ประเภทข้อมูลข้อความ

ประเภท

ช่วงข้อมูล

คำอธิบาย

[NATIONAL]

CHAR (M) [BINARY]

1 ถึง 255 ตัวอักษร

ความยาวตายตัวตาม M โดย M อยู่ระหว่าง 1 ถึง 255 คีย์เวิร์ด NATIONAL ระบุชุดตัวอักษรเริ่มต้น นี่เป็นค่าเริ่มต้นใน MySQL แต่รวมอยู่ในมาตรฐาน ANSI SQL คีย์เวิร์ด BINARY ระบุข้อมูลต้องได้รับการปฏิบัติเป็นไม่ใช่ case sensitive (ค่าเริ่มต้นเป็น case sensitive )

[NATIONAL]

VARCHAR (M) [BINARY]

1 ถึง 255 ตัวอักษร

เหมือนกับ CHAR ยกเว้นความยาวแปรผัน


ประเภท

ช่วงความยาวมากที่สุด (ตัวอักษร)

คำอธิบาย

TINYBLOB

2 8 -1 (คือ 255)

ฟิลด์ BLOB ขนาดเล็ก

TINYTEXT

2 8 -1 (คือ 255)

ฟิลด์ TEXT ขนาดเล็ก

BLOB

2 16 -1 (คือ 65,535)

ฟิลด์ BLOB ขนาดปกติ

TEXT

2 16 -1 (คือ 65,535)

ฟิลด์ TEXT ขนาดปกติ

MEDIUMBLOB

2 24 -1 (คือ 16,777,215)

ฟิลด์ BLOB ขนาดกลาง

MEDIUMTEXT

2 24 -1 (คือ 16,777,215)

ฟิลด์ TEXT ขนาดกลาง

LONGBLOB

2 32 -1 (คือ 4,294,967,295)

ฟิลด์ BLOB ขนาดใหญ่

LONGTEXT

2 32 -1 (คือ 4,294,967,295)

ฟิลด์ TEXT ขนาดใหญ่


ผมไปขโมยตารางพวกนี้มาจากเว็บด้านล่างนี้ครับ เข้าไปศึกษาเพิ่มเติมได้ครับ
เขาอธิบายไว้ละเอียดพอสมควร จริงๆอยากให้ลองไปศึกษาดีดีครับเรื่องของประเภทข้อมูล
ส่วน blog ผมขออธิบายไว้แค่นี้ครับ ฮ่ะๆๆ ขี้เกี๊ยดขี้เกียด
อย่างที่บอกครับ เน้นการใช้งาน ทฤษฎีอย่าได้แคร์ ^^

นี่ครับเว็บ
http://www.widebase.net/database/mysql/mysqltutorial/mysqltutor0205.shtml

0 ความคิดเห็น