ชนิดข้อมูล (Data Types)
บทนำ
ในฐานข้อมูล SQL, ชนิดข้อมูล (Data Types) คือการกำหนดประเภทของข้อมูลที่สามารถเก็บในแต่ละคอลัมน์ของตาราง การเลือกชนิดข้อมูลที่ถูกต้องช่วยให้ฐานข้อมูลสามารถจัดเก็บข้อมูลได้อย่างมีประสิทธิภาพและประมวลผลข้อมูลได้เร็วขึ้น โดยฐานข้อมูลแต่ละชนิด เช่น PostgreSQL, MySQL, SQL Server, ฯลฯ มีชนิดข้อมูลที่รองรับหลากหลาย เพื่อให้เหมาะสมกับประเภทของข้อมูลที่ต้องการเก็บ
1. ชนิดข้อมูลตัวเลข (Numeric Data Types)
1.1 INT หรือ INTEGER
ใช้เก็บข้อมูลจำนวนเต็ม
- ขนาด: 4 ไบต์
- ช่วงค่า: -2,147,483,648 ถึง 2,147,483,647
ตัวอย่าง:
CREATE TABLE example (
age INT
);
1.2 SMALLINT
ใช้เก็บข้อมูลจำนวนเต็มขนาดเล็ก
- ขนาด: 2 ไบต์
- ช่วงค่า: -32,768 ถึง 32,767
ตัวอย่าง:
CREATE TABLE example (
size SMALLINT
);
1.3 BIGINT
ใช้เก็บข้อมูลจำนวนเต็มที่มีค่ามาก
- ขนาด: 8 ไบต์
- ช่วงค่า: -9,223,372,036,854,775,808 ถึง 9,223,372,036,854,775,807
ตัวอย่าง:
CREATE TABLE example (
population BIGINT
);
1.4 DECIMAL หรือ NUMERIC
ใช้เก็บข้อมูลตัวเลขที่ต้องการความแม่นยำสูง เช่น การเก็บราคาหรือค่าทางการเงิน
- ขนาด: สามารถกำหนดได้
- ช่วงค่า: ขึ้นอยู่กับขนาดที่กำหนด
ตัวอย่าง:
CREATE TABLE example (
price DECIMAL(10, 2)
);
ในตัวอย่างนี้ DECIMAL(10, 2) หมายถึงตัวเลขทั้งหมด 10 หลัก และมีทศนิยม 2 หลัก
1.5 FLOAT และ REAL
ใช้เก็บข้อมูลตัวเลขทศนิยมที่ไม่ต้องการความแม่นยำสูง
- FLOAT: ใช้เก็บตัวเลขทศนิยมที่มีความแม่นยำสูงกว่า REAL
- REAL: ใช้เก็บตัวเลขทศนิยมที่มีความแม่นยำต่ำกว่า FLOAT
ตัวอย่าง:
CREATE TABLE example (
rating FLOAT
);
2. ชนิดข้อมูลข้อความ (Character Data Types)
2.1 CHAR(n) หรือ CHARACTER(n)
ใช้เก็บข้อความที่มีความยาวคงที่ n ตัวอักษร โดยหากข้อความสั้นกว่าความยาวที่กำหนด ระบบจะเติมช่องว่างจนเต็ม
ตัวอย่าง:
CREATE TABLE example (
code CHAR(5)
);
2.2 VARCHAR(n) หรือ CHARACTER VARYING(n)
ใช้เก็บข้อความที่มีความยาวไม่คงที่ n คือความยาวสูงสุดที่สามารถเก็บได้ ข้อความที่เก็บจะไม่เติมช่องว่าง
ตัวอย่าง:
CREATE TABLE example (
description VARCHAR(100)
);
2.3 TEXT
ใช้เก็บข้อความที่มีความยาวไม่จำกัด ใช้เมื่อไม่ทราบความยาวสูงสุดของข้อมูล
ตัวอย่าง:
CREATE TABLE example (
details TEXT
);
3. ชนิดข้อมูลวันที่และเวลา (Date and Time Data Types)
3.1 DATE
ใช้เก็บข้อมูลวันที่ (ปี, เดือน, วัน)
- รูปแบบ: YYYY-MM-DD
ตัวอย่าง:
CREATE TABLE example (
birthdate DATE
);
3.2 TIME
ใช้เก็บข้อมูลเวลา (ชั่วโมง, นาที, วินาที)
- รูปแบบ: HH:MM:SS
ตัวอย่าง:
CREATE TABLE example (
meeting_time TIME
);
3.3 TIMESTAMP
ใช้เก็บข้อมูลวันที่และเวลารวมกัน
- รูปแบบ: YYYY-MM-DD HH:MM:SS
ตัวอย่าง:
CREATE TABLE example (
created_at TIMESTAMP
);
3.4 INTERVAL
ใช้เก็บช่วงเวลาหรือระยะเวลา เช่น วัน, เดือน, ปี, ชั่วโมง, นาที
ตัวอย่าง:
CREATE TABLE example (
duration INTERVAL
);
4. ชนิดข้อมูลบูลีน (Boolean Data Types)
4.1 BOOLEAN
ใช้เก็บข้อมูลที่มีค่าเป็น TRUE, FALSE, หรือ NULL
ตัวอย่าง:
CREATE TABLE example (
is_active BOOLEAN
);
5. ชนิดข้อมูลไบต์ (Binary Data Types)
5.1 BYTEA
ใช้เก็บข้อมูลไบต์ เช่น รูปภาพ, ไฟล์เสียง, หรือไฟล์อื่น ๆ
ตัวอย่าง:
CREATE TABLE example (
image BYTEA
);
6. ชนิดข้อมูลอื่น ๆ (Other Data Types)
6.1 ENUM
ใช้เก็บข้อมูลที่มีค่าสถานะหรือประเภทที่จำกัด เช่น วันในสัปดาห์ หรือสถานะของคำสั่ง
ตัวอย่าง:
CREATE TABLE example (
status ENUM('pending', 'approved', 'rejected')
);
6.2 ARRAY
ใช้เก็บข้อมูลที่เป็นอาเรย์ของข้อมูลชนิดเดียวกัน
ตัวอย่าง:
CREATE TABLE example (
numbers INT[]
);
สรุป
การเลือกชนิดข้อมูลที่ถูกต้องสำหรับแต่ละคอลัมน์ในตารางเป็นสิ่งสำคัญในการออกแบบฐานข้อมูลที่มีประสิทธิภาพ การเลือกชนิดข้อมูลที่เหมาะสมช่วยให้ฐานข้อมูลทำงานได้เร็วขึ้น และสามารถจัดการข้อมูลได้อย่างถูกต้องและปลอดภัย ใน SQL มีชนิดข้อมูลหลากหลายที่รองรับข้อมูลต่าง ๆ ทั้งตัวเลข ข้อความ วันที่และเวลา และข้อมูลบูลีน ซึ่งสามารถนำไปใช้งานตามความต้องการของระบบได้
คุณสามารถบันทึกไฟล์นี้ในรูปแบบ `.md` ได้เลยครับ