EP04: “คำสั่งสร้างโลกและตั้งคำถาม”: รู้จักกับ SQL-DDL และ SQL-DQL
จากพิมพ์เขียวสู่โครงสร้างจริง
- ทบทวนภาพ E-R Diagram ระบบบำรุงรักษาเครื่องจักรจากสัปดาห์ที่ 3
- แนะนำ SQL (Structured Query Language) ว่าเป็น “ภาษากลาง” ที่เราใช้สั่งงานและสนทนากับฐานข้อมูล
- บอกว่าวันนี้เราจะเรียน 2 ส่วนสำคัญ: การสร้างโครงสร้าง (DDL) และ การสอบถามข้อมูล (DQL)
DDL (Data Definition Language) – ภาษาสำหรับนิยามข้อมูล
- วัตถุประสงค์: ใช้สำหรับ “สร้าง, แก้ไข, และลบ” โครงสร้างของฐานข้อมูล เช่น ตาราง (Table)
- คำสั่งหลัก:
CREATE TABLE
- โครงสร้างพื้นฐาน:SQL
CREATE 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
เพื่อค้นหาข้อมูลนั้นกัน”