คำสั่ง 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,DATEconstraint: กำหนดข้อบังคับพิเศษ เช่น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: เป็นข้อมูลชนิดDATEPosition: เป็นข้อมูลชนิด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ต้องไม่ซ้ำกันในแต่ละแถว เพราะมีการใช้ข้อบังคับUNIQUEPriceต้องมากกว่า 0 เพราะมีเงื่อนไขCHECK (Price > 0)Quantityต้องมีค่าเป็นบวกหรือเท่ากับ 0 เนื่องจากมีเงื่อนไขCHECK (Quantity >= 0)
