ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้
Access SQL: แนวคิดพื้นฐาน คําศัพท์ และไวยากรณ์

เมื่อคุณต้องการเรียกใช้ข้อมูลจากฐานข้อมูล ให้คุณขอข้อมูลโดยใช้ Structured Query Language หรือ SQL SQL เป็นภาษาของคอมพิวเตอร์ที่คล้ายกับภาษาอังกฤษมาก แต่โปรแกรมฐานข้อมูลเข้าใจ ทุกคิวรีที่คุณเรียกใช้จะใช้ SQL เบื้องหลัง

การทําความเข้าใจวิธีที่ SQL ทํางานสามารถช่วยให้คุณสร้างคิวรีที่ดีขึ้น และช่วยให้คุณเข้าใจวิธีแก้ไขคิวรีที่ไม่ส่งกลับผลลัพธ์ที่คุณต้องการได้ง่ายขึ้น

นี่คือหนึ่งในชุดบทความเกี่ยวกับ Access SQL บทความนี้จะอธิบายการใช้ SQL พื้นฐานเพื่อเลือกข้อมูล และใช้ตัวอย่างเพื่อแสดงไวยากรณ์ SQL

ในบทความนี้

SQL คืออะไร

SQL เป็นภาษาคอมพิวเตอร์สําหรับการทํางานกับชุดข้อเท็จจริงและความสัมพันธ์ระหว่างทั้งสอง โปรแกรมฐานข้อมูลเชิงสัมพันธ์ เช่น Microsoft Office Access ให้ใช้ SQL เพื่อทํางานกับข้อมูล ไม่เหมือนกับภาษาคอมพิวเตอร์หลายภาษา SQL ไม่ยากที่จะอ่านและทําความเข้าใจแม้สําหรับมือใหม่ SQL เป็นมาตรฐานสากลที่ได้รับการยอมรับจากหน่วยงานมาตรฐานเช่น ISO และ ANSI เช่นเดียวกับภาษาคอมพิวเตอร์หลายภาษา

คุณใช้ SQL เพื่ออธิบายชุดข้อมูลที่สามารถช่วยคุณตอบคําถามได้ เมื่อคุณใช้ SQL คุณต้องใช้ไวยากรณ์ที่ถูกต้อง ไวยากรณ์คือชุดของกฎที่องค์ประกอบของภาษารวมกันอย่างถูกต้อง ไวยากรณ์ SQL จะยึดตามไวยากรณ์ภาษาอังกฤษ และใช้องค์ประกอบจํานวนมากที่เหมือนกับไวยากรณ์ Visual Basic for Applications (VBA)

ตัวอย่างเช่น คําสั่ง SQL อย่างง่ายที่เรียกใช้รายการของนามสกุลสําหรับที่ติดต่อที่มีชื่อว่า Mary อาจมีลักษณะดังนี้:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

หมายเหตุ: SQL ไม่เพียงใช้สําหรับจัดการข้อมูลเท่านั้น แต่ยังใช้สําหรับการสร้างและเปลี่ยนแปลงการออกแบบวัตถุฐานข้อมูล เช่น ตาราง ส่วนของ SQL ที่ใช้สําหรับการสร้างและเปลี่ยนแปลงวัตถุฐานข้อมูลเรียกว่า ภาษากําหนดโครงสร้างข้อมูล (DDL) หัวข้อนี้ไม่ครอบคลุม DDL สําหรับข้อมูลเพิ่มเติม ให้ดูบทความ สร้างหรือปรับเปลี่ยนตารางหรือดัชนีโดยใช้คิวรีแบบสร้างข้อกําหนดข้อมูล

คําสั่ง SELECT

เมื่อต้องการอธิบายชุดข้อมูลโดยใช้ SQL ให้คุณเขียนคําสั่ง SELECT คําสั่ง SELECT จะมีคําอธิบายที่สมบูรณ์ของชุดข้อมูลที่คุณต้องการรับจากฐานข้อมูล ซึ่งรวมถึงรายการต่อไปนี้:

  • ตารางใดที่มีข้อมูลอยู่

  • วิธีที่ข้อมูลจากแหล่งข้อมูลต่างๆ มีความเกี่ยวข้องกัน

  • เขตข้อมูลหรือการคํานวณใดที่จะสร้างข้อมูล

  • เกณฑ์ที่ข้อมูลต้องตรงกัน

  • จะเรียงลําดับผลลัพธ์หรือไม่และอย่างไร

ส่วนคําสั่ง SQL

เช่นเดียวกับประโยค คําสั่ง SQL มีประโยค แต่ละส่วนคําสั่งจะดําเนินการฟังก์ชันสําหรับคําสั่ง SQL ส่วนคําสั่งบางอย่างจําเป็นต้องใช้ในคําสั่ง SELECT ตารางต่อไปนี้แสดงรายการส่วนคําสั่ง SQL ทั่วไป

ส่วนคำสั่ง SQL

หน้าที่

จำเป็น

SELECT

แสดงเขตข้อมูลที่มีข้อมูลที่สนใจ

ใช่

FROM

แสดงตารางที่มีเขตข้อมูลที่ปรากฏอยู่ในส่วนคำสั่ง SELECT

ใช่

WHERE

ระบุเกณฑ์เขตข้อมูลที่ใช้เลือกระเบียนที่จะรวมอยู่ในผลลัพธ์

ไม่ใช่

ORDER BY

ระบุวิธีเรียงลำดับผลลัพธ์

ไม่ใช่

GROUP BY

ในคำสั่ง SQL ที่มีฟังก์ชันการรวม จะแสดงเขตข้อมูลที่ไม่ถูกสรุปรวมอยู่ในส่วนคำสั่ง SELECT

เฉพาะเมื่อมีเขตข้อมูลเหล่านี้เท่านั้น

HAVING

ในคำสั่ง SQL ที่มีฟังก์ชันการรวม จะระบุเกณฑ์ซึ่งใช้กับเขตข้อมูลที่ถูกสรุปรวมอยู่ในคำสั่ง SELECT

ไม่ใช่

คําของ SQL

แต่ละส่วนคําสั่ง SQL ประกอบด้วยคําต่างๆ เปรียบเทียบกับชนิดของคํา ตารางต่อไปนี้แสดงรายการชนิดของคํา SQL

คำที่ใช้ใน SQL

คํากล่าวสุนทรพจน์ส่วนหนึ่งที่เทียบได้

คำจำกัดความ

ตัวอย่าง

ตัวระบุ

นาม

ชื่อที่คุณใช้เพื่อระบุวัตถุฐานข้อมูล เช่น ชื่อของเขตข้อมูล

ลูกค้า [หมายเลขโทรศัพท์]

ตัวดำเนินการ

คํากริยาหรือกริยาวิเศษณ์

คำสำคัญที่แทนการกระทำหรือปรับเปลี่ยนการกระทำ

AS

ค่าคงที่

นาม

ค่าที่ไม่เปลี่ยนแปลง เช่น ตัวเลข หรือค่า NULL

42

นิพจน์

คุณศัพท์

การผสมรวมตัวระบุ ตัวดำเนินการ ค่าคงที่ และฟังก์ชันเข้าด้วยกันเพื่อนำมาประเมินให้ได้ค่าค่าเดียว

>= Products.[Unit Price]

ด้านบนของหน้า

ส่วนคําสั่ง SQL พื้นฐาน: SELECT, FROM และ WHERE

คําสั่ง SQL จะนํารูปแบบทั่วไปไปใช้:

SELECT field_1
FROM table_1
WHERE criterion_1
;

หมายเหตุ: 

  • Access จะละเว้นตัวแบ่งบรรทัดในคําสั่ง SQL อย่างไรก็ตาม ให้พิจารณาใช้บรรทัดสําหรับแต่ละส่วนคําสั่งเพื่อช่วยปรับปรุงความง่ายในการอ่านคําสั่ง SQL ของคุณสําหรับตัวคุณเองและผู้อื่น

  • คําสั่ง SELECT ทุกคําสั่งจะลงท้ายด้วยเครื่องหมายอัฒภาค (;)) เครื่องหมายอัฒภาคสามารถปรากฏที่ส่วนท้ายของส่วนคําสั่งสุดท้ายหรือบนบรรทัดได้ที่ส่วนท้ายของคําสั่ง SQL

ตัวอย่างใน Access

ต่อไปนี้แสดงลักษณะของคําสั่ง SQL สําหรับคิวรีแบบใช้เลือกข้อมูลอย่างง่ายใน Access:

แท็บวัตถุ SQL ที่แสดงคำสั่ง SELECT

1. ส่วนคําสั่ง SELECT

2. ส่วนคําสั่ง FROM

3. ส่วนคําสั่ง WHERE

ตัวอย่างนี้คําสั่ง SQL จะอ่านว่า "เลือกข้อมูลที่เก็บอยู่ในเขตข้อมูลที่ชื่อ E-mail Address และ Company จากตารางชื่อ Contacts โดยเฉพาะระเบียนที่มีค่าของเขตข้อมูล City คือ Seattle"

มาดูตัวอย่างหนึ่งประโยคพร้อมกันเพื่อดูว่าไวยากรณ์ SQL ทํางานอย่างไร

ส่วนคําสั่ง SELECT

SELECT [E-mail Address], Company

นี่คือส่วนคําสั่ง SELECT ซึ่งประกอบด้วยตัวดําเนินการ (SELECT) ตามด้วยตัวระบุสองตัว ([ที่อยู่อีเมล] และบริษัท)

ถ้าตัวระบุมีช่องว่างหรืออักขระพิเศษ (เช่น "ที่อยู่อีเมล") ตัวระบุนั้นจะต้องอยู่ในวงเล็บเหลี่ยม

ส่วนคําสั่ง SELECT ไม่จําเป็นต้องระบุว่าตารางใดมีเขตข้อมูล และไม่สามารถระบุเงื่อนไขใดๆ ที่ข้อมูลต้องตรงตามที่จะรวมไว้ได้

ส่วนคําสั่ง SELECT จะปรากฏที่ด้านหน้าส่วนคําสั่ง FROM ในคําสั่ง SELECT เสมอ

ส่วนคําสั่ง FROM

FROM Contacts

นี่คือส่วนคําสั่ง FROM ซึ่งประกอบด้วยตัวดําเนินการ (FROM) ตามด้วยตัวระบุ (ที่ติดต่อ)

ส่วนคําสั่ง FROM จะไม่แสดงรายการเขตข้อมูลที่จะเลือก

ส่วนคําสั่ง WHERE

WHERE City="Seattle"

นี่คือส่วนคําสั่ง WHERE ซึ่งประกอบด้วยตัวดําเนินการ (WHERE) ตามด้วยนิพจน์ (City="Seattle")

หมายเหตุ: ส่วนคําสั่ง WHERE ไม่ใช่องค์ประกอบที่จําเป็นของคําสั่ง SELECT ซึ่งต่างจากส่วนคําสั่ง SELECT และ FROM

คุณสามารถทําการกระทําต่างๆ ที่ SQL ทําให้คุณทําได้โดยใช้ส่วนคําสั่ง SELECT, FROM และ WHERE ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้ส่วนคําสั่งเหล่านี้จะแสดงในบทความเพิ่มเติมเหล่านี้:

ด้านบนของหน้า

การเรียงลําดับผลลัพธ์: ORDER BY

เช่นเดียวกับ Microsoft Excel Access ช่วยให้คุณสามารถเรียงลําดับผลลัพธ์คิวรีในแผ่นข้อมูลได้ คุณยังสามารถระบุในคิวรีวิธีที่คุณต้องการเรียงลําดับผลลัพธ์เมื่อคิวรีทํางาน โดยใช้ส่วนคําสั่ง ORDER BY ถ้าคุณใช้ส่วนคําสั่ง ORDER BY จะเป็นส่วนคําสั่งสุดท้ายในคําสั่ง SQL

ส่วนคําสั่ง ORDER BY มีรายการของเขตข้อมูลที่คุณต้องการใช้สําหรับการเรียงลําดับ ในลําดับเดียวกับที่คุณต้องการใช้การเรียงลําดับ

ตัวอย่างเช่น สมมติว่าคุณต้องการให้ผลลัพธ์ของคุณเรียงลําดับก่อนตามค่าของเขตข้อมูล "บริษัท" จากมากไปหาน้อย และถ้ามีระเบียนที่มีค่าเดียวกันสําหรับ บริษัท เรียงลําดับตามค่าในเขตข้อมูล ที่อยู่อีเมล จากน้อยไปหามาก ส่วนคําสั่ง ORDER BY ของคุณจะมีลักษณะดังต่อไปนี้:

ORDER BY Company DESC, [E-mail Address]

หมายเหตุ: ตามค่าเริ่มต้น Access จะเรียงลําดับค่าจากน้อยไปหามาก (A-Z, จากน้อยที่สุดไปหามากที่สุด) ใช้คําสําคัญ DESC เพื่อเรียงลําดับค่าตามลําดับจากมากไปหาน้อยแทน

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับส่วนคําสั่ง ORDER BY ให้ดูหัวข้อ ส่วนคําสั่ง ORDER BY

ด้านบนของหน้า

การทํางานกับข้อมูลที่สรุป: GROUP BY และ HAVING

ในบางครั้ง คุณอาจต้องการทํางานกับข้อมูลสรุป เช่น ยอดขายรวมในหนึ่งเดือน หรือรายการที่แพงที่สุดในสินค้าคงคลัง เมื่อต้องการทําเช่นนี้ ให้คุณนํา ฟังก์ชันการรวม ไปใช้กับเขตข้อมูลในส่วนคําสั่ง SELECT ของคุณ ตัวอย่างเช่น ถ้าคุณต้องการให้คิวรีของคุณแสดงจํานวนที่อยู่อีเมลที่แสดงอยู่ในรายการสําหรับแต่ละบริษัท ส่วนคําสั่ง SELECT ของคุณอาจมีลักษณะดังต่อไปนี้:

SELECT COUNT([E-mail Address]), Company

ฟังก์ชันการรวมที่คุณสามารถใช้ได้จะขึ้นอยู่กับชนิดของข้อมูลที่อยู่ในเขตข้อมูลหรือนิพจน์ที่คุณต้องการใช้ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันการรวมที่พร้อมใช้งาน ให้ดูบทความ ฟังก์ชันการรวมของ SQL

การระบุเขตข้อมูลที่ไม่ได้ใช้ในฟังก์ชันการรวม: ส่วนคําสั่ง GROUP BY

เมื่อคุณใช้ฟังก์ชันการรวม คุณมักจะต้องสร้างส่วนคําสั่ง GROUP BY ด้วย ส่วนคําสั่ง GROUP BY จะแสดงรายการเขตข้อมูลทั้งหมดที่คุณไม่ได้ใช้ฟังก์ชันการรวม ถ้าคุณนําฟังก์ชันการรวมไปใช้กับเขตข้อมูลทั้งหมดในคิวรี คุณไม่จําเป็นต้องสร้างส่วนคําสั่ง GROUP BY

ส่วนคําสั่ง GROUP BY จะตามหลังส่วนคําสั่ง WHERE หรือส่วนคําสั่ง FROM ทันที ถ้าไม่มีส่วนคําสั่ง WHERE ส่วนคําสั่ง GROUP BY จะแสดงรายการเขตข้อมูลตามที่ปรากฏในส่วนคําสั่ง SELECT

ตัวอย่างเช่น การดําเนินตัวอย่างก่อนหน้าต่อ ถ้าส่วนคําสั่ง SELECT ของคุณนําฟังก์ชันการรวมไปใช้กับ [ที่อยู่อีเมล] แต่ไม่ใช่กับบริษัท ส่วนคําสั่ง GROUP BY ของคุณจะมีลักษณะดังต่อไปนี้:

GROUP BY Company

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับส่วนคําสั่ง GROUP BY ให้ดูที่หัวข้อ ส่วนคําสั่ง GROUP BY

การจํากัดค่าการรวมโดยใช้เกณฑ์กลุ่ม: ส่วนคําสั่ง HAVING

ถ้าคุณต้องการใช้เกณฑ์เพื่อจํากัดผลลัพธ์ของคุณ แต่เขตข้อมูลที่คุณต้องการนําเกณฑ์ไปใช้จะถูกใช้ในฟังก์ชันการรวม คุณจะไม่สามารถใช้ส่วนคําสั่ง WHERE ได้ แต่คุณสามารถใช้ส่วนคําสั่ง HAVING แทนได้ ส่วนคําสั่ง HAVING จะทํางานเหมือนกับส่วนคําสั่ง WHERE แต่ใช้สําหรับข้อมูลที่รวบรวม

ตัวอย่างเช่น สมมติว่าคุณใช้ฟังก์ชัน AVG (ซึ่งจะคํานวณค่าเฉลี่ย) กับเขตข้อมูลแรกในส่วนคําสั่ง SELECT ของคุณ:

SELECT COUNT([E-mail Address]), Company

ถ้าคุณต้องการให้คิวรีจํากัดผลลัพธ์โดยยึดตามค่าของฟังก์ชัน COUNT นั้น คุณจะไม่สามารถใช้เกณฑ์สําหรับเขตข้อมูลนั้นในส่วนคําสั่ง WHERE ได้ แต่คุณใส่เกณฑ์ในส่วนคําสั่ง HAVING แทน ตัวอย่างเช่น ถ้าคุณต้องการให้คิวรีส่งกลับแถวถ้ามีที่อยู่อีเมลมากกว่าหนึ่งรายการที่เกี่ยวข้องกับบริษัท ส่วนคําสั่ง HAVING อาจมีลักษณะดังต่อไปนี้:

HAVING COUNT([E-mail Address])>1

หมายเหตุ: คิวรีสามารถมีส่วนคําสั่ง WHERE และส่วนคําสั่ง HAVING ได้ — เกณฑ์สําหรับเขตข้อมูลที่ไม่ได้ใช้ในฟังก์ชันการรวมจะอยู่ในส่วนคําสั่ง WHERE และเกณฑ์สําหรับเขตข้อมูลที่ใช้กับฟังก์ชันการรวมจะอยู่ในส่วนคําสั่ง HAVING

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับส่วนคําสั่ง HAVING ให้ดูที่หัวข้อ ส่วนคําสั่ง HAVING

ด้านบนของหน้า

การรวมผลลัพธ์คิวรี: UNION

เมื่อคุณต้องการตรวจทานข้อมูลทั้งหมดที่ส่งกลับโดยคิวรีแบบใช้เลือกข้อมูลที่คล้ายกันหลายคิวรีพร้อมกัน เป็นชุดรวม ให้คุณใช้ตัวดําเนินการ UNION

ตัวดําเนินการ UNION ช่วยให้คุณรวมคําสั่ง SELECT สองคําสั่งเข้าด้วยกันเป็นคําสั่งเดียว คําสั่ง SELECT ที่คุณรวมต้องมีจํานวนเขตข้อมูลผลลัพธ์เท่ากัน ในลําดับเดียวกัน และมีชนิดข้อมูลเดียวกันหรือเข้ากันได้ เมื่อคุณเรียกใช้คิวรี ข้อมูลจากแต่ละชุดเขตข้อมูลที่สอดคล้องกันจะถูกรวมเป็นเขตข้อมูลผลลัพธ์เดียว เพื่อให้ผลลัพธ์คิวรีมีจํานวนเขตข้อมูลเท่ากับแต่ละคําสั่งที่เลือก

หมายเหตุ: สําหรับวัตถุประสงค์ของคิวรีแบบร่วม ชนิดข้อมูลตัวเลขและข้อความจะเข้ากันได้

เมื่อคุณใช้ตัวดําเนินการ UNION คุณยังสามารถระบุว่าผลลัพธ์คิวรีควรมีแถวที่ซ้ํากันหรือไม่ ถ้ามี อยู่ โดยใช้คําสําคัญ ALL

ไวยากรณ์ SQL พื้นฐานสําหรับคิวรีแบบร่วมที่รวมคําสั่ง SELECT สองคําสั่งมีดังนี้:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

ตัวอย่างเช่น สมมติว่าคุณมีตารางที่ชื่อว่า ผลิตภัณฑ์ และตารางอื่นที่ชื่อว่า บริการ ทั้งสองตารางมีเขตข้อมูลที่มีชื่อของผลิตภัณฑ์หรือบริการ ราคา การรับประกัน หรือการรับประกัน ที่พร้อมให้บริการ และไม่ว่าคุณจะเสนอผลิตภัณฑ์หรือบริการโดยเฉพาะ แม้ว่าตารางผลิตภัณฑ์จะจัดเก็บข้อมูลการรับประกัน และตารางบริการจะจัดเก็บข้อมูลการรับประกัน แต่ข้อมูลพื้นฐานจะเหมือนกัน (ไม่ว่าผลิตภัณฑ์หรือบริการนั้นๆ จะมีสัญญาว่าจะให้คุณภาพหรือไม่) คุณสามารถใช้คิวรีแบบร่วมเช่นต่อไปนี้เพื่อรวมสี่เขตข้อมูลจากสองตาราง:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีรวมคําสั่ง SELECT โดยใช้ตัวดําเนินการ UNION ให้ดู รวมผลลัพธ์ของคิวรีแบบใช้เลือกข้อมูลหลายรายการโดยใช้คิวรีแบบร่วม

ด้านบนของหน้า

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

ข้อมูลนี้เป็นประโยชน์หรือไม่

คุณพึงพอใจกับคุณภาพภาษาเพียงใด
สิ่งที่ส่งผลต่อประสบการณ์ใช้งานของคุณ
เมื่อกดส่ง คำติชมของคุณจะถูกใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Microsoft ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

ขอบคุณสำหรับคำติชมของคุณ!

×