Donald Chamberlin ช่วยคิดค้น SQL ที่ IBM อย่างไร ไวยากรณ์ที่คล้ายภาษาอังกฤษมีความสำคัญอย่างไร และ SQL กลายเป็นวิธีมาตรฐานในการสืบค้นฐานข้อมูลได้อย่างไร

Donald D. Chamberlin อาจไม่ใช่ชื่อที่ทุกบ้านรู้จัก แต่ผลงานของเขาได้กำหนดวิธีที่ทีมซอฟต์แวร์ส่วนใหญ่จัดการข้อมูลอย่างเงียบ ๆ ในฐานะนักวิจัยที่ IBM Chamberlin ร่วมสร้าง SQL (เดิมสะกดว่า SEQUEL) — ภาษาที่ทำให้การถามคำถามกับฐานข้อมูลขนาดใหญ่เป็นเรื่องปฏิบัติได้สำหรับนักพัฒนาในชีวิตประจำวันและแม้แต่คนที่ไม่ใช่ผู้เชี่ยวชาญ
ก่อนจะมี SQL การดึงคำตอบจากข้อมูลที่เก็บไว้มักหมายถึงการเขียนโปรแกรมเฉพาะทางหรือใช้เครื่องมือที่มีพลังแต่ใช้งานลำบาก Chamberlin ช่วยผลักดันแนวคิดที่ต่างออกไป: แทนที่จะบอกคอมพิวเตอร์ว่าต้องทำอย่างไรทีละขั้นตอน คุณควรจะบอกได้ว่าต้องการอะไร ในรูปแบบที่อ่านแล้วใกล้เคียงภาษาอังกฤษธรรมดา
แก่นของ SQL คือแนวทางที่เป็นมิตรกับมนุษย์อย่างน่าประหลาดใจ:
SELECT)FROM)WHERE)โครงสร้างนี้ฟังดูชัดเจนในวันนี้ แต่ในเวลานั้นเป็นการเปลี่ยนแปลงครั้งใหญ่ มันเปลี่ยนการ “สืบค้นฐานข้อมูล” จากงานของผู้เชี่ยวชาญให้กลายเป็นสิ่งที่สอน แบ่งปัน ตรวจสอบ และปรับปรุงได้—เหมือนงานส่วนอื่นของการพัฒนาซอฟต์แวร์
นี่คือประวัติแบบปฏิบัติของการเกิดขึ้นของ SQL และเหตุผลที่มันแพร่หลาย
คุณไม่จำเป็นต้องมีคณิตศาสตร์ขั้นสูง ตรรกะรูปแบบ หรือทฤษฎีฐานข้อมูลเชิงลึกเพื่ออ่านตาม เราจะมุ่งที่ปัญหาโลกจริงที่ SQL แก้ เหตุผลที่การออกแบบจับต้องได้ และวิธีที่มันกลายเป็นทักษะพื้นฐานในอุตสาหกรรมซอฟต์แวร์—ตั้งแต่วิศวกรรมแบ็กเอนด์ไปจนถึงอนาไลติกส์ งานผลิตภัณฑ์ และการปฏิบัติการ
ถ้าคุณเคยกรองรายการ จัดกลุ่มผลลัพธ์ หรือรวมสองชุดข้อมูลเข้าด้วยกัน คุณก็คิดตามแนวทางที่ SQL ทำให้เป็นกระแสหลักแล้ว ผลงานที่อยู่นานของ Chamberlin คือตั้งแนวคิดนั้นให้กลายเป็นภาษาที่ผู้คนใช้งานได้จริง
ก่อนจะมี SQL องค์กรส่วนใหญ่ไม่ได้ “สืบค้นฐานข้อมูล” พวกเขาทำงานกับข้อมูลที่เก็บไว้ในไฟล์—มักเป็นไฟล์แยกตามแอปพลิเคชัน—ที่โปรแกรมที่สร้างมันจัดการเอง เงินเดือนมีไฟล์ของตัวเอง สต็อกมีไฟล์ของตัวเอง และบันทึกลูกค้าอาจกระจัดกระจายอยู่ในหลายระบบ
แนวทางแบบไฟล์ทำงานได้จนกว่าธุรกิจต้องการคำตอบข้ามขอบเขต: “ลูกค้าคนไหนที่ซื้อสินค้า X และมีใบแจ้งหนี้ค้างชำระ?” การมองแบบนี้ต้องเย็บข้อมูลที่ไม่ได้ออกแบบมาให้รวมกัน
ในระบบยุคแรก รูปแบบข้อมูลมักผูกติดกับแอปพลิเคชัน การเปลี่ยนแปลงในที่หนึ่ง—เช่น การเพิ่มฟิลด์หมายเลขโทรศัพท์ลูกค้า—อาจต้องเขียนโปรแกรมใหม่ แปลงไฟล์ และอัปเดตเอกสาร แม้เมื่อมี “ระบบฐานข้อมูล” เริ่มปรากฏ หลายระบบยังเผยวิธีเข้าถึงระดับต่ำที่รู้สึกเหมือนการเขียนโปรแกรมมากกว่าการตั้งคำถาม
ถ้าคุณต้องการข้อมูล โดยทั่วไปมีสองทางเลือก:
ไม่มีตัวเลือกใดเอื้อต่อการสำรวจแบบยืดหยุ่น การเปลี่ยนแปลงเล็กน้อย—เพิ่มช่วงวันที่ จัดกลุ่มตามภูมิภาค ยกเว้นสินค้าที่คืน—อาจกลายเป็นงานพัฒนาใหม่ ผลลัพธ์คือคอขวด: คนที่มีคำถามต้องรอคนที่เขียนโค้ดได้
ที่องค์กรขาดคือวิธีการร่วมกันในการแสดงคำถามเรื่องข้อมูล—บางสิ่งที่ชัดเจนพอสำหรับเครื่องแต่ยังอ่านได้สำหรับคน ผู้ใช้งานทางธุรกิจคิดเป็น “ลูกค้า” “คำสั่งซื้อ” และ “ยอดรวม” ในขณะที่ระบบถูกสร้างบนเลย์เอาต์ไฟล์และขั้นตอนเชิงกระบวนการ
ช่องว่างนี้สร้างความต้องการภาษาสืบค้นที่แปลงความตั้งใจเป็นการกระทำ: วิธีที่สอดคล้องและนำกลับมาใช้ใหม่ได้ในการบอกว่าต้องการอะไรจากข้อมูลโดยไม่ต้องเขียนโปรแกรมใหม่ทุกครั้ง ความต้องการนี้เปิดทางให้กับการปฏิวัติของ SQL
ก่อน SQL จะมีอยู่ โลกฐานข้อมูลต้องการวิธีคิดเกี่ยวกับข้อมูลที่ชัดเจนขึ้น โมเดลเชิงสัมพันธ์ให้โครงสร้างนั้น: กรอบเรียบง่ายที่เก็บข้อมูลเป็นตาราง (relations) ประกอบด้วยแถวและคอลัมน์
สัญญาหลักของโมเดลเชิงสัมพันธ์คืออย่าสร้างโครงสร้างข้อมูลเฉพาะตัวสำหรับทุกแอปพลิเคชันอีกต่อไป ให้เก็บข้อมูลในรูปแบบมาตรฐานแล้วปล่อยให้โปรแกรมต่าง ๆ ถามคำถามต่างกันได้โดยไม่ต้องแก้รูปแบบข้อมูลทุกครั้ง
การเปลี่ยนนี้สำคัญเพราะแยกสองเรื่องที่มักปะปนกัน:
เมื่อแยกสองส่วนนี้ ข้อมูลก็ง่ายขึ้นในการแชร์ ปลอดภัยขึ้นเมื่ออัปเดต และไม่ขึ้นกับความเฉพาะของแอปใดแอปหนึ่ง
Edgar F. Codd ขณะที่ทำงานที่ IBM ช่วยทำให้แนวคิดนี้เป็นรูปธรรมและอธิบายว่าทำไมมันดีกว่าการนำทางเรกคอร์ดผ่านเส้นทางคงที่ คุณไม่จำเป็นต้องรู้พื้นฐานเชิงวิชาการทั้งหมดเพื่อเห็นผลกระทบ: เขามอบโมเดลที่อุตสาหกรรมสามารถใช้เหตุผล ทดสอบ และปรับปรุงได้
เมื่อข้อมูลเก็บในตาราง คำถามธรรมชาติถัดไปคือ: คนทั่วไปจะถามสิ่งที่ต้องการอย่างไร? ไม่ใช่โดยชี้ตำแหน่งจัดเก็บ แต่โดยการอธิบายผลลัพธ์
แนวทาง “อธิบายสิ่งที่ต้องการ” นี้—เลือกคอลัมน์เหล่านี้ กรองแถวเหล่านี้ เชื่อมตารางเหล่านี้—วางรากฐานให้ภาษาสืบค้นที่เป็นมิตรกับมนุษย์ SQL ถูกสร้างขึ้นเพื่อใช้ประโยชน์จากโมเดลนั้น แปลงทฤษฎีเชิงสัมพันธ์ให้กลายเป็นงานประจำวัน
IBM System R ไม่ได้เป็นผลิตภัณฑ์เชิงพาณิชย์ในตอนแรก—มันเป็นโครงการวิจัยที่ตั้งคำถามเชิงปฏิบัติ: โมเดลเชิงสัมพันธ์ของ Edgar F. Codd จะใช้งานได้จริงในโลกจริง ที่มีข้อมูลธุรกิจขนาดใหญ่หรือไม่?
ในเวลานั้น หลายระบบฐานข้อมูลถูกนำทางผ่านเส้นทางการเข้าถึงทางกายภาพและตรรกะแถวต่อแถว ฐานข้อมูลเชิงสัมพันธ์สัญญาแตกต่าง: เก็บข้อมูลในตาราง อธิบายความสัมพันธ์อย่างชัดเจน และให้ระบบคิดหาทางดึงผลลัพธ์ แต่สัญญานั้นขึ้นกับสองสิ่งทำงานร่วมกัน: เอนจินเชิงสัมพันธ์ที่ทำงานได้ดี และภาษาสืบค้นที่นักพัฒนาทั่วไป (และบางคนที่ไม่ใช่นักพัฒนา) ใช้ได้
System R ที่พัฒนาในห้องวิจัยของ IBM ที่ซานโฮเซในทศวรรษ 1970 มุ่งสร้างโปรโตไทป์ของระบบจัดการฐานข้อมูลเชิงสัมพันธ์และทดสอบความคิดเชิงสัมพันธ์อย่างเข้มข้น
สำคัญเท่าๆ กันคือมันสำรวจเทคนิคที่กลายเป็นพื้นฐานในวันนี้—โดยเฉพาะการเพิ่มประสิทธิภาพคิวรี หากผู้ใช้จะเขียนคำขอระดับสูง (“เอาบันทึกเหล่านี้ที่ตรงตามเงื่อนไขเหล่านี้”) ระบบต้องแปลงคำขอเหล่านั้นเป็นการดำเนินการที่มีประสิทธิภาพโดยอัตโนมัติ
Donald Chamberlin ในสภาพแวดล้อมงานวิจัยของ IBM มุ่งสนใจชิ้นที่หายไป: ภาษาปฏิบัติสำหรับถามคำถามกับข้อมูลเชิงสัมพันธ์ พร้อมกับผู้ร่วมงาน (โดยเฉพาะ Raymond Boyce) เขาทำงานออกแบบภาษาสืบค้นที่สอดคล้องกับวิธีที่ผู้คนอธิบายความต้องการข้อมูลตามธรรมชาติ
นี่ไม่ใช่การออกแบบภาษาในสุญญากาศ System R ให้ลูปป้อนกลับ: หากฟีเจอร์ภาษาทำไม่ได้อย่างมีประสิทธิภาพ มันจะไม่รอด หากฟีเจอร์ทำให้งานทั่วไปง่ายขึ้น มันก็จะได้แรงหนุน
Codd อธิบายโมเดลเชิงสัมพันธ์ด้วยคณิตศาสตร์รูปแบบทางการ (พีชคณิตเชิงสัมพันธ์และแคลคูลัสเชิงสัมพันธ์) ความคิดพวกนั้นทรงพลังแต่ค่อนข้างเชิงวิชาการ System R ต้องการภาษาที่:
การค้นหานี้—ยึดกับโปรโตไทป์เชิงสัมพันธ์ที่ทำงานได้—ปูทางให้เกิด SEQUEL แล้วกลายเป็น SQL
Donald Chamberlin และเพื่อนร่วมงานเดิมตั้งชื่อภาษานี้ว่า SEQUEL ย่อมาจาก Structured English Query Language ชื่อบอกความตั้งใจ: แทนที่จะเขียนโค้ดเชิงกระบวนการเพื่อนำทางข้อมูลทีละขั้นตอน คุณจะ ระบุสิ่งที่ต้องการ ในรูปแบบที่รู้สึกใกล้เคียงภาษาอังกฤษประจำวัน
SEQUEL ต่อมาถูกย่อเป็น SQL (อธิบายได้ว่าเพื่อความสั้น ง่ายต่อการพิมพ์และออกเสียง และเกี่ยวข้องกับข้อจำกัดเรื่องเครื่องหมายการค้า) แต่ความทะเยอทะยานเรื่อง “ภาษาอังกฤษมีโครงสร้าง” ยังคงอยู่
เป้าหมายการออกแบบคือทำให้งานฐานข้อมูลเหมือนการขอที่ชัดเจน:
โครงสร้างนั้นให้รูปแบบทางความคิดที่สอดคล้องกัน คุณไม่จำเป็นต้องเรียนรู้กฎการนำทางเฉพาะของผู้จำหน่าย; คุณเรียนรูปแบบที่อ่านได้สำหรับการตั้งคำถาม
สมมติคำถามธุรกิจง่ายๆ: “ลูกค้าไหนในแคลิฟอร์เนียที่ใช้จ่ายมากที่สุดในปีนี้?” SQL ให้คุณแสดงความตั้งใจนั้นโดยตรง:
SELECT customer_id, SUM(amount) AS total_spent
FROM orders
WHERE state = 'CA' AND order_date >= '2025-01-01'
GROUP BY customer_id
ORDER BY total_spent DESC;
แม้คุณจะเป็นคนใหม่กับฐานข้อมูล คุณมักจะเดาได้ว่าคิวรีนี้ทำอะไร:
ความอ่านง่ายนั้น—คู่กับกฎที่ชัดเจน—ช่วยให้ SQL แพร่หลายไปไกลนอก System R ของ IBM และเข้าสู่โลกซอฟต์แวร์กว้างขึ้น
เหตุผลหนึ่งที่ SQL ติดอยู่คือมันให้คุณแสดงคำถามในแบบที่คุณพูดออกมา: “เลือกสิ่งเหล่านี้ จากที่นี้ โดยมีเงื่อนไขเหล่านี้” คุณไม่ต้องอธิบาย วิธี หา คำตอบทีละขั้นตอน; คุณบอก สิ่งที่ต้องการ
SELECT = เลือก คอลัมน์ที่ต้องการเห็น
FROM = จาก ตาราง (หรือชุดข้อมูล) ที่ข้อเท็จจริงเหล่านั้นมาจาก
WHERE = กรอง แถวให้เหลือเฉพาะที่ตรงตามเงื่อนไข
JOIN = เชื่อม ตารางที่เกี่ยวข้อง (เช่น แมตช์ customer_id ใน orders กับ customer_id ใน customers)
GROUP BY = สรุป ตามหมวดหมู่ เพื่อพูดถึงยอดรวม “ต่อผู้ใช้” “ต่อเดือน” หรือ “ต่อสินค้า”
SELECT customer_name, COUNT(*) AS order_count
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id
WHERE orders.status = 'Shipped'
GROUP BY customer_name;
อ่านว่า: “เลือกชื่อผู้ใช้แต่ละคนและจำนวนคำสั่งซื้อ จาก orders ที่เชื่อมกับ customers เก็บเฉพาะคำสั่งซื้อที่ส่งแล้ว และสรุปตามชื่อลูกค้า”
ถ้า SQL รู้สึกน่ากลัว ให้ถอยออกมาและเขียนเป้าหมายในบรรทัดเดียว แล้วแมปคำเหล่านั้น:
นิสัยคิดแบบตั้งคำถามนี้คือการออกแบบที่ “เป็นมิตรกับมนุษย์” ของ SQL
SQL ไม่ได้แค่แนะนำวิธีพูดกับข้อมูลใหม่—มันลดจำนวนคนที่ต้องเป็น “คนฐานข้อมูล” เพื่อให้ได้คำตอบ ก่อน SQL การถามฐานข้อมูลมักหมายถึงการเขียนโค้ดเชิงกระบวนการ เข้าใจรายละเอียดการจัดเก็บ หรือส่งคำขอให้ทีมผู้เชี่ยวชาญ Chamberlin ช่วยพลิกสถานการณ์นั้น: คุณสามารถบอก สิ่งที่ต้องการ และฐานข้อมูลจะคิดหาทางดึงมัน
ชัยชนะด้านการเข้าถึงของ SQL คือมันอ่านได้พอที่จะแบ่งปันระหว่างนักวิเคราะห์ นักพัฒนา และทีมผลิต แม้ผู้เริ่มต้นก็เข้าใจความตั้งใจของคิวรีอย่าง:
SELECT product, SUM(revenue)
FROM sales
WHERE sale_date >= '2025-01-01'
GROUP BY product;
คุณไม่จำเป็นต้องรู้โครงสร้างดัชนีหรือเลย์เอาต์ไฟล์เพื่อเห็นว่าต้องการอะไร: ยอดรวมตามสินค้าในช่วงวันที่หนึ่ง
เพราะ SQL เป็นเชิงประกาศและสอนกันโดยแพร่หลาย มันกลายเป็นจุดอ้างอิงร่วมในการวางแผนและดีบัก ผู้จัดการผลิตสามารถตรวจสอบคำถามได้ (“เรานับการคืนสินค้าด้วยไหม?”) นักวิเคราะห์ปรับคำนิยามได้ วิศวกรปรับแต่งประสิทธิภาพหรือย้ายตรรกะไปไว้ในแอปหรือพายป์ไลน์ได้
ที่สำคัญ SQL ทำให้ “คำถาม” เองตรวจสอบได้ มันสามารถจัดเวอร์ชัน ใส่คอมเมนต์ ทดสอบ และปรับปรุงได้—เหมือนโค้ด
SQL ทำให้การถามง่ายขึ้น แต่ไม่ได้รับประกันคำตอบที่ถูกต้อง คุณยังต้องมี:
SQL เปิดประตูให้ทำงานแบบบริการตนเอง แต่ผลลัพธ์ที่ดียังขึ้นกับข้อมูลที่ดีและความหมายร่วมกัน
SQL ไม่ได้ชนะเพราะเป็นภาษาสืบค้นเดียวที่มีอยู่—แต่เพราะมันใช้งานได้จริงสำหรับอุตสาหกรรมที่เติบโตและต้องการนิสัยร่วม เมื่อทีมเห็นว่า SQL ให้พวกเขาถามคำถามชัดเจนกับข้อมูลโดยไม่ต้องเขียนโค้ดพิเศษสำหรับทุกรายงาน มันเริ่มปรากฏในผลิตภัณฑ์ การฝึกอบรม และคำบรรยายงานมากขึ้น
เมื่อผู้ขายฐานข้อมูลเพิ่มการรองรับ SQL เครื่องมืออื่น ๆ ก็เดินตาม รายงาน เครื่องมือ BI และเฟรมเวิร์กแอปพลิเคชันต่างได้ประโยชน์จากการมีวิธีร่วมในการดึงและจัดรูปแบบข้อมูล
นั่นสร้างลูปบวก:
แม้ฐานข้อมูลจะแตกต่างกันภายใน การมีพื้นผิว SQL ที่คุ้นเคยช่วยลดความพยายามในการเปลี่ยนระบบหรือผสานหลายระบบ
พกพาไม่ได้หมายความว่า "รันได้ทุกที่โดยไม่ต้องแก้ไข" แต่มันหมายถึงแนวคิดหลัก—SELECT, WHERE, JOIN, GROUP BY—ยังคงจดจำได้ในผลิตภัณฑ์ต่าง ๆ คิวรีที่เขียนสำหรับระบบหนึ่งมักต้องแก้แค่เล็กน้อยสำหรับอีกระบบหนึ่ง นั่นลดการล็อกกับผู้ขายและทำให้การย้ายระบบไม่น่ากลัวเท่าเดิม
เมื่อเวลาผ่านไป SQL ถูกมาตรฐาน: ชุดกฎและคำนิยามที่ผู้ขายส่วนใหญ่ยอมรับ คิดเหมือนไวยากรณ์ของภาษา ภูมิภาคต่าง ๆ อาจมีสำเนียงและสแลง แต่ไวยากรณ์พื้นฐานทำให้สื่อสารกันได้
สำหรับคนและองค์กร การมาตรฐานนี้มีผลมหาศาล:
ผลสุดท้าย: SQL กลายเป็น “ภาษากลาง” ในการทำงานกับข้อมูลเชิงสัมพันธ์
SQL ไม่เพียงเปลี่ยนวิธีที่คน สืบค้น ข้อมูล—มันเปลี่ยนวิธีสร้างซอฟต์แวร์ เมื่อตัวใดตัวหนึ่งสามารถถามฐานข้อมูลด้วยวิธีร่วม โปรแกรมหลายประเภทสามารถสมมติว่า “SQL พร้อมใช้งาน” แล้วมุ่งไปที่ฟีเจอร์ระดับสูงกว่า
คุณจะเห็น SQL ในแอปธุรกิจ (CRM, ERP, ระบบการเงิน) ในแดชบอร์ดรายงาน และข้างหลังบริการเว็บที่ดึงและอัปเดตเรกคอร์ด แม้ผู้ใช้จะไม่เคยพิมพ์คิวรี แอปจำนวนมากยังคงสร้าง SQL ใต้พื้นผิวเพื่อนำมาคัดกรองคำสั่ง คำนวณยอดรวม หรือประกอบโปรไฟล์ลูกค้า
ความแพร่หลายนี้สร้างรูปแบบที่ทรงพลัง: ถ้าซอฟต์แวร์ของคุณพูด SQL ได้ มันจะทำงานร่วมกับฐานข้อมูลหลายระบบได้โดยมีการผสานงานที่น้อยลง
ภาษาสำหรับสืบค้นร่วมทำให้การสร้างเครื่องมือรอบฐานข้อมูลเป็นไปได้จริง:
จุดสำคัญคือเครื่องมือเหล่านี้ไม่ผูกกับอินเทอร์เฟซของผู้ขายคนใดคนหนึ่ง พวกมันอิงแนวคิด SQL ที่ถ่ายโอนได้
เหตุผลหนึ่งที่ SQL ยังสำคัญในปี 2025 เพราะมันทำหน้าที่เหมือนสัญญาที่ยืดหยุ่นระหว่างความตั้งใจและการปฏิบัติ แม้เมื่อคุณสร้างแอปด้วยเครื่องมือระดับสูงหรือ AI คุณก็ยังต้องมีเลเยอร์ฐานข้อมูลที่ชัดเจน ตรวจสอบได้ และสามารถตรวจสอบได้
ตัวอย่างเช่น บน Koder.ai (แพลตฟอร์ม vibe-coding สำหรับสร้างเว็บ แบ็กเอนด์ และแอปมือถือผ่านการแชท) ทีมมักยึด “สิ่งที่แอปควรทำ” ลงในตารางเชิงสัมพันธ์และคิวรี SQL ภายใต้พื้นผิว โดยปกติจะเป็นแบ็กเอนด์ Go กับ PostgreSQL ที่ SQL ยังคงเป็นภาษาร่วมสำหรับการเชื่อมตาราง การกรอง และการสรุป ขณะที่แพลตฟอร์มช่วยเร่งการสร้างโครงร่าง การทำซ้ำ และการปรับใช้
Donald D. Chamberlin เป็นนักวิจัยของ IBM ผู้ร่วมพัฒนา SQL (เดิมเรียกว่า SEQUEL) ในโครงการ System R จุดเด่นของเขาคือการช่วยออกแบบภาษาที่ เชิงประกาศ และอ่านง่าย ทำให้คนถามฐานข้อมูลได้โดยไม่ต้องเขียนโปรแกรมทีละขั้นตอน
SQL สำคัญเพราะทำให้การเข้าถึงข้อมูลเป็นสิ่งที่ แบ่งปันและทำซ้ำได้ แทนที่จะต้องขอโปรแกรมเฉพาะจากผู้เชี่ยวชาญหรือพึ่งพารายงานที่ตายตัว ทีมงานสามารถเขียนและตรวจสอบคิวรีเหมือนงานซอฟต์แวร์อื่น ๆ ช่วยเร่งการสำรวจข้อมูลและลดคอขวด
ภาษาที่ เชิงประกาศ หมายถึงการบอกฐานข้อมูลว่า ต้องการผลลัพธ์อะไร แทนการบอกขั้นตอนว่าจะดึงข้อมูลอย่างไร ในทางปฏิบัติ คุณระบุคอลัมน์ ตาราง ตัวกรอง และการสรุป ผลลัพธ์คือฐานข้อมูลจะเลือกแผนปฏิบัติการที่มีประสิทธิภาพ (ผ่านการเพิ่มประสิทธิภาพคิวรี)
แบบจำง่ายๆ คือ:
SELECT: สิ่งที่คุณต้องการเห็น (คอลัมน์หรือนิพจน์)FROM: มาจากที่ไหน (ตาราง/วิว)WHERE: แถวไหนที่มีสิทธิ์ถูกรวม (ตัวกรอง)เมื่อเข้าใจแล้ว คุณสามารถเพิ่ม เพื่อเชื่อมตาราง, เพื่อสรุปผล, และ เพื่อเรียงลำดับ
JOIN รวมแถวจากสองตาราง (หรือมากกว่า) บนเงื่อนไขที่ตรงกัน—บ่อยครั้งเป็นตัวระบุร่วมอย่าง customer_id ใช้เมื่อข้อมูลที่ต้องการกระจายอยู่ในหลายตาราง (เช่น รายการสั่งซื้อในตารางหนึ่งและชื่อผู้ใช้ในอีกตารางหนึ่ง)
GROUP BY ช่วยให้คุณได้ผลลัพธ์แบบ “ต่อกลุ่ม” (ยอดรวมต่อลูกค้า จำนวนต่อเดือน รายได้ต่อสินค้า) แนวทางปฏิบัติคือ:
SELECT ... FROM ... WHERE ... ให้ได้แถวที่ต้องการCOUNT(), , System R เป็นโปรโตไทป์งานวิจัยของ IBM ในทศวรรษ 1970 ที่สร้างขึ้นเพื่อพิสูจน์ว่าฐานข้อมูลเชิงสัมพันธ์จะทำงานได้จริงในสเกลโลกธุรกิจ มันยังผลักดันแนวคิดสำคัญอย่าง การเพิ่มประสิทธิภาพคิวรี ซึ่งทำให้ภาษาระดับสูงอย่าง SQL ปฏิบัติได้จริงเพราะระบบแปลงคำขอเป็นการทำงานที่มีประสิทธิภาพโดยอัตโนมัติ
SQL แพร่หลายเพราะกลายเป็นอินเทอร์เฟซร่วมระหว่างฐานข้อมูลและเครื่องมือหลายชนิด วงจรเสริมเกิดขึ้น:
แม้ผลิตภัณฑ์จะแตกต่างกัน แต่แนวคิดพื้นฐานยังคงจดจำได้
สำแดงความจริงว่า SQL มีหลายสำเนียง (dialects) แต่แนวทางที่ให้ผลมากที่สุดคือ:
SELECT, WHERE, JOIN, GROUP BY, ORDER BY, และคำสั่งพื้นฐานสำหรับแทรก/แก้ไขเริ่มอย่างปลอดภัยและสร้างเป็นชั้น:
SELECT เท่านั้นในขั้นแรกLIMIT (หรือเทียบเท่าในฐานข้อมูลของคุณ) เพื่อไม่ดึงข้อมูลจำนวนมหาศาลโดยไม่ตั้งใจJOINGROUP BYORDER BYSUM()AVG()GROUP BY เพื่อกำหนดกลุ่มที่ต้องการวิธีนี้ทำให้ความไม่เข้ากันกลายเป็นเรื่องที่ค้นหาได้แทนที่จะน่าหงุดหงิดตลอดเวลา
UPDATE/DELETE ให้รันเงื่อนไขเดียวกันใน SELECT เพื่อพรีวิวแถวที่จะได้รับผลกระทบเป้าหมายคือแปลงคำถามชัดเจนเป็นคิวรี ไม่ใช่ท่องไวยากรณ์อย่างเดียว