SQL Data Types คือประเภทของข้อมูลที่ใช้ในฐานข้อมูลเพื่อกำหนดชนิดของค่าที่สามารถบันทึกลงในคอลัมน์ของตาราง (Table) ได้ ชนิดของข้อมูลใน SQL มีหลายประเภท โดยสามารถแบ่งออกเป็นหมวดหมู่หลัก ๆ ได้ดังนี้
1. Numeric Data Types (ประเภทตัวเลข)
ใช้สำหรับการเก็บค่าตัวเลข ซึ่งสามารถแบ่งได้เป็นสองหมวดหลัก คือ ตัวเลขจำนวนเต็ม และตัวเลขทศนิยม ประกอบด้วย
- INTEGER: เก็บค่าตัวเลขจำนวนเต็ม ไม่มีจุดทศนิยม
- ตัวอย่าง:
123,-456
- ตัวอย่าง:
- FLOAT: เก็บค่าตัวเลขที่มีทศนิยม ความแม่นยำอาจไม่คงที่
- ตัวอย่าง:
123.45,-0.987
- ตัวอย่าง:
- DECIMAL(p, s): ใช้สำหรับเก็บค่าตัวเลขที่มีความแม่นยำของทศนิยมแน่นอน โดยที่
pคือจำนวนหลักทั้งหมด และsคือจำนวนหลักทศนิยม- ตัวอย่าง:
DECIMAL(5, 2)ค่าที่เก็บ เช่น123.45,-987.65
- ตัวอย่าง:
2. String Data Types (ประเภทข้อความ)
ใช้สำหรับการเก็บค่าข้อความ (String) เช่น ชื่อหรืออีเมล
- CHAR(n): เก็บข้อความที่มีความยาวคงที่เท่ากับ
nตัวอักษร ถ้าความยาวจริงสั้นกว่านี้ จะถูกเติมด้วยช่องว่าง (spaces)- ตัวอย่าง:
CHAR(5)เก็บค่า"John "(ถ้าใส่"John"จะถูกเติมช่องว่างต่อท้าย)
- ตัวอย่าง:
- VARCHAR(n): เก็บข้อความที่มีความยาวเปลี่ยนแปลงได้ สูงสุดไม่เกิน
nตัวอักษร- ตัวอย่าง:
VARCHAR(50)เก็บค่า"Hello World!"ได้พอดี
- ตัวอย่าง:
- TEXT: เก็บข้อความที่มีขนาดใหญ่มาก ไม่กำหนดความยาวตายตัว
- ตัวอย่าง: ข้อความอธิบายสินค้าหรือบทความยาว ๆ
3. Date and Time Data Types (ประเภทวันและเวลา)
ใช้สำหรับการเก็บข้อมูลเกี่ยวกับวันเวลา
- DATE: เก็บวันที่ในรูปแบบ
YYYY-MM-DD- ตัวอย่าง:
2024-10-13
- ตัวอย่าง:
- TIME: เก็บเวลาในรูปแบบ
HH:MM:SS- ตัวอย่าง:
14:30:00
- ตัวอย่าง:
- DATETIME: เก็บทั้งวันที่และเวลาในรูปแบบ
YYYY-MM-DD HH:MM:SS- ตัวอย่าง:
2024-10-13 14:30:00
- ตัวอย่าง:
- TIMESTAMP: เก็บค่าของวันที่และเวลาตามค่าเวลา UNIX (จำนวนวินาทีตั้งแต่ 1 มกราคม 1970)
- ตัวอย่าง:
2024-10-13 14:30:00อาจถูกแปลงเป็นค่าจำนวนวินาทีเช่น1720789800
- ตัวอย่าง:
4. Boolean Data Type (ประเภทตรรกะ)
ใช้สำหรับการเก็บค่าทางตรรกะ ซึ่งมีแค่สองค่า คือ TRUE หรือ FALSE
- BOOLEAN: เก็บค่า
TRUEหรือFALSE- ตัวอย่าง: ค่าจริง (
TRUE), ค่าเท็จ (FALSE)
- ตัวอย่าง: ค่าจริง (
5. Binary Data Types (ประเภทข้อมูลไบนารี)
ใช้สำหรับการเก็บข้อมูลที่เป็นบิตหรือไบต์ เช่น ไฟล์รูปภาพหรือเสียง
- BINARY(n): เก็บข้อมูลไบนารีที่มีขนาดคงที่เป็นจำนวน
nไบต์ - VARBINARY(n): เก็บข้อมูลไบนารีที่มีขนาดเปลี่ยนแปลงได้ สูงสุดไม่เกิน
nไบต์ - BLOB: เก็บข้อมูลขนาดใหญ่ในรูปแบบไบนารี เช่น ภาพหรือวิดีโอ
ตัวอย่างการใช้งาน
สมมติเรามีตารางฐานข้อมูลสำหรับจัดเก็บข้อมูลพนักงานในบริษัทดังนี้
SQL
CREATE TABLE Employees (
employee_id INT,
first_name VARCHAR(50),
last_name VARCHAR(50),
birth_date DATE,
hire_date DATETIME,
salary DECIMAL(10, 2),
is_active BOOLEAN
);ตารางนี้ประกอบด้วย:
employee_id: รหัสพนักงาน เป็นตัวเลขจำนวนเต็ม (INT)first_name: ชื่อพนักงาน เป็นข้อความที่มีความยาวไม่เกิน 50 ตัวอักษร (VARCHAR(50))last_name: นามสกุลพนักงาน เป็นข้อความที่มีความยาวไม่เกิน 50 ตัวอักษร (VARCHAR(50))birth_date: วันเกิดของพนักงาน เป็นข้อมูลวัน (DATE)hire_date: วันที่เริ่มงานของพนักงาน เป็นทั้งวันที่และเวลา (DATETIME)salary: เงินเดือนของพนักงาน เป็นตัวเลขทศนิยมที่มีจำนวนหลักทั้งหมด 10 หลัก และทศนิยม 2 หลัก (DECIMAL(10, 2))is_active: สถานะว่าพนักงานยังทำงานอยู่หรือไม่ เป็นข้อมูลตรรกะ (BOOLEAN)
