EP04: “คำสั่งสร้างโลกและตั้งคำถาม”: รู้จักกับ SQL-DDL และ SQL-DQL

จากพิมพ์เขียวสู่โครงสร้างจริง

  • ทบทวนภาพ E-R Diagram ระบบบำรุงรักษาเครื่องจักรจากสัปดาห์ที่ 3
  • แนะนำ SQL (Structured Query Language) ว่าเป็น “ภาษากลาง” ที่เราใช้สั่งงานและสนทนากับฐานข้อมูล
  • บอกว่าวันนี้เราจะเรียน 2 ส่วนสำคัญ: การสร้างโครงสร้าง (DDL) และ การสอบถามข้อมูล (DQL)

DDL (Data Definition Language) – ภาษาสำหรับนิยามข้อมูล

  • วัตถุประสงค์: ใช้สำหรับ “สร้าง, แก้ไข, และลบ” โครงสร้างของฐานข้อมูล เช่น ตาราง (Table)
  • คำสั่งหลัก: CREATE TABLE
    • โครงสร้างพื้นฐาน:SQLCREATE TABLE ชื่อตาราง ( ชื่อคอลัมน์1 ชนิดข้อมูล [ข้อกำหนด], ชื่อคอลัมน์2 ชนิดข้อมูล [ข้อกำหนด], ... );
    • ชนิดข้อมูล (Data Types) ที่พบบ่อยในโรงงาน:
      • INT / INTEGER: สำหรับเก็บเลขจำนวนเต็ม (เช่น รหัสพนักงาน, จำนวนชิ้นงาน)
      • VARCHAR(n): สำหรับเก็บข้อความที่มีความยาวไม่แน่นอน ไม่เกิน n ตัวอักษร (เช่น ชื่อเครื่องจักร, ตำแหน่ง)
      • TEXT: สำหรับเก็บข้อความยาวๆ (เช่น รายละเอียดปัญหา, คำอธิบาย)
      • DECIMAL(p, s): สำหรับเก็บเลขทศนิยมที่ต้องการความแม่นยำสูง (เช่น ค่าจากเซ็นเซอร์, อุณหภูมิ)
      • DATE: สำหรับเก็บวันที่ (รูปแบบ: YYYY-MM-DD)
      • TIMESTAMP: สำหรับเก็บทั้งวันที่และเวลา (รูปแบบ: YYYY-MM-DD HH:MI:SS)
    • ข้อกำหนด (Constraints):
      • PRIMARY KEY: กำหนดให้คอลัมน์นั้นเป็น “คีย์หลัก” ของตาราง (ข้อมูลต้องไม่ซ้ำและห้ามเป็นค่าว่าง)
      • NOT NULL: กำหนดว่าคอลัมน์นั้น “ห้ามเป็นค่าว่าง” ต้องมีข้อมูลเสมอ
      • FOREIGN KEY: กำหนดให้เป็น “คีย์นอก” เพื่อเชื่อมไปยัง PRIMARY KEY ของอีกตารางหนึ่ง (จะเน้นในภาคปฏิบัติ)
  • คำสั่งอื่นๆ: พูดถึง ALTER TABLE (แก้ไขโครงสร้าง) และ DROP TABLE (ลบตารางทิ้ง) ให้พอรู้จัก แต่เน้นว่า DROP อันตรายมาก

DQL (Data Query Language) – ภาษาสำหรับสืบค้นข้อมูล

  • วัตถุประสงค์: ใช้สำหรับ “ดึง” หรือ “สอบถาม” ข้อมูลที่เก็บอยู่ในตาราง
  • คำสั่งหลัก: SELECT
    • ดึงทุกคอลัมน์: SELECT * FROM ชื่อตาราง; (เครื่องหมาย * หมายถึง “ทุกอย่าง”)
    • ดึงเฉพาะคอลัมน์ที่ต้องการ: SELECT ชื่อคอลัมน์1, ชื่อคอลัมน์2 FROM ชื่อตาราง;
  • การกรองข้อมูลด้วย WHERE
    • โครงสร้าง: SELECT ... FROM ... WHERE เงื่อนไข;
    • ตัวดำเนินการเปรียบเทียบ (Comparison Operators):
      • = (เท่ากับ), <> หรือ != (ไม่เท่ากับ)
      • > (มากกว่า), < (น้อยกว่า), >= (มากกว่าหรือเท่ากับ), <= (น้อยกว่าหรือเท่ากับ)
    • การค้นหาข้อความ:
      • LIKE: ใช้ค้นหารูปแบบข้อความ
        • 'CNC%' หมายถึง ข้อความที่ขึ้นต้นด้วย “CNC”
        • '%Mill' หมายถึง ข้อความที่ลงท้ายด้วย “Mill”
        • '%Press%' หมายถึง ข้อความที่มีคำว่า “Press” อยู่ข้างใน
    • ตัวดำเนินการตรรกะ (Logical Operators):
      • AND: และ (เงื่อนไขทั้งสองฝั่งต้องเป็นจริง)
      • OR: หรือ (เงื่อนไขฝั่งใดฝั่งหนึ่งเป็นจริงก็พอ)

สรุปและปูทางสู่ภาคปฏิบัติ

  • สรุปความแตกต่าง: DDL คือการสร้างบ้าน, DQL คือการเข้าไปดูของในบ้าน
  • แจ้งเป้าหมายภาคปฏิบัติ: “เราจะนำ E-R Diagram ที่ออกแบบไว้ มาเปลี่ยนเป็นตารางจริงๆ ด้วยคำสั่ง CREATE TABLE จากนั้นจะลองใส่ข้อมูลและใช้ SELECT เพื่อค้นหาข้อมูลนั้นกัน”