Kodokon kodokon.com

SELECT และ WHERE: การอ่านและการกรองข้อมูล

เรียนรู้การเลือกคอลัมน์ด้วย SELECT การกรองแถวด้วย WHERE และการค้นหาแพตเทิร์นด้วย LIKE

8 นาที · 3 คำถาม

เปิดบทเรียนนี้ใน Kodokon

หากคุณกำลังเริ่มเซสชันใหม่ ให้รันสคริปต์ CREATE TABLE + INSERT จากบทเรียนที่ 1 อีกครั้งก่อน คิวรี SELECT อ่านข้อมูลโดยไม่แก้ไขมันเลย หลังจากคำว่า SELECT คุณจะระบุรายการคอลัมน์ที่ต้องการแสดง สิ่งนี้เรียกว่า การเลือกคอลัมน์ (projection) หลังจาก FROM คุณจะระบุตารางที่ต้องการอ่าน

SQL
SELECT title, price FROM books;
การเลือกคอลัมน์: เฉพาะคอลัมน์ title และ price

หากต้องการเก็บเฉพาะ แถว บางแถว ให้เพิ่มประโยค WHERE ตามด้วยเงื่อนไข เงื่อนไขจะเปรียบเทียบคอลัมน์กับค่าหนึ่งโดยใช้ ตัวดำเนินการ (operator) ได้แก่ = (เท่ากับ), <> หรือ != (ไม่เท่ากับ), < (น้อยกว่า), > (มากกว่า), <= และ >= ข้อควรจำ ค่าที่เป็นข้อความต้องเขียนอยู่ในเครื่องหมายอัญประกาศเดี่ยว

SQL
SELECT * FROM books WHERE genre = 'sf';

SELECT title, year FROM books WHERE year < 1950;
คิวรีแรกคืน 4 แถว คิวรีที่สองก็คืน 4 แถวเช่นกัน

คุณสามารถรวมหลายเงื่อนไขเข้าด้วยกันได้ AND กำหนดให้ทั้งสองเงื่อนไขต้องเป็นจริง OR กำหนดให้อย่างน้อยหนึ่งเงื่อนไขเป็นจริง และ NOT กลับค่าของเงื่อนไข เมื่อไม่แน่ใจเรื่องลำดับความสำคัญ ให้เพิ่มวงเล็บเข้าไป

SQL
SELECT title, price FROM books
WHERE genre = 'sf' AND price < 8;

SELECT title FROM books
WHERE genre = 'conte' OR genre = 'aventure';
AND: 2 แถว (1984, Les Robots); OR: 3 แถว

สุดท้าย ตัวดำเนินการ LIKE เปรียบเทียบข้อความกับ แพตเทิร์น (pattern) โดยอักขระแทน % แทนลำดับอักขระใด ๆ (แม้กระทั่งลำดับว่างเปล่า) และ _ แทนอักขระหนึ่งตัวพอดี ตัวอย่างเช่น 'D%' หมายถึง "ขึ้นต้นด้วย D" และ '%an%' หมายถึง "มี an อยู่ในข้อความ"

SQL
SELECT title FROM books WHERE author LIKE 'A%';

SELECT title FROM books WHERE title LIKE 'd%';

SELECT author FROM books WHERE author LIKE 'V_rne';
ผู้แต่งที่ขึ้นต้นด้วย A, ชื่อเรื่องที่ขึ้นต้นด้วย d, จากนั้น Verne

ทดสอบความรู้

ตรวจสอบว่าคุณจำประเด็นสำคัญของบทเรียนนี้ได้ครบถ้วน

  1. คิวรีใดแสดงเฉพาะชื่อเรื่องของหนังสือ?
    • SELECT * FROM books;
    • SELECT title FROM books;
    • SELECT books FROM title;
  2. เงื่อนไข WHERE price < 7 คืนอะไร?
    • แถวที่มีราคาน้อยกว่า 7 อย่างเข้มงวด
    • แถวที่มีราคาเท่ากับ 7 พอดี
    • 7 แถวแรกของตาราง
  3. แพตเทิร์น LIKE 'D%' จับคู่กับอะไร?
    • ข้อความที่มีตัวอักษร D อยู่
    • ข้อความที่ลงท้ายด้วย D
    • ข้อความที่ขึ้นต้นด้วย D