MySQL การใช้งานคำสั่ง CREATE TABLE

คำสั่ง CREATE TABLE ใช้เพื่อ สร้างตารางใหม่ ในฐานข้อมูล (Database) โดยกำหนดชื่อคอลัมน์, ชนิดข้อมูล (Data Type), และข้อกำหนดต่าง ๆ เช่น PRIMARY KEY, NOT NULL, AUTO_INCREMENT เป็นต้น

รูปแบบคำสั่ง

CREATE TABLE table_name (
    column1 datatype constraints,
    column2 datatype constraints,
    ...
);
  • table_name = ชื่อตาราง
  • column1, column2 = ชื่อคอลัมน์
  • datatype = ประเภทข้อมูล เช่น INT, VARCHAR(100), DATE
  • constraints = ข้อกำหนดพิเศษ เช่น PRIMARY KEY, NOT NULL

ตัวอย่างการใช้งาน

สร้างตาราง customer

SQL
CREATE TABLE customer (
    customer_id INT AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    email VARCHAR(100),
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
  • customer_id INT AUTO_INCREMENT PRIMARY KEY สร้างคอลัมน์รหัสลูกค้า เป็นตัวเลขที่เพิ่มอัตโนมัติ และใช้เป็นรหัสหลักของตาราง
  • first_name VARCHAR(50) NOT NULL ชื่อลูกค้า (ไม่เกิน 50 ตัวอักษร) และต้องไม่เป็นค่าว่าง
  • last_name VARCHAR(50) NOT NULL นามสกุลลูกค้า (ไม่เกิน 50 ตัวอักษร) และต้องไม่เป็นค่าว่าง
  • email VARCHAR(100) อีเมลลูกค้า ไม่เกิน 100 ตัวอักษร (ใส่หรือไม่ใส่ก็ได้)
  • created_at DATETIME DEFAULT CURRENT_TIMESTAMP วันที่และเวลาที่สร้างข้อมูล กำหนดค่าอัตโนมัติเป็นเวลาปัจจุบัน

ข้อกำหนด (Constraints) ที่ใช้บ่อย

  • PRIMARY KEY – ใช้กำหนดคอลัมน์ที่เป็นคีย์หลัก ต้องไม่ซ้ำกันและไม่เป็นค่าว่าง
  • NOT NULL – บังคับให้คอลัมน์นั้นต้องมีค่าเสมอ
  • DEFAULT – กำหนดค่าเริ่มต้นให้กับคอลัมน์
  • AUTO_INCREMENT – ทำให้ค่าตัวเลขเพิ่มอัตโนมัติ (ใช้กับ INT)
  • UNIQUE – ห้ามมีค่าซ้ำในคอลัมน์นั้น
  • FOREIGN KEY – เชื่อมโยงกับตารางอื่นเพื่อสร้างความสัมพันธ์

ตัวอย่างการเชื่อม Foreign Key

SQL
CREATE TABLE orders (
  order_id INT PRIMARY KEY AUTO_INCREMENT,
  customer_id INT,
  order_date DATE,
  FOREIGN KEY (customer_id) REFERENCES customer(customer_id)
);
  • สร้างตาราง orders ที่เชื่อมกับ customer_id ของตาราง customer

ข้อควรระวัง

  • หลีกเลี่ยงการตั้งชื่อตารางหรือคอลัมน์ที่เป็น คำสงวนของ SQL เช่น order, select, group
  • อย่าลืมใส่ PRIMARY KEY เพื่อให้ระบบสามารถระบุข้อมูลแต่ละแถวได้
แชร์เรื่องนี้