SQL การใช้งาน CREATE TABLE Statement

คำสั่ง CREATE TABLE ใน SQL ใช้เพื่อสร้างตารางใหม่ในฐานข้อมูล โดยเราต้องระบุชื่อของตาราง และข้อมูลคอลัมน์ที่เราต้องการ เช่น ชนิดข้อมูล (data type) ของแต่ละคอลัมน์ ข้อกำหนดต่างๆ เช่น PRIMARY KEY, NOT NULL, UNIQUE, FOREIGN KEY เป็นต้น

โครงสร้างพื้นฐานของคำสั่ง CREATE TABLE

CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    ...
);
  • table_name: ชื่อตารางที่ต้องการสร้าง
  • column1, column2: ชื่อของคอลัมน์ในตาราง
  • datatype: ชนิดข้อมูลของคอลัมน์ เช่น INT, VARCHAR, DATE
  • constraint: กำหนดข้อบังคับพิเศษ เช่น NOT NULL (ไม่สามารถเป็นค่าว่าง), PRIMARY KEY (ระบุคีย์หลัก), UNIQUE (ห้ามมีค่าซ้ำกัน)

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

การสร้างตารางพื้นฐาน

ตัวอย่างนี้เราจะสร้างตารางชื่อ Employees เพื่อจัดเก็บข้อมูลของพนักงาน

SQL
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    FirstName VARCHAR(50) NOT NULL,
    LastName VARCHAR(50) NOT NULL,
    BirthDate DATE,
    HireDate DATE,
    Position VARCHAR(50)
);

คำอธิบาย

  • EmployeeID: ใช้เป็น PRIMARY KEY ทำให้ค่านี้ไม่ซ้ำกันในแต่ละแถว
  • FirstName และ LastName: ใช้ชนิดข้อมูลเป็น VARCHAR(50) ซึ่งรองรับตัวอักษรสูงสุด 50 ตัวอักษร และกำหนดให้เป็น NOT NULL (ไม่สามารถเป็นค่าว่าง)
  • BirthDate และ HireDate: เป็นข้อมูลชนิด DATE
  • Position: เป็นข้อมูลชนิด VARCHAR(50)

การใช้ FOREIGN KEY

เราสามารถสร้างตารางที่เชื่อมต่อกับตารางอื่นด้วย FOREIGN KEY เพื่อสร้างความสัมพันธ์ระหว่างตาราง เช่น ตาราง Departments กับ Employees

SQL
CREATE TABLE Departments (
    DepartmentID INT PRIMARY KEY,
    DepartmentName VARCHAR(50) NOT NULL
);

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    FirstName VARCHAR(50) NOT NULL,
    LastName VARCHAR(50) NOT NULL,
    DepartmentID INT,
    FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
);

คำอธิบาย

  • ตาราง Departments เก็บข้อมูลเกี่ยวกับแผนกต่างๆ
  • ในตาราง Employees มีคอลัมน์ DepartmentID ซึ่งเป็น FOREIGN KEY เชื่อมโยงไปยัง DepartmentID ของตาราง Departments ทำให้พนักงานแต่ละคนสามารถสังกัดแผนกได้

การใช้ AUTO_INCREMENT

หากต้องการให้ค่าของคอลัมน์ EmployeeID เพิ่มขึ้นโดยอัตโนมัติเมื่อมีการแทรกข้อมูลใหม่ เราสามารถใช้ AUTO_INCREMENT (หรือ SERIAL ในบางฐานข้อมูล) ดังนี้

SQL
CREATE TABLE Employees (
    EmployeeID INT AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(50) NOT NULL,
    LastName VARCHAR(50) NOT NULL,
    Position VARCHAR(50)
);
  • คอลัมน์ EmployeeID จะเพิ่มค่าโดยอัตโนมัติเมื่อมีการเพิ่มข้อมูลใหม่

การใช้ข้อบังคับ UNIQUE และ CHECK

ตัวอย่างนี้เป็นการสร้างตารางที่มีข้อบังคับ UNIQUE เพื่อห้ามค่าซ้ำ และ CHECK เพื่อกำหนดเงื่อนไขในการรับข้อมูล

SQL
CREATE TABLE Products (
    ProductID INT PRIMARY KEY,
    ProductName VARCHAR(50) NOT NULL UNIQUE,
    Price DECIMAL(10, 2) CHECK (Price > 0),
    Quantity INT CHECK (Quantity >= 0)
);

คำอธิบาย:

  • ProductName ต้องไม่ซ้ำกันในแต่ละแถว เพราะมีการใช้ข้อบังคับ UNIQUE
  • Price ต้องมากกว่า 0 เพราะมีเงื่อนไข CHECK (Price > 0)
  • Quantity ต้องมีค่าเป็นบวกหรือเท่ากับ 0 เนื่องจากมีเงื่อนไข CHECK (Quantity >= 0)
แชร์เรื่องนี้