MSSq CRUD

MSSql with CRUD (Create, Read, Update, Delete)

ตัวอย่างการเขียน MSSql Views, Functions, และ Stored procedures ผ่านมุมมองของ CRUD (Create, Read, Update, Delete)

MSSql with CRUD (Create, Read, Update, Delete)
Ake SuwaphanAke Suwaphan
15 February 2024

MSSql with CRUD (Create, Read, Update, Delete)

ตัวอย่างการเขียน MSSql Views, Functions, และ Stored procedures ผ่านมุมมองของ CRUD (Create, Read, Update, Delete) ของข้อมูล

สร้างตาราง departments เป็นตารางที่เก็บข้อมูลเกี่ยวกับแผนก


    CREATE TABLE departments (
        department_id INT PRIMARY KEY,
        department_name NVARCHAR(50)
    );

สร้างตาราง employees เป็นตารางที่เก็บข้อมูลเกี่ยวกับพนักงาน โดยมี Foreign Key เชื่อมต่อกับ departments


    CREATE TABLE employees (
        employee_id INT PRIMARY KEY,
        employee_name NVARCHAR(50),
        employee_salary DECIMAL,
        department_id INT,
        CONSTRAINT FK_Department FOREIGN KEY (department_id) REFERENCES departments(department_id)
    );

ตัวอย่างของ SQL Query ต่าง ๆ ตามแบบ CRUD สำหรับตาราง employees

1. CREATE (Insert) การเพิ่มข้อมูลพนักงานใหม่


    INSERT INTO employees (employee_id, employee_name, employee_salary, department_id)
    VALUES (1, 'Ake Suwaphan', 100000, 1);

2. READ (Select) การดึงข้อมูลของพนักงานทั้งหมด


    SELECT * FROM employees;

3. READ (Select with Condition) การดึงข้อมูลของพนักงานแบบมีเงื่อนไขที่มีรหัสเท่ากับ 1


    SELECT * FROM employees WHERE employee_id = 1;

4. UPDATE การอัปเดตข้อมูลของพนักงานที่มีรหัสที่มีรหัสเท่ากับ 1


    UPDATE employees
    SET employee_salary = 200000
    WHERE employee_id = 1;

5. DELETE การลบข้อมูลของพนักงานที่มีรหัสเท่ากับ 1


    DELETE FROM employees
    WHERE employee_id = 1;

SQL View (Read-Only) ชื่อ "EmployeeView" ที่แสดงข้อมูลพนักงานและแผนกที่เกี่ยวข้อง


    CREATE VIEW EmployeeView AS
    SELECT 
        e.employee_id,
        e.employee_name,
        e.employee_salary,
        d.department_name
    FROM 
        employees e
    JOIN 
        departments d ON e.department_id = d.department_id;

SQL Function (Read) ชื่อ "GetEmployeeSalary" ที่รับ employee_id เป็น input และคืนค่าเงินเดือนของพนักงานนั้น


    CREATE FUNCTION GetEmployeeSalary(@emp_id INT)
    RETURNS DECIMAL
    AS
    BEGIN
        DECLARE @salary DECIMAL;
        SELECT @salary = employee_salary
        FROM employees
        WHERE employee_id = @emp_id;
        RETURN @salary;
    END;

SQL Stored Procedure (Create/Update/Delete) ชื่อ "ManageEmployee" ที่รับ Parameter สำหรับการเพิ่ม (Create), อัปเดต (Update), และลบ (Delete) ข้อมูลพนักงาน


    CREATE PROCEDURE ManageEmployee
           @emp_id INT,
           @emp_name NVARCHAR(50),
           @emp_salary DECIMAL,
           @dept_id INT,
           @action VARCHAR(10)
    AS
    BEGIN
        IF @action = 'CREATE'
        BEGIN
            INSERT INTO employees (employee_id, employee_name, employee_salary, department_id)
            VALUES (@emp_id, @emp_name, @emp_salary, @dept_id);
        END
        ELSE IF @action = 'UPDATE'
        BEGIN
            UPDATE employees
            SET 
                employee_name = @emp_name,
                employee_salary = @emp_salary,
                department_id = @dept_id
            WHERE employee_id = @emp_id;
        END
        ELSE IF @action = 'DELETE'
        BEGIN
            DELETE FROM employees
            WHERE employee_id = @emp_id;
        END
    END;

สรุปและการเปรียบเทียบ CRUD

  • Views เหมาะสำหรับการดึงข้อมูลเฉพาะบางคอลัมน์หรือกรองข้อมูล
  • Functions เหมาะสำหรับการคำนวณหรือดึงข้อมูลแบบเฉพาะเจาะจง
  • Stored Procedures เหมาะสำหรับการรวม logic ที่ซับซ้อนและทำงานกับข้อมูลหลายตาราง
Feature Views Functions Stored Procedures
Create
Read
Update
Delete