By: DH Team
อัปเดตล่าสุด Nov. 6, 2024
SQL หนึ่งในภาษาสำหรับเขียนเพื่อติดต่อและจัดการกับฐานข้อมูล เป็นภาษาที่จำเป็นสำหรับคนที่สนใจหรือต้องการทำงานสาย Web Developer หรือแม้แต่ด้าน Data จำเป็นต้องรู้ภาษานี้ไว้ครับ บทความนี้เราจะมาเรียน SQL จาก 0 กันเลย
SQL คืออะไร?
SQL (Structured Query Language) คือ ภาษาโปรแกรมมิ่งที่ใช้ติดต่อสื่อสารและจัดการกับข้อมูลแบบเชิงสัมพันธ์ (Relational Database) สำหรับ DBMS (Database Management System) ที่เรารู้จักกันดี เช่น MySQL, PostgreSQL, Oracle, MS Server SQL, SQLite เป็นต้น ถึงแม้ว่าแต่ละ DBMS จะมีโครงสร้างหรือฟีเจอร์แตกต่างกันบางส่วน แต่ไวยากรณ์โดยทั่วไปแล้วจะมีความคล้ายคลึงกันครับ ดังนั้นเรียนในบทเรียนนี้ก็ถือว่าไปต่อยอดได้สบายไร้ปัญหา
โดยภาษา SQL นั้นถือกำเนิดขึ้นครั้งแรกในปี 1970 หรือมากกว่า 50 ปีมาแล้ว
บทความแนะนำ: DB Browser สำหรับเขียน และจัดการกับฐานข้อมูล SQLite
ทำไม SQL สำคัญ?
SQL ถูกใช้ในแอปพลิเคชันต่าง ๆ มากมายเช่น งานด้านการพัฒนาเว็บ การวิเคราะห์ข้อมูล เป็นต้น โดยภาษา SQL นั้นไม่ใช่ภาษาโปรแกรมมิ่งโดยทั่วไปเฉกเช่นภาษาอย่าง Python, Java, JavaScript, etc แต่เป็นภาษาสำหรับจัดการฐานข้อมูลเชิงสัมพันธ์โดยเฉพาะ
ตัวอย่างไวยากรณ์ (Syntax) ของ SQL
ด้านล่างคือตัวอย่างไวยากรณ์ของภาษา SQL
SELECT * FROM Students;
การทำงานของคำสั่งด้านบนคือให้ทำการดึงข้อมูล (Query) ทุกสิ่งอย่างที่ถูกบันทึกอยู่ในตาราง Students มาแสดงผลด้วยคำสั่ง SELECT *
จะเห็นได้ว่าภาษา SQL นั้นก็มีความตรงไปตรงมาของภาษาและไม่ได้ดูยุ่งยากเลยใช่ไหมครับ?
ตัวอย่างคำสั่งในเบื้องต้นที่ถูกใช้บ่อยใน SQL
คำสั่ง | คำอธิบาย |
CREATE | สร้างตารางขึ้นมาใหม่ |
ALTER | เปลี่ยนแปลงข้อมูลในตาราง เช่น เปลี่ยนชื่อฟีลด์ (คอลัมน์) เป็นต้น |
DROP | ลบตาราง |
SELECT | เลือกดึงข้อมูลจากตารางที่ต้องการ |
INSERT | บันทึกข้อมูลเข้าไปใน record (แถว) ตาราง |
UPDATE | แก้ไขหรืออัปเดตข้อมูลใน record |
DELETE | ลบข้อมูลใน record |
คำสั่ง SQL Insert
Insert คือ คำสั่งที่ใช้สำหรับ "เพิ่ม" ข้อมูลในแถวใหม่ของตาราง นี่คือตัวอย่างไวยากรณ์ของคำสั่ง โดยจะใช้คีย์เวิร์ด INSERT
INSERT INTO table_name (column1, column2)
VALUES (value1, value2);
ตัวอย่างคำสั่งการ insert ใน SQL
INSERT INTO Students (name, age)
VALUES ('Somchai', 9);
แล้วถ้าอยาก insert ข้อมูลครั้งเดียวได้หลาย ๆ แถวล่ะ?
INSERT INTO Students (name, age)
VALUES ('Somchai', 9), ('Somsri', 11), ('Mana', 8);
โดยการ insert ข้อมูลครั้งเดียวได้หลายแถวแบบนี้ เราจะใช้ comma "," คั่นระหว่างชุดข้อมูลที่อยู่ในวงเล็บ (Parenthesis)
คำสั่ง SQL Update
Update คือ คำสั่งที่ใช้สำหรับ "แก้ไข" ข้อมูลในแถว (record) ของตาราง นี่คือตัวอย่างไวยากรณ์ของคำสั่ง โดยจะใช้คีย์เวิร์ด UPDATE
UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;
จากตัวอย่างด้านบน ต่อไปจะเป็นการทดสอบการ Update ข้อมูลใน SQL
UPDATE Students
SET name = "Michael", age = 9
WHERE id = 1;
คำสั่ง SQL Delete
DELETE FROM table_name
WHERE condition;
ข้อมูลตัวอย่าง
ID | Name | Age |
1 | Michael | 9 |
2 | Somsri | 11 |
3 | Mana | 8 |
ตัวอย่างการใช้คำสั้ง Delete ใน SQL
DELETE FROM Students
WHERE id = 2;
จากตัวอย่างตารางด้านบน เมื่อทำการลบข้อมูลโดยใช้คำสั่ง DELETE จากปกติข้อมูลมี 3 records ตอนนี้จะเหลืออยู่ 2 เพราะว่าข้อมูลใน ID 2 ถูกลบออกไปแล้วนั่นเอง
ID | Name | Age |
1 | Michael | 9 |
3 | Mana | 8 |
คำสั่ง SQL Join
Join คือ คำสั่งที่ใช้สำหรับ "รวม" ข้อมูลในคอลัมน์ของสองตารางหรือมากกว่าเข้าด้วยกัน นี่คือตัวอย่างไวยากรณ์ของคำสั่ง โดยจะใช้คีย์เวิร์ด JOIN
Inner Join จะเป็นคำสั่งการรีเทิร์นเฉพาะค่าที่ตรงกันระหว่าง 2 ตาราง และจะแสดงผลข้อมูลของทุกแถวของทั้งสองตาราง
SELECT *
FROM table1
INNER JOIN table2
ON table1.column1_name = table2.column2_name;
Left Join จะเป็นคำสั่งการรีเทิร์นข้อมูลทุกแถวของตารางด้านซ้าย (Left Table) และรีเทิร์นค่าที่ตรงกันเท่านั้นของตารางด้านขวา (Right Table) ถ้าไม่มีค่าที่ตรงกันจากทางตารางด้านขวา จะรีเทิร์นค่า NULL (ค่าว่างเปล่า)
SELECT * FROM table1 LEFT
JOIN table2 ON table1.column1_name = table2.column2_name;
Right Join จะเป็นคำสั่งการรีเทิร์นข้อมูลทุกแถวของตารางด้านขวา (Right Table) และรีเทิร์นค่าที่ตรงกันเท่านั้นของตารางด้านซ้าย (Left Table) ถ้าไม่มีค่าที่ตรงกันจากทางตารางด้านขวา จะรีเทิร์นค่า NULL (ค่าว่างเปล่า) พูดง่าย ๆ คือคล้ายกันกับ Left Join เพียงแต่ตรงข้ามกัน
SELECT *
FROM table1
RIGHT JOIN table2
ON table1.column1_name = table2.column2_name;
Full Outer Join จะเป็นคำสั่งการรีเทิร์นข้อมูลทุกแถวของทั้ง 2 ตาราง ถ้าไม่มีค่าที่ตรงกันจากทั้งสองตาราง จะรีเทิร์นค่า NULL (ค่าว่างเปล่า)
SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.column1_name = table2.column2_name;
ก็จบลงไปแล้วครับสำหรับบทความ SQL ในเบื้องต้น สำหรับผู้เริ่มต้นในปี 2023 ในบทความนี้เราก็ได้เรียนรู้ภาพรวมของภาษา SQL ว่า SQL คืออะไร โครงสร้างเป็นยังไง รวมถึงคำสั่งพื้นฐานต่าง ๆ เช่น INSERT, UPDATE, DELETE, JOIN ทางทีมงาน DH เราก็หวังว่าคงจะเป็นประโยชน์นะครับ อย่าลืมติดตามเพจ devhub ด้วยนะครับ
เปิดโลกการเขียนโปรแกรมและ Software Development ด้วย online courses ที่จะพาคุณอัพสกิลและพัฒนาสู่การเป็นมืออาชีพ เรียนออนไลน์ เรียนจากที่ไหนก็ได้ พร้อมซัพพอร์ตหลังเรียน
เรียนเขียนโปรแกรมคอร์สอบรม เรียนทำเว็บ ด้วย Django สุดยอด web framework อันดับ 1 ที่ได้รับ…
คอร์สเรียน Full Stack Developer 2024 ด้วยเฟรมเวิร์คยอดนิยมในการพัฒนา A…