การแก้ไขคำสั่ง SQL เพื่อให้ได้ผลลัพธ์ของคิวรีที่ตรงจุด

การแก้ไขคำสั่ง SQL เพื่อให้ได้ผลลัพธ์ของคิวรีที่ตรงจุด

สิ่งสำคัญ:  บทความนี้เป็นการแปลด้วยเครื่อง โปรดดู ข้อจำกัดความรับผิดชอบ โปรดดูบทความฉบับภาษาอังกฤษ ที่นี่ เพื่อใช้อ้างอิง

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

หมายเหตุ: บทความนี้ใช้ไม่ได้กับ Access Web App ซึ่งเป็นชนิดฐานข้อมูลที่คุณออกแบบด้วย Access และประกาศแบบออนไลน์ สำหรับข้อมูลเพิ่มเติม ให้ดูที่ การสร้างแอป Access

ในบทความนี้

สร้างคำสั่ง Select

การกำหนดส่วนคำสั่ง SELECT เอง

การกำหนดส่วนคำสั่ง FROM เอง

การกำหนดส่วนคำสั่ง WHERE เอง

การกำหนดโดยใช้ตัวดำเนินการ UNION เอง

การสร้างคำสั่ง Select

คำสั่ง SQL Select มีส่วนคำสั่งอยู่สองถึงสามส่วนคำสั่ง ส่วนคำสั่ง SELECT จะบอกฐานข้อมูลให้รู้จุดที่จะมองหาข้อมูลและร้องขอให้ฐานข้อมูลส่งกลับผลลัพธ์ที่ต้องการ

หมายเหตุ: คำสั่ง SELECT มักจะลงท้ายด้วยเครื่องหมายอัฒภาค (;) โดยจะอยู่หลังส่วนคำสั่งสุดท้าย หรือจะอยู่ตอนท้ายบรรทัดเดียวกันของคำสั่ง SQL นั้น

คำสั่ง Select ดังต่อไปนี้จะขอให้ Access รับข้อมูลจากจากคอลัมน์ E-mail Address และคอลัมน์ Company จากตาราง Contacts โดยให้หาคำว่า “Seattle” ในคอลัมน์ City โดยเฉพาะ

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

คิวรีข้างบนนี้มีอยู่ 3 ส่วนคำสั่ง คือ SELECT, FROM และ WHERE

1. ส่วนคำสั่ง SELECT จะแสดงคอลัมน์ที่มีข้อมูลที่คุณต้องการใช้ และมีตัวดำเนินการหนึ่งตัว (นั่นคือ SELECT) ที่ตามด้วยตัวระบุสองตัว (นั่นคือ E-mail Address และ Company) ถ้าตัวระบุมีช่องว่างหรือมีอักขระพิเศษ (เช่นคำว่า "E-mail Address") ให้ล้อมตัวระบุนี้ด้วยวงเล็บเหลี่ยม

2. ส่วนคำสั่ง FROM ระบุตารางต้นฉบับ ในตัวอย่างดังกล่าวนี้ มีตัวดำเนินการ (นั่นคือ FROM) ที่ตามด้วยตัวระบุ (นั่นคือ Contacts).

3. ส่วนคำสั่ง WHERE เป็นส่วนคำสั่งที่จะมีหรือไม่ก็ได้ ตัวอย่างนี้มีตัวดำเนินการ (นั่นคือ WHERE) ที่ตามด้วยนิพจน์ (City="Seattle")

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการดูคิวรีที่เลือกสร้างแบบสอบถามอย่างง่ายที่เลือกไว้

ต่อไปนี้คือรายการส่วนคำสั่งทั่วๆ ไปของ SQL

ส่วนคำสั่ง SQL

หน้าที่

จำเป็น ไหม

SELECT

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

ใช่

FROM

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

ใช่

WHERE

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

ไม่ใช่

ORDER BY

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

ไม่ใช่

GROUP BY

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

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

HAVING

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

ไม่ใช่

แต่ละส่วนคำสั่ง SQL จะประกอบด้วยคำต่างๆ ต่อไปนี้คือรายการคำที่ใช้โดยทั่วไปใน SQL จำนวนหนึ่ง

คำที่ใช้ใน SQL

คำจำกัดความ

ตัวอย่าง

ตัวระบุ

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

[E-mail Address] และ Company

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

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

AS

ค่าคงที่

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

42

นิพจน์

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

>= Products.[Unit Price]

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

การกำหนดส่วนคำสั่ง SELECT เอง

การกำหนดเอง

ตัวอย่าง

ถ้าต้องการดูเฉพาะค่าที่แตกต่าง

ให้ใช้คำสำคัญ DISTINCT ในส่วนคำสั่ง SELECT ของคุณ

ตัวอย่างเช่น ถ้าลูกค้าของคุณมาจากสำนักงานสาขาต่างๆ หลายสาขาและบางรายมีหมายเลขโทรศัพท์เดียวกัน แล้วคุณต้องการให้หมายเลขโทรศัพท์แสดงครั้งเดียวเท่านั้น ส่วนคำสั่ง SELECT ของคุณจะเป็นแบบนี้

SELECT DISTINCT [txtCustomerPhone] 

ถ้าต้องการเปลี่ยนแปลงวิธีที่ตัวระบุปรากฏอยู่ในมุมมอง Datasheet เพื่อให้สามารถอ่านได้ดียิ่งขึ้น

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

SELECT [txtCustPhone] AS [Customer Phone]

การกำหนดส่วนคำสั่ง FROM เอง

การกำหนดเอง

ตัวอย่าง

คุณสามารถใช้นามแฝงของตารางหรือชื่ออื่นๆ ที่คุณกำหนดให้กับตารางในคำสั่ง Select ได้ นามแฝงของตารางมีประโยชน์ในกรณีชื่อของชื่อตารางมีความยาว โดยเฉพาะเมื่อคุณมีหลายเขตข้อมูลที่มีชื่อเดียวกันจากตารางต่างๆ กัน

ถ้าต้องการเลือกข้อมูลจากสองเขตข้อมูลที่มีชื่อเดียวกันว่า ID โดยเขตข้อมูลหนึ่งมาจากตาราง tblCustomer และอีกเขตข้อมูลมาจากตาราง tblOrder ให้ใช้แบบนี้

SELECT [tblCustomer].[ID], 
[tblOrder].[ID]

ใช้ตัวดำเนินการ AS เพื่อกำหนดนามแฝงของตารางในส่วนคำสั่ง FROM ดังนี้

FROM [tblCustomer] AS [C], 
[tblOrder] AS [O]

จากนั้นคุณสามารถใช้นามแฝงของตารางเหล่านี้ในส่วนคำสั่ง SELECT ได้ดังนี้

SELECT [C].[ID], 
[O].[ID]

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

รวมตารางต่างๆ เพื่อให้คิวรีรวมรายการต่างๆ จากตาราง และแยกรายการต่างๆ เมื่อไม่มีระเบียนที่สอดคล้องกันในตารางอื่น

ส่วนคำสั่ง FROM จะเป็นแบบนี้คือ

FROM [tblCustomer] 
INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

เกี่ยวกับการใช้การรวม

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

การรวมภายนอกจะระบุว่าจะให้รวมเอาข้อมูลที่ไม่มีค่าร่วมกันอยู่ด้วยหรือไม่ การรวมภายนอกเป็นแบบมีทิศทาง กล่าวคือ คุณสามารถระบุได้ว่าจะให้รวมเอาระเบียนทั้งหมดจากตารางแรกที่ได้ระบุไว้ในการรวม (ที่เรียกว่า การรวมด้านซ้าย) หรือจะให้รวมเอาระเบียนทั้งหมดจากตารางที่สองในการรวม (ที่เรียกว่า การรวมด้านขวา) ด้วยหรือไม่ การรวมภายนอกมีไวยากรณ์ SQL ดังต่อไปนี้

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2

โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้การรวมในคิวรี

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

การกำหนดส่วนคำสั่ง WHERE เอง

คำสั่ง where ประกอบด้วยเกณฑ์ที่ช่วยจำกัดจำนวนรายการที่ส่งกลับในแบบสอบถาม ดูตัวอย่างของเกณฑ์คิวรีและวิธีการทำงาน

ตัวอย่างของวิธีที่คุณสามารถกำหนดส่วนคำสั่ง WHERE พื้นฐานได้เอง คือการจำกัดผลลัพธ์ของคิวรี โดยสมมุติว่าคุณต้องการค้นหาหมายเลขโทรศัพท์ของลูกค้ารายหนึ่ง และคุณจำได้เพียงนามสกุลของลูกค้ารายนี้ว่าคือ Bagel เท่านั้น ในตัวอย่างนี้ นามสุกลจะถูกเก็บอยู่ในเขตข้อมูล LastName ดังนั้นไวยากรณ์ของ SQL จะเป็นดังนี้คือ

WHERE [LastName]='Bagel'

ใช้ส่วนคำสั่ง WHERE เพื่อรวมแหล่งข้อมูลสำหรับคอลัมน์ที่มีข้อมูลที่ตรงกัน แต่มีชนิดข้อมูลที่แตกต่างกันได้ด้วยเช่นกัน ซึ่งมีประโยชน์เนื่องจากคุณไม่สามารถสร้างการรวมระหว่างเขตข้อมูลที่มีชนิดข้อมูลที่แตกต่างกันได้ ใช้เขตข้อมูลหนึ่งเป็นเกณฑ์ให้กับอีกเขตข้อมูลหนึ่ง ด้วยคำสำคัญ LIKE ตัวอย่างเช่น ถ้าคุณต้องการที่จะใช้ข้อมูลจากตาราง Assets และตาราง Employees กรณีเฉพาะเมื่อชนิดของสินทรัพย์ในเขตข้อมูลชนิดสินทรัพย์ของตาราง Assets มีเลข 3 อยู่ในเขตข้อมูล Quantity ของตาราง Employees ส่วนคำสั่ง WHERE ของคุณจะเป็นแบบนี้

WHERE field1 LIKE field2

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

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

การกำหนดเองด้วยตัวดำเนินการ UNION

ใช้ตัวดำเนินการ UNION เมื่อคุณต้องการดูมุมมองที่ถูกรวมเข้าด้วยกันของผลลัพธ์จากคิวรีแบบใช้เลือกข้อมูลหลายๆ แบบที่คล้ายกัน ตัวอย่างเช่น ถ้าฐานข้อมูลของคุณมีตาราง Product และตาราง Services และทั้งสองตารางนี้ต่างมีเขตข้อมูลอยู่สามเขตข้อมูลเหมือนกัน คือ ข้อเสนอหรือผลิตภัณฑ์หรือบริการพิเศษ ราคา การรับประกันหรือการรับรอง แม้ว่าตาราง Products จะมีข้อมูลการรับประกันอยู่ และตาราง Services จะมีข้อมูลการรับรองอยู่ แต่ข้อมูลพื้นฐานจะเหมือนกัน คุณสามารถใช้คิวรีแบบร่วมเพื่อรวมเขตข้อมูลสามเขตข้อมูลจากทั้งสองตารางนี้เข้าด้วยกันได้ดังนี้

SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;

เมื่อคุณเรียกใช้คิวรีนี้ ข้อมูลจากแต่ละชุดของเขตข้อมูลที่เกี่ยวข้องกันจะถูกรวมเข้าด้วยกันเป็นเขตข้อมูลผลลัพธ์เดียว ถ้าต้องการรวมเอาแถวที่ซ้ำกันใดๆ เข้ามาอยู่ในผลลัพธ์ด้วย ให้ใช้ตัวดำเนินการ ALL

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแบบสอบถามแบบร่วม โปรดดูที่ การใช้แบบสอบถามแบบร่วมเพื่อดูผลลัพธ์แบบรวมจากหลายแบบสอบถาม

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

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

ขยายทักษะของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

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

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

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×