ใน SQL, โอเปอเรเตอร์ NOT ใช้เพื่อกลับค่าความจริง (True เป็น False และ False เป็น True) และมักใช้เพื่อกรองข้อมูลที่ไม่ตรงตามเงื่อนไขที่กำหนด ตัวอย่างการใช้งาน NOT สามารถใช้ร่วมกับเงื่อนไขต่างๆ เช่น WHERE, IN, EXISTS, และอื่น ๆ เพื่อเพิ่มความสามารถในการกรองข้อมูลในแบบที่ต้องการ
รูปแบบการใช้งานโอเปอเรเตอร์ NOT
สมมติว่ามีฐานข้อมูลชื่อ Employees ซึ่งมีรายละเอียดดังนี้
สร้างตารางและแทรกข้อมูล
SQL
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Name VARCHAR(100),
Age INT,
Department VARCHAR(50),
Salary DECIMAL(10, 2)
);
INSERT INTO Employees (EmployeeID, Name, Age, Department, Salary) VALUES
(1, 'John Doe', 28, 'HR', 45000),
(2, 'Jane Smith', 35, 'IT', 55000),
(3, 'Alice Brown', 25, 'Finance', 32000),
(4, 'Bob White', 40, 'IT', 60000),
(5, 'Charlie Green', 29, 'HR', 40000);
การใช้งาน NOT ร่วมกับ WHERE
SQL
SELECT * FROM Employees
WHERE NOT Age >= 30;ดึงข้อมูลพนักงานที่อายุน้อยกว่า 30 ปี จะได้ผลลัพธ์ดังนี้

การใช้งาน NOT ร่วมกับ IN
SQL
SELECT * FROM Employees
WHERE Department NOT IN ('HR', 'Finance');ดึงข้อมูลพนักงานที่ไม่ได้อยู่ในแผนก HR หรือ Finance
ผลลัพธ์

การใช้งาน NOT ร่วมกับ LIKE
SQL
SELECT * FROM Employees
WHERE Name NOT LIKE 'J%';ดึงข้อมูลพนักงานที่ชื่อไม่ได้ขึ้นต้นด้วยตัวอักษร “J”
ผลลัพธ์

การใช้งาน NOT ร่วมกับ BETWEEN
SQL
SELECT * FROM Employees
WHERE Salary NOT BETWEEN 30000 AND 50000;ดึงข้อมูลพนักงานที่เงินเดือนไม่ได้อยู่ในช่วง 30,000 ถึง 50,000
ผลลัพธ์

การใช้งาน NOT ร่วมกับ EXISTS
สมมติว่ามีตาราง Managers ดังนี้
SQL
-- สร้างตาราง Managers
CREATE TABLE Managers (
ManagerID INT PRIMARY KEY,
EmployeeID INT
);
-- แทรกข้อมูลลงในตาราง Managers
INSERT INTO Managers (ManagerID, EmployeeID)
VALUES
(1, 2),
(2, 4);ตาราง Managers

SQL
SELECT * FROM Employees e
WHERE NOT EXISTS (
SELECT 1 FROM Managers m WHERE m.EmployeeID = e.EmployeeID
);ดึงข้อมูลพนักงานที่ไม่ได้เป็นผู้จัดการ (ไม่อยู่ในตาราง Managers)
ผลลัพธ์

