ภาพโดย Freepik
SQL หรือ Standard Query Language เป็นภาษาโปรแกรมสำหรับจัดการและจัดการข้อมูลภายในระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) เป็นภาษามาตรฐานที่ใช้ในหลายบริษัทเพื่อช่วยให้ธุรกิจเข้าถึงข้อมูลได้อย่างราบรื่น เนื่องจากมีการใช้กันอย่างแพร่หลาย การจ้างงานจึงมักยกให้ SQL เป็นหนึ่งในทักษะที่จำเป็น นั่นเป็นสาเหตุว่าทำไมการเรียนรู้เกี่ยวกับ SQL จึงเป็นสิ่งสำคัญ
ปัญหาทั่วไปอย่างหนึ่งของผู้เรียนเมื่อเรียนรู้ SQL คือการทำความเข้าใจข้อความค้นหา โดยหลักๆ แล้วเมื่อมีบุคคลอื่นเขียนข้อความเหล่านั้น เราจะทำงานเป็นทีมในบริษัทต่างๆ และมักจะต้องอ่านและทำความเข้าใจคำสั่ง SQL ของพวกเขา ดังนั้นเราจึงต้องฝึกแยกโครงสร้างคำสั่ง SQL และทำความเข้าใจมัน
บทความนี้จะอธิบายกระบวนการทีละขั้นตอนเพื่ออ่านและทำความเข้าใจคิวรี SQL เราจะทำอย่างนั้นได้อย่างไร? เรามาเข้าเรื่องกันเถอะ
สิ่งแรกที่เราต้องทำเมื่อพบกับแบบสอบถาม SQL คือการทำความเข้าใจจุดประสงค์ทั่วไปของแบบสอบถาม SQL ความตั้งใจทั่วไปไม่ได้หมายความว่าเรารู้ทั้งหมดเกี่ยวกับโครงสร้างของแบบสอบถาม มันอยู่ที่กระแสโดยรวมมากกว่า
เราควรเข้าใจแบบสอบถาม SQL มาตรฐานเพื่อทำความเข้าใจแบบสอบถาม SQL ทั่วไป คำสั่ง SQL ส่วนใหญ่เริ่มต้นด้วย SELECT ข้อและปฏิบัติตามด้วย จาก ข้อ ต่อจากนี้คำถามมักจะตามมาด้วย สมัคร, WHERE, จัดกลุ่มตาม, สั่งโดย, และ การมี ข้อ
ส่วนคำสั่งข้างต้นเป็นมาตรฐานในการสืบค้น SQL ที่เราต้องเข้าใจ สำหรับแต่ละข้อ มีหน้าที่ดังนี้:
- SELECT: คอลัมน์ใดที่ต้องนำมาจากตาราง
- จาก: ข้อมูลมาจากตารางใด
- สมัคร: รวมตารางเข้ากับตัวระบุที่ระบุ
- WHERE: กรองข้อมูลตามเงื่อนไข
- จัดกลุ่มตาม: จัดระเบียบข้อมูลตามค่าของคอลัมน์และอนุญาตให้ใช้ฟังก์ชันการรวม
- สั่งโดย: จัดเรียงลำดับผลลัพธ์ข้อมูลตามคอลัมน์ที่ระบุ
- การมี: เงื่อนไขตัวกรองสำหรับฟังก์ชันการรวมที่ไม่สามารถระบุได้ WHERE
สิ่งเหล่านี้คือส่วนคำสั่งมาตรฐานและสิ่งที่คุณควรพบในตอนเริ่มต้นเมื่อทำความเข้าใจโครงสร้างคิวรี SQL ทั่วไป ลองใช้โค้ดตัวอย่างเพื่อเรียนรู้เพิ่มเติม
SELECT
customers.name,
purchases.product,
SUM(price) as total_price
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
WHERE
purchases.category = 'kitchen'
GROUP BY
customers.name,
purchases.product
HAVING
total_price > 10000
ORDER BY
total_price DESC;
เมื่อคุณดูคำถามข้างต้น ให้พยายามระบุอนุประโยคมาตรฐาน ส่วนคำสั่งจะช่วยให้คุณเข้าใจว่าข้อมูลใดถูกเลือก (SELECT) มาจากไหน (จาก และ สมัคร) และเงื่อนไข (WHERE, จัดกลุ่มตาม, สั่งโดยและ การมี).
ตัวอย่างเช่น การอ่านข้อความค้นหาด้านบนจะช่วยให้คุณเข้าใจสิ่งต่อไปนี้:
- เราพยายามรับข้อมูลสามประเภทที่แตกต่างกัน: ชื่อจากตารางที่เรียกว่าลูกค้า, ผลิตภัณฑ์จากตารางที่เรียกว่าการซื้อ และการรวมคอลัมน์ราคาที่ไม่ได้ระบุว่าตารางมาจากไหนและมีนามแฝง Total_price (ข้อมูลจากส่วนคำสั่ง SELECT).
- ข้อมูลโดยรวมจะมาจากตารางการซื้อและลูกค้าที่เชื่อมต่อกันโดยใช้คอลัมน์ cust_id จากการซื้อ และคอลัมน์ id จากตารางของลูกค้า (ข้อมูลจาก clause จาก) และ สมัคร).
- เราจะเลือกเฉพาะข้อมูลที่มีค่าคอลัมน์หมวดหมู่ในตารางการซื้อเป็น 'ครัว' (ข้อมูลจากข้อ WHERE),
- กลุ่มสำหรับฟังก์ชันการรวมกลุ่มที่มีชื่อและคอลัมน์ผลคูณที่มาจากตารางที่เกี่ยวข้อง (ข้อมูลจาก clause จัดกลุ่มตาม),
- กรองด้วยจากผลรวมของฟังก์ชันการรวมโดยที่ราคารวมมากกว่า 10000 (ข้อมูลจากข้อ การมี), และ
- เรียงลำดับข้อมูลจากมากไปน้อยตาม Total_price (ข้อมูลจาก clause สั่งโดย).
นั่นคือโครงสร้างแบบสอบถาม SQL ทั่วไปที่คุณต้องทราบและระบุ จากนั้น เราจะสำรวจเพิ่มเติมจากข้อความค้นหาขั้นสูงได้ มาเริ่มกันที่ขั้นตอนต่อไปกันเลย
คงมีเวลาที่คุณจะพบกับคำถามที่ซับซ้อนซึ่งมีมากมาย SELECT ส่วนคำสั่งมีอยู่ในแบบสอบถามเดียวกัน ในกรณีนี้ เราควรเข้าใจผลลัพธ์สุดท้ายของการสืบค้นหรือผลลัพธ์สุดท้าย (อันดับแรก) SELECT คุณเห็นในแบบสอบถาม สิ่งสำคัญคือการรู้ว่าผลลัพธ์ของคิวรีต้องการเป็นอย่างไร
ลองใช้โค้ดที่ซับซ้อนกว่านี้เหมือนโค้ดด้านล่าง
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
SELECT
c.name,
pd.product,
pd.total_product_price,
cs.total_spending
FROM
(
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
) AS pd
JOIN customers c ON pd.cust_id = c.id
JOIN customerspending cs ON c.id = cs.id
ORDER BY
pd.total_product_price DESC;
ข้อความค้นหาดูเหมือนซับซ้อนและยาวนานขึ้นในขณะนี้ แต่จุดสนใจเริ่มแรกควรอยู่ที่จุดสุดท้าย เลือก, ซึ่งดูเหมือนว่าจะพยายามสร้างประวัติการใช้จ่ายและการซื้อทั้งหมดของลูกค้า พยายามประเมินว่าผลลัพธ์สุดท้ายต้องการเป็นอย่างไรและแยกย่อยออกจากจุดนั้น
เรามีข้อมูลเชิงลึกของผลลัพธ์ที่ควรมาจากการสืบค้น ส่วนต่อไปก็มาดูกันว่าเงื่อนไขรอบชิงชนะเลิศเป็นอย่างไร SELECT เป็น. เงื่อนไขข้อรวมถึง WHERE, จัดกลุ่มตาม, สั่งโดยและ การมี เป็นผู้ควบคุมผลข้อมูลโดยรวม
พยายามอ่านและทำความเข้าใจเงื่อนไขการสืบค้นของเรา แล้วเราจะเข้าใจผลลัพธ์สุดท้ายของการสืบค้นได้ดีขึ้น ตัวอย่างเช่น ในการสืบค้น SQL ก่อนหน้าของเรา เงื่อนไขสุดท้ายคือเท่านั้น สั่งโดย- ซึ่งหมายความว่าผลลัพธ์สุดท้ายจะเรียงลำดับตามราคาผลิตภัณฑ์ทั้งหมดตามลำดับจากมากไปน้อย
การรู้เงื่อนไขสุดท้ายจะช่วยให้คุณเข้าใจส่วนสำคัญของแบบสอบถามและจุดประสงค์ของแบบสอบถามโดยรวม
สุดท้ายนี้ เราต้องเข้าใจว่าข้อมูลมาจากไหน หลังจากที่เรารู้ข้อมูลที่ต้องเลือกและเงื่อนไขในการรับแล้ว เราก็ต้องเข้าใจแหล่งที่มา สุดท้าย สมัคร ส่วนคำสั่งจะทำให้เราเข้าใจว่าตารางโต้ตอบและการไหลของข้อมูลอย่างไร
ตัวอย่างเช่น แบบสอบถามที่ซับซ้อนก่อนหน้านี้แสดงว่าเราได้ดำเนินการเข้าร่วมสองครั้ง หมายความว่าเราใช้แหล่งข้อมูลอย่างน้อยสามแห่งเพื่อให้ได้ผลลัพธ์สุดท้าย ข้อมูลนี้จะจำเป็นในขั้นตอนต่อๆ ไปเพื่อทำความเข้าใจเพิ่มเติมว่าแหล่งข้อมูลแต่ละแหล่งมาได้อย่างไร โดยเฉพาะอย่างยิ่งเมื่อแหล่งข้อมูลมาจากแบบสอบถามย่อย
หลังจากทำความเข้าใจแล้วว่าผลลัพธ์สุดท้ายควรเป็นอย่างไรและมาจากไหน เราก็ต้องดูรายละเอียดให้ละเอียดยิ่งขึ้น จากที่นี่ เราจะย้อนกลับไปดูข้อความค้นหาย่อยแต่ละคำและทำความเข้าใจว่าเหตุใดจึงมีโครงสร้างเช่นนั้น
อย่างไรก็ตาม เราไม่พยายามดูพวกมันในโครงสร้างจากบนลงล่าง เราควรพยายามดูแบบสอบถามย่อยที่อยู่ใกล้กับผลลัพธ์สุดท้ายมากที่สุด และเราเลื่อนไปยังแบบสอบถามที่ไกลจากผลลัพธ์สุดท้ายมากที่สุด จากตัวอย่างโค้ดข้างต้น เราควรพยายามทำความเข้าใจโค้ดนี้ก่อน:
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
จากนั้นเราจะย้ายไปยังโค้ดที่ไกลที่สุดซึ่งก็คือโค้ดนี้:
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
เราสามารถติดตามกระบวนการคิดของผู้เขียนได้อย่างชัดเจน เมื่อเราแจกแจงแบบสอบถามย่อยแต่ละข้อจากแบบสอบถามที่ใกล้ผลลัพธ์มากที่สุดไปยังไกลที่สุด
ลองทำซ้ำขั้นตอนข้างต้นหากคุณต้องการความช่วยเหลือในการทำความเข้าใจแต่ละข้อความค้นหาย่อย ด้วยการฝึกฝน คุณจะมีประสบการณ์ที่ดีขึ้นในการอ่านและทำความเข้าใจคำถาม
การอ่านและทำความเข้าใจ SQL Queries เป็นทักษะที่ทุกคนควรมีในยุคสมัยใหม่ เนื่องจากทุกบริษัทต้องรับมือกับสิ่งเหล่านี้ โดยใช้คำแนะนำทีละขั้นตอนต่อไปนี้ คุณจะมีเวลาที่ดีขึ้นในการทำความเข้าใจแบบสอบถาม SQL ที่ซับซ้อน ขั้นตอนประกอบด้วย:
- ทำความเข้าใจโครงสร้างแบบสอบถาม SQL ทั่วไป
- ทำความเข้าใจกับการเลือกขั้นสุดท้าย
- ทำความเข้าใจเงื่อนไขข้อสุดท้าย
- ทำความเข้าใจกับการเข้าร่วมครั้งสุดท้าย
- ย้อนกลับการอ่านและทำซ้ำ
คอร์เนลเลียส ยุธา วิชายา เป็นผู้ช่วยผู้จัดการด้านวิทยาศาสตร์ข้อมูลและผู้เขียนข้อมูล ในขณะที่ทำงานเต็มเวลาที่ Allianz Indonesia เขาชอบแบ่งปันเคล็ดลับ Python และ Data ผ่านโซเชียลมีเดียและสื่อการเขียน
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- PlatoData.Network Vertical Generative Ai เพิ่มพลังให้กับตัวเอง เข้าถึงได้ที่นี่.
- เพลโตไอสตรีม. Web3 อัจฉริยะ ขยายความรู้ เข้าถึงได้ที่นี่.
- เพลโตESG. คาร์บอน, คลีนเทค, พลังงาน, สิ่งแวดล้อม แสงอาทิตย์, การจัดการของเสีย. เข้าถึงได้ที่นี่.
- เพลโตสุขภาพ เทคโนโลยีชีวภาพและข่าวกรองการทดลองทางคลินิก เข้าถึงได้ที่นี่.
- ที่มา: https://www.kdnuggets.com/a-step-by-step-guide-to-reading-and-understanding-sql-queries?utm_source=rss&utm_medium=rss&utm_campaign=a-step-by-step-guide-to-reading-and-understanding-sql-queries
- :เป็น
- :ไม่
- :ที่ไหน
- $ ขึ้น
- 12
- 17
- 9
- a
- เกี่ยวกับเรา
- ข้างบน
- เข้า
- ตาม
- สูง
- หลังจาก
- การรวมตัว
- อลิอันซ์
- อนุญาต
- an
- และ
- อื่น
- เป็น
- บทความ
- AS
- ประเมินผล
- ผู้ช่วย
- At
- ผู้เขียน
- ตาม
- BE
- เพราะ
- การเริ่มต้น
- ด้านล่าง
- ดีกว่า
- ทำลาย
- ธุรกิจ
- แต่
- by
- ที่เรียกว่า
- มา
- CAN
- ไม่ได้
- กรณี
- หมวดหมู่
- อย่างเห็นได้ชัด
- ใกล้ชิด
- รหัส
- คอลัมน์
- คอลัมน์
- รวมกัน
- อย่างไร
- มา
- มา
- ร่วมกัน
- บริษัท
- บริษัท
- ซับซ้อน
- สภาพ
- เงื่อนไข
- อย่างต่อเนื่อง
- การควบคุม
- cs
- ลูกค้า
- ลูกค้า
- ข้อมูล
- วิทยาศาสตร์ข้อมูล
- ฐานข้อมูล
- ข้อเสนอ
- รายละเอียด
- ต่าง
- do
- ไม่
- Dont
- ลง
- แต่ละ
- การจ้าง
- พบ
- เผชิญหน้า
- อย่างสิ้นเชิง
- ยุค
- โดยเฉพาะอย่างยิ่ง
- จำเป็น
- ทุกๆ
- ทุกคน
- ตัวอย่าง
- มีอยู่
- ประสบการณ์
- สำรวจ
- กรอง
- สุดท้าย
- หา
- ชื่อจริง
- ไหล
- กระแส
- โฟกัส
- ปฏิบัติตาม
- ตาม
- ดังต่อไปนี้
- สำหรับ
- ราคาเริ่มต้นที่
- ฟังก์ชัน
- ฟังก์ชั่น
- ต่อไป
- General
- ได้รับ
- ให้
- บัญชีกลุ่ม
- ให้คำแนะนำ
- มี
- มี
- he
- ช่วย
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- ประวัติ
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- HTTPS
- ID
- ระบุ
- แยกแยะ
- if
- in
- ประกอบด้วย
- รวมทั้ง
- อินโดนีเซีย
- ข้อมูล
- แรกเริ่ม
- ความเข้าใจ
- แทน
- ความตั้งใจ
- โต้ตอบ
- เข้าไป
- IT
- ร่วม
- jpg
- KD นักเก็ต
- คีย์
- ชนิด
- ทราบ
- ภาษา
- ต่อมา
- เรียนรู้
- การเรียนรู้
- น้อยที่สุด
- กดไลก์
- อีกต่อไป
- ดู
- รัก
- ส่วนใหญ่
- การจัดการ
- ระบบการจัดการ
- ผู้จัดการ
- การจัดการ
- การจัดการกับ
- หลาย
- หมายความ
- วิธี
- ภาพบรรยากาศ
- ทันสมัย
- ข้อมูลเพิ่มเติม
- มากที่สุด
- ย้าย
- การย้าย
- ชื่อ
- จำเป็น
- จำเป็นต้อง
- ถัดไป
- ตอนนี้
- of
- มักจะ
- on
- ONE
- คน
- เพียง
- or
- ใบสั่ง
- ของเรา
- เอาท์พุต
- ทั้งหมด
- ส่วนหนึ่ง
- คน
- ดำเนินการ
- คน
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- การปฏิบัติ
- ก่อน
- ราคา
- ปัญหาที่เกิดขึ้น
- กระบวนการ
- ก่อ
- ผลิตภัณฑ์
- การเขียนโปรแกรม
- ให้
- ซื้อ
- การซื้อสินค้า
- หลาม
- คำสั่ง
- การสอบถาม
- อ่าน
- การอ่าน
- ทำซ้ำ
- ว่า
- ผล
- ย้อนกลับ
- s
- เดียวกัน
- วิทยาศาสตร์
- เห็น
- ดูเหมือนว่า
- เลือก
- เลือก
- Share
- น่า
- แสดงให้เห็นว่า
- สำคัญ
- ความสามารถ
- ทักษะ
- อย่างราบรื่น
- So
- สังคม
- โซเชียลมีเดีย
- บาง
- แหล่ง
- แหล่งที่มา
- โดยเฉพาะ
- ที่ระบุไว้
- การใช้จ่าย
- SQL
- มาตรฐาน
- เริ่มต้น
- ขั้นตอน
- ขั้นตอน
- โครงสร้าง
- โครงสร้าง
- โครงสร้าง
- รวม
- ระบบ
- ตาราง
- นำ
- ทีม
- กว่า
- ที่
- พื้นที่
- ที่มา
- ของพวกเขา
- พวกเขา
- ที่นั่น
- พวกเขา
- สิ่ง
- นี้
- คิดว่า
- สาม
- ตลอด
- เวลา
- เคล็ดลับ
- ไปยัง
- ร่วมกัน
- รวม
- ลู่
- ลอง
- สองครั้ง
- เข้าใจ
- ความเข้าใจ
- us
- ใช้
- มือสอง
- การใช้
- มักจะ
- ความคุ้มค่า
- ผ่านทาง
- เดิน
- ต้องการ
- we
- ดี
- อะไร
- เมื่อ
- ที่
- ในขณะที่
- ทำไม
- อย่างกว้างขวาง
- จะ
- กับ
- ภายใน
- งาน
- การทำงาน
- จะ
- จะให้
- นักเขียน
- การเขียน
- เธอ
- ลมทะเล