เลือกข้อมูลด้วย SELECT

สำหรับข้อมูลที่ใช้จะใช้ข้อมูลตามนี้ ขอตั้งชื่อตารางว่า application

id name category developer year
1 Windows OS Microsoft 1985
2 OS X OS Apple Inc. 2001
3 Microsoft Office Office Suite Microsoft 1990
4 Libre Office Office Suite The Document Foundation 2011
5 Adobe Photoshop Graphic Editor Adobe 1990
6 GIMP Graphic Editor The GIMP Development Team 1996

การนำข้อมูลมาแสดงจะใช้ SELECT ... FROM ... เป็นหลัก โดยอาจจะกำหนดเงื่อนไขผ่านทาง WHERE (ที่จริงแล้วคำสั่ง SQL จะใช้ตัวพิมพ์เล็ก หรือตัวพิมพ์ใหญ่ก็ให้ผลเหมือนกัน เพียงแต่ใช้ตัวพิมพ์ใหญ่จะอ่านได้เข้าใจง่ายกว่า)

    SELECT *
    FROM application

ผลที่ได้จะเหมือนกับตารางด้านบน คือ เอาข้อมูลทุกอย่างมาแสดง

    SELECT name,year
    FROM application

อันนี้เลือกเอาจะเฉพาะคอลัมภ์ name กับ year มาแสดง

name year
Windows 1985
OS X 2001
Microsoft Office 1990
Libre Office 2011
Adobe Photoshop 1990
GIMP 1996
    SELECT DISTINCT category
    FROM application

อันนี้จะแสดงข้อมูลที่ไม่ซ้ำกันเท่านั้น ที่ซ้ำตัดทิ้งไป อาจะใช้หาว่า ลูกค้าของบริษัทเป็นคนจังหวัดใดบ้าง เป็นต้น

category
OS
Office Suite
Graphic Editor
Graphic Editor

แต่ถ้าหากจะกำหนดเงื่อนไขว่าเอาข้อมูลที่มีอย่างนั้นอย่างนี้จะต้องใช้ WHERE เข้าช่วย โดยใช้การเปรียบเทียบทั่ว ๆ ไป รวมทั้ง BETWEEN (ระหว่างค่า 2 ค่า) LIKE (ค้นหาโดยใช้ pattern) และ IN (ข้อมูลในคอลัมภ์เป็นค่าใดค่าหนึ่งในนี้)

หมายเหตุ: สำหรับการเปรียบเทียบ ไม่เท่ากับ ระบบฐานข้อมูลบางตัวใช้ <> แต่บางตัวใช้ !=

    SELECT *
    FROM application
    WHERE year >= 2000

ผลที่ได้คือ จะแสดงเฉพาะแอพที่เปิดตัวตั้งแต่ปี 2000 ขึ้นไป

id name category developer year
2 OS X OS Apple Inc. 2001
4 Libre Office Office Suite The Document Foundation 2011

หากจะให้ค้นหาข้อมูลจาก 2 คอลัมภ์ จะต้องใช้ AND (และ) หรือ OR (หรือ) เพิ่มต่อจาก WHERE

    SELECT *
    FROM application
    WHERE year < 2000
    AND category = 'OS'

หมายเหตุ: ถ้าสังเกต จะเห็นว่า การเปรียบเทียบ เท่ากับ ใน SQL จะ ใช้เครื่องหมายเท่ากับเพียงอันเดียว แทนที่จะเป็นสองอันแบบหลาย ๆ ภาษา

ผลที่ได้คือ แสดงข้อมูลจะเฉพาะที่ปีต่ำกว่า 2000 และอยู่ในหมวด OS เท่านั้น

id name category developer year
1 Windows OS Microsoft 1985

หากพบว่า ข้อมูลที่อยู่ในฐานข้อมูลเรียงไม่ถูกใจ สามารถสั่งเรียงข้อมูลใหม่ได้โดยผ่าน ORDER BY

    SELECT name,category,developer,year
    FROM application
    ORDER BY year ASC

ผลที่ได้คือ ข้อมูลที่ได้จะเรียงตามปีจากน้อยไปหามาก (ASC) แต่ถ้าจะให้เรียงจากมากไปหาน้อยจะใช้ DESC

name category developer year
Windows OS Microsoft 1985
Microsoft Office Office Suite Microsoft 1990
Adobe Photoshop Graphic Editor Adobe 1990
GIMP Graphic Editor The GIMP Development Team 1996
OS X OS Apple Inc. 2001
Libre Office Office Suite The Document Foundation 2011

สำหรับข้อมูลในฐานข้อมูลนั้นจะยังคงเรียงอยู่เหมือนเดิม คำสั่งนี้ใช้เฉพาะการดึงข้อมูลมาแสดงเท่านั้น ถ้าลองสั่ง SELECT * FROM application ดู ผลจะได้เหมือนกับตาราางแรกสุด

ถ้าสังเกตดูภาษา SQL จะอ่านเข้าใจง่าย และคล้ายภาษาอังกฤษมาก

blog comments powered by Disqus