Understand Basic SQL in 10 Minutes – Part 1

บทความวันนี้ เรามาสอนเขียน basic SQL ใช้เวลาแค่ 10 นาที สำหรับเพื่อนๆที่ยังไม่เคยเรียนด้านนี้มาก่อนเลย และมีความสนใจอยากทำงานด้าน data analysis/ data science

อธิบายสั้นๆ SQL คือภาษาที่เราใช้ทำงานกับ database หลักๆเพื่อดึงข้อมูลออกมาทำ data analysis ถ้าเขียน SQL เก่งๆ ก็ไปอยู่ได้เกือบทุกบริษัทเลย ทำไม? เพราะทุกบริษัทมี database !!

Set Up

SQL db browser
DB Browser สำหรับฝึกเขียน SQL ฟรี

ก่อนจะเริ่มทำตาม tutorial วันนี้ เพื่อนๆต้อง set up โปรแกรม ทำตาม 3 ขั้นตอนด้านล่าง

  1. ติดตั้งโปรแกรมฟรี DB Browser และดาวน์โหลด Chinook database สำหรับ tutorial นี้
  2. เปิดโปรแกรม DB Browser ขึ้นมา ไปที่ File > Open Database > Browse หาไฟล์ chinook.db > Open
  3. เสร็จแล้วไปที่แท๊บ Execute SQL เพื่อเริ่มเขียน query

Basic Rules

กฏเบื้องต้นสำหรับการเขียน SQL query

  • SQL syntax เป็นแบบ case-insensitive แปลว่าตัวพิมพ์เล็กใหญ่ ไม่มีผล (ยกเว้นเวลาเขียน text ในเครื่องหมายคำพูด เช่น ‘USA’ หรือ ‘McDonald’)
  • ตามธรรมเนียมเราจะเขียน SQL clause หรือ keywords ด้วยตัวพิมพ์ใหญ่ เช่น SELECT FROM WHERE ฯลฯ
  • SQL syntax ที่เราจะเขียนด้วยกันวันนี้เรียกว่า query โดยแต่ละ query จะปิดท้ายด้วยเครื่องหมาย ;
  • ใน DB Browser พอเขียน SQL query เสร็จแล้ว กดปุ่ม F5 ในคีย์บอร์ดเพื่อดูผล query ง่ายๆ

tutorial นี้เราจะสอนเขียน SQL query ง่ายๆเพื่อดึงข้อมูลจาก database อย่างที่เราต้องการ


SELECT

2 นาทีแรก – เขียน query เพื่อดึง column(s) ที่เราต้องการจาก table ด้วย SELECT clause

ถ้าต้องการดึงทุกคอลั่มออกมาจาก table customers แค่เขียนว่า SELECT * FROM customers;

หรือเราสามารถเขียนชื่อคอลั่มที่เราต้องการได้เลย เช่น SELECT firstname, lastname, email, phone FROM customers; แต่ละคอลั่มจะถูกแยกด้วยเครื่องหมาย comma

ลองทำแบบฝึกหัด 3 ข้อด้านล่างใน DB Browser

  1. เลือกทุกคอลั่มจาก table tracks
  2. เลือกคอลั่ม invoiceid, customerid, invoicedate, total จาก table invoices
  3. เลือกคอลั่ม firstname, lastname, birthdate, email จาก table employees

WHERE

4 นาทีต่อมา – เขียน query เพื่อฟิลเตอร์ row(s) ที่เราต้องการจาก table ด้วย WHERE clause

การเขียน WHERE คือการเขียน condition เงื่อนไขที่เราต้องการฟิลเตอร์ record ใน database

เราสามารถเขียนได้มากกว่าหนึ่งเงื่อนไข ด้วยการใช้ AND และ OR operator ดูตัวอย่างด้านล่าง

ก่อนจะไปที่ session สุดท้ายของ tutorial นี้ อ่านวิธีการเขียน WHERE เพิ่มเติมได้ที่นี่ และลองทำแบบฝึกหัดสามข้อด้านล่างใน DB Browser

  1. เพลง trackid = 100 ใน table tracks ชื่อว่าอะไร?
  2. เลือกเฉพาะลูกค้าใน table customers ที่ใช้อีเมล์ @gmail.com (hint – ใช้ LIKE operator)
  3. เลือกเฉพาะลูกค้าใน table customers ที่อยู่ในเมือง Oslo หรือ New York (hint – ใช้ IN operator)

ผ่านไปแล้ว 6 นาที ตอนนี้เพื่อนๆสามารถเขียน SQL query ง่ายๆในการดึงข้อมูล column(s) / row(s) ที่เราต้องการจาก database ด้วย select และ where clauses

JOIN

4 นาทีสุดท้าย – เขียน query เพื่อเชื่อมหลายๆ table(s) เข้าด้วยกัน

พลังอันยิ่งใหญ่ของ SQL อยู่ที่การเขียน query เพื่อดึงข้อมูลจากหลายๆ tables พร้อมกัน ด้วย JOIN clause ลองดู ER diagram ของ chinook.db เพื่อเข้าใจภาพรวมของ database ใน tutorial นี้ให้ดียิ่งขึ้น

query ด้านล่างเรา JOIN ตาราง artists และ albums เข้าด้วยกัน โดยเงื่อนไขในการเขียนเชื่อมสองตารางอยู่ใน ON artists.artistid = albums.artistid จะเชื่อมสองตารางได้ ทั้งสองตารางต้องมี 1 column ที่สามารถ match กันได้พอดี (คล้ายๆการเขียน VLOOKUP ใน Excel)

เราสามารถเขียน JOIN มากกว่าสอง tables และใช้ WHERE เพื่อฟิลเตอร์เฉพาะ records ที่เราต้องการ เช่น ดึงมาเฉพาะเพลงของ Aerosmith

สังเกตว่าเวลาเราเขียนใน select และ on clause เราจะเขียน table_name.column_name เช่น artists.name, albums.title, customers.firstname ฯลฯ เพื่อระบุชื่อคอลั่มแบบชัดๆว่ามันอยู่ใน table ไหน

Aerosmith
รูปภาพวง Aerosmith

อ่านเพิ่มเติมเรื่องการเขียน JOIN ได้ที่นี่ และลองทำแบบฝึกหัดสามข้อด้านล่างใน DB Browser

  1. เลือกคอลั่ม genreid, name จาก table genres และคอลั่ม name จาก table tracks (hint – เขียน SELECT … FROM genres JOIN tracks ON …)
  2. เลือกคอลั่ม invoiceid, customerid, invoicedate, total จาก table invoices และคอลั่ม firstname, lastname จาก table customers
  3. ต่อเนื่องมาจากแบบฝึกหัดข้อสอง ลูกค้า invoiceid = 10 มีชื่อจริงว่าอะไร (hint – ใช้ where หลังจาก join ทั้งสอง tables เพื่อเลือก invoiceid ที่เราต้องการ)

Summary

tutorial นี้เราเรียนการเขียน SQL query เบื้องต้นภายในเวลาแค่ 10 นาที สรุปกันอีกที

  • SELECT ... FROM ... – เลือกคอลั่มที่เราต้องการจาก table (2 min)
  • WHERE ... – เขียนเงื่อนไขเพื่อเลือก record ที่เราต้องการ (4 min)
  • JOIN ... ON ... – เขียนเชื่อมหลายๆตารางเข้าด้วยกัน (4 min)

ยังมีอะไรให้เรียนอีกเยอะ ถ้าอยากเข้าใจ SQL แบบเต็มๆ? สมัครเรียนกับเราได้ฟรีที่ DataRockie School โรงเรียนออนไลน์ด้าน data science ที่คูลที่สุดในประเทศไทย

One thought on “Understand Basic SQL in 10 Minutes – Part 1

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s