การสร้างฐานข้อมูลและตารางใน SQLite
หลังจากที่เราติดตั้ง SQLite และ DB Browser for SQLite เรียบร้อยแล้ว ในบทนี้เราจะมาเรียนรู้วิธีการสร้างฐานข้อมูลและตารางใน SQLite กันครับ การสร้างฐานข้อมูลและตารางเป็นขั้นตอนแรกในการเริ่มต้นใช้งานฐานข้อมูลใดๆ ก็ตาม ดังนั้นมาเริ่มกันเลย!
การสร้างฐานข้อมูล (CREATE DATABASE)
ใน SQLite นั้นแตกต่างจากฐานข้อมูลอื่นๆ เล็กน้อย ตรงที่ไม่มีคำสั่ง CREATE DATABASE โดยตรงครับ การสร้างฐานข้อมูลใน SQLite ทำได้โดยการเชื่อมต่อไปยังไฟล์ฐานข้อมูล ถ้าไฟล์นั้นยังไม่มีอยู่ ระบบจะสร้างไฟล์นั้นขึ้นมาให้เราโดยอัตโนมัติครับ
ขั้นตอนการสร้างฐานข้อมูล:
- เปิดโปรแกรม DB Browser for SQLite
- คลิกที่ปุ่ม "New Database"
- เลือกตำแหน่งที่ต้องการบันทึกไฟล์ฐานข้อมูล (เช่น Desktop) ตั้งชื่อไฟล์ (เช่น `mydatabase.db`) และคลิก "Save"
แค่นี้เองครับ! เราก็มีฐานข้อมูลเปล่าๆ ชื่อ `mydatabase.db` พร้อมใช้งานแล้ว
กรณีใช้งานจริง: สมมติว่าเราต้องการสร้างฐานข้อมูลสำหรับเก็บข้อมูลหนังสือ เราอาจจะตั้งชื่อไฟล์ว่า `bookstore.db` ครับ
การสร้างตาราง (CREATE TABLE)
เมื่อเรามีฐานข้อมูลแล้ว ขั้นตอนต่อไปคือการสร้างตารางเพื่อเก็บข้อมูล ตารางคือโครงสร้างที่เก็บข้อมูลในรูปแบบแถว (row) และคอลัมน์ (column) แต่ละคอลัมน์จะมีชื่อและชนิดข้อมูล (Data Type) กำหนดไว้
คำสั่ง SQL:
CREATE TABLE table_name (
column1 data_type constraints,
column2 data_type constraints,
column3 data_type constraints,
...
);
คำอธิบาย:
CREATE TABLE: เป็นคำสั่ง SQL สำหรับสร้างตารางtable_name: คือชื่อของตารางที่เราต้องการสร้าง (ควรตั้งชื่อให้สื่อความหมาย)column1,column2,column3, ...: คือชื่อของคอลัมน์แต่ละคอลัมน์data_type: คือชนิดข้อมูลของคอลัมน์นั้นๆ (เช่น TEXT, INTEGER, REAL)constraints: คือข้อจำกัดเพิ่มเติมของคอลัมน์ (เช่น PRIMARY KEY, NOT NULL)
ตัวอย่าง: สร้างตาราง `books` สำหรับเก็บข้อมูลหนังสือ
CREATE TABLE books (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
author TEXT,
price REAL
);
คำอธิบาย:
books: ชื่อของตารางid: คอลัมน์สำหรับเก็บ ID ของหนังสือ (ชนิดข้อมูล INTEGER, เป็น Primary Key และ Auto Increment)title: คอลัมน์สำหรับเก็บชื่อหนังสือ (ชนิดข้อมูล TEXT, ห้ามเป็นค่าว่าง NOT NULL)author: คอลัมน์สำหรับเก็บชื่อผู้แต่ง (ชนิดข้อมูล TEXT)price: คอลัมน์สำหรับเก็บราคาหนังสือ (ชนิดข้อมูล REAL)
ขั้นตอนการสร้างตารางใน DB Browser for SQLite:
- เปิดโปรแกรม DB Browser for SQLite และเปิดฐานข้อมูลที่เราสร้างไว้ (`mydatabase.db` หรือ `bookstore.db`)
- ไปที่แท็บ "Execute SQL"
- พิมพ์คำสั่ง
CREATE TABLEที่เราต้องการสร้าง (เช่น ตัวอย่างข้างบน) - คลิกที่ปุ่ม "Execute" (หรือกด Ctrl+Enter)
- ถ้าไม่มีข้อผิดพลาด ตาราง `books` จะถูกสร้างขึ้น
- ไปที่แท็บ "Browse Data" และเลือกตาราง `books` เพื่อดูโครงสร้างของตาราง
กรณีใช้งานจริง: เราอาจจะสร้างตาราง `customers` เพื่อเก็บข้อมูลลูกค้า หรือตาราง `orders` เพื่อเก็บข้อมูลการสั่งซื้อ
ข้อผิดพลาดที่พบบ่อย:
- Syntax Error: เกิดจากการพิมพ์คำสั่ง SQL ผิด (เช่น ลืมใส่เครื่องหมาย
;หรือสะกดคำผิด) - Table Already Exists: เกิดจากการพยายามสร้างตารางที่มีชื่อซ้ำกับตารางที่มีอยู่แล้ว
- Data Type Mismatch: เกิดจากการพยายามใส่ข้อมูลที่ไม่ตรงกับชนิดข้อมูลที่กำหนดไว้ในคอลัมน์
Data Types ใน SQLite
Data Type คือชนิดของข้อมูลที่สามารถเก็บไว้ในคอลัมน์ของตาราง SQLite มี Data Type ไม่มากนักเมื่อเทียบกับฐานข้อมูลอื่นๆ ทำให้ง่ายต่อการเรียนรู้และใช้งาน
Data Types หลักๆ ใน SQLite:
- NULL: แทนค่าที่ไม่มีข้อมูล (Empty Value)
- INTEGER: เก็บตัวเลขจำนวนเต็ม (เช่น 1, 2, 100, -5)
- REAL: เก็บตัวเลขทศนิยม (เช่น 3.14, 2.71, -0.5)
- TEXT: เก็บข้อความ (เช่น "Hello", "World", "SQLite")
- BLOB: เก็บข้อมูลไบนารี (เช่น รูปภาพ, ไฟล์เสียง)
ข้อควรรู้: SQLite เป็น Dynamic Type System หมายความว่า Data Type ที่เรากำหนดตอนสร้างตารางเป็นเพียงคำแนะนำ (Affinity) เท่านั้น SQLite จะพยายามแปลงข้อมูลให้ตรงกับ Affinity ที่กำหนดไว้ ถ้าไม่สามารถแปลงได้ก็จะเก็บข้อมูลนั้นๆ ในรูปแบบเดิม
ตารางสรุป Data Types:
| Data Type | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| NULL | ค่าที่ไม่มีข้อมูล | NULL |
| INTEGER | ตัวเลขจำนวนเต็ม | 10, -5, 0 |
| REAL | ตัวเลขทศนิยม | 3.14, -2.5, 0.0 |
| TEXT | ข้อความ | "Hello World", "SQLite", "123" |
| BLOB | ข้อมูลไบนารี | (Binary data) |
กรณีใช้งานจริง:
INTEGER: ใช้เก็บ ID, จำนวนสินค้า, อายุREAL: ใช้เก็บราคา, คะแนน, อัตราดอกเบี้ยTEXT: ใช้เก็บชื่อ, ที่อยู่, รายละเอียดสินค้าBLOB: ใช้เก็บรูปภาพสินค้า, ไฟล์เอกสาร
ข้อควรจำ: การเลือก Data Type ที่เหมาะสมจะช่วยให้ฐานข้อมูลของเรามีประสิทธิภาพและใช้งานได้ง่ายขึ้น
ในบทนี้เราได้เรียนรู้วิธีการสร้างฐานข้อมูลและตารางใน SQLite รวมถึง Data Types ที่สำคัญ ในบทต่อไปเราจะมาเรียนรู้เกี่ยวกับ CRUD Operations ซึ่งเป็นพื้นฐานของการจัดการข้อมูลในฐานข้อมูลครับ เตรียมตัวให้พร้อม!