บทช่วยสอน SQLite แบบสอบถามย่อย ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ แบบสอบถามย่อยคำสั่ง SELECT,ตัวอย่าง,แทรกคำสั่งแบบสอบถามย่อย,ตัวอย่าง,UPDATE แบบสอบถามย่อยคำสั่ง,ตัวอย่าง,แบบสอบถามย่อยคำสั่ง DELETE,ตัวอย่าง,
แบบสอบถามย่อยหรือคำสั่งที่ซ้อนกันหรือแบบสอบถามภายในจะถูกฝังอยู่ในแบบสอบถามสั่ง WHERE ภายในแบบสอบถาม SQLite อื่น
ใช้ย่อยแบบสอบถามส่งกลับข้อมูลที่จะนำมาใช้ในแบบสอบถามหลักเป็นเงื่อนไขเพื่อ จำกัด ข้อมูลที่ต้องเรียก
subqueries สามารถใช้กับ SELECT, INSERT, UPDATE และงบลบอาจจะมาพร้อมการใช้งานโดยผู้ประกอบการเช่น =, <,>,> = <=, IN ระหว่างเช่น
ต่อไปนี้เป็นหลายกฎแบบสอบถามย่อยที่ต้องปฏิบัติตาม:
subqueries จะต้องอยู่ในวงเล็บ
ข้อเลือกแบบสอบถามย่อยสามารถมีคอลัมน์หนึ่งเว้นแต่หลายคอลัมน์ในแบบสอบถามหลักเปรียบเทียบแบบสอบถามย่อยคอลัมน์ที่เลือก
ORDER BY ไม่สามารถนำมาใช้ในแบบสอบถามย่อยแม้ว่าแบบสอบถามหลักสามารถใช้ ORDER BY คุณสามารถใช้จำแนกตามกลุ่มใน subqueries ฟังก์ชั่นเช่นเดียวกับการสั่งซื้อโดย
แบบสอบถามย่อยผลตอบแทนที่มากกว่าหนึ่งบรรทัดสามารถนำมาใช้เฉพาะกับผู้ประกอบการที่มีหลายค่าเช่นผู้ประกอบการใน
ระหว่างผู้ประกอบการไม่สามารถใช้ร่วมกับคำสั่งย่อย แต่ระหว่างสามารถใช้ภายใน subqueries
แบบสอบถามย่อยมักจะใช้กับคำสั่ง SELECT ไวยากรณ์พื้นฐานจะเป็นดังนี้:
SELECT column_name [คอลัมน์] จาก table1 [Table2] WHERE OPERATOR คอลัมน์ (เลือกคอลัมน์ [คอลัมน์] จาก table1 [Table2] [WHERE])
ตาราง บริษัท สมมติว่ามีการบันทึกต่อไปนี้:
ID NAME เงินเดือนอายุที่อยู่ ---------- ---------- ---------- ---------- ---------- 1 เปาโล 32 20,000.0 แคลิฟอร์เนีย 2 อัลเลน 25 15,000.0 เท็กซัส เท็ดดี้ 3 23 นอร์เวย์ 20,000.0 4 มาร์ครวย 25-Mond 65,000.0 5 ดาวิด 27 85,000.0 เท็กซัส 6 คิม 22 ใต้ 45,000.0 ฮอลล์ 7 เจมส์ 24 ฮุสตัน 10,000.0
ตอนนี้ขอตรวจสอบคำสั่ง SELECT แบบสอบถามย่อย:
SQLite> เลือก * จาก บริษัท ที่ id In (id เลือก จาก บริษัท WHERE เงินเดือน> 45000);
นี้ก่อให้เกิดผลลัพธ์ต่อไปนี้:
ID NAME เงินเดือนอายุที่อยู่ ---------- ---------- ---------- ---------- ---------- 4 มาร์ครวย 25-Mond 65,000.0 5 ดาวิด 27 85,000.0 เท็กซัส
subqueries นอกจากนี้ยังสามารถนำมาใช้กับคำสั่ง INSERT คำสั่ง INSERT ใช้แบบสอบถามย่อยเพื่อกลับข้อมูลลงในตารางอีก ในแบบสอบถามย่อยข้อมูลที่เลือกสามารถเป็นตัวละครวันที่หรือปรับเปลี่ยนฟังก์ชั่นที่เป็นตัวเลข
ไวยากรณ์พื้นฐานจะเป็นดังนี้:
INSERT INTO table_name [(COLUMN1 [column2])] เลือก [* | COLUMN1 [column2] จาก table1 [Table2] [ที่ค่า OPERATOR]
สมมติว่าโครงสร้างของตาราง COMPANY_BKP บริษัท ฯ และ บริษัท ที่คล้ายกันและสามารถใช้สร้างตารางเดียวกันในการสร้างเพียงแค่เปลี่ยนชื่อ COMPANY_BKP ตาราง ขณะนี้คัดลอกตารางทั้ง บริษัท จะ COMPANY_BKP ไวยากรณ์เป็นดังนี้:
SQLite> INSERT INTO COMPANY_BKP * เลือกจาก บริษัท ที่ id In (id เลือก จาก บริษัท );
subqueries สามารถใช้ร่วมกับคำสั่ง UPDATE เมื่อใช้คำสั่ง UPDATE แบบสอบถามย่อยคอลัมน์เดียวหรือหลายที่มีการปรับปรุงในตาราง
ไวยากรณ์พื้นฐานจะเป็นดังนี้:
ตาราง UPDATE SET column_name = new_value [WHERE OPERATOR [VALUE] (เลือกคอลัมน์ จาก TABLE_NAME) [WHERE)]
สมมติว่าเรามีตาราง COMPANY_BKP ตารางการสำรองข้อมูล บริษัท
ตัวอย่างต่อไปนี้ของตาราง บริษัท ทุกเพศทุกวัยกว่าหรือเท่ากับ 27 ลูกค้าเงินเดือนปรับปรุงเดิม 0.50 เท่า:
SQLite> Company Update ตลาดหลักทรัพย์เงินเดือนเงินเดือน = 0.50 * WHERE วัย (SELECT อายุจาก COMPANY_BKP WHERE อายุ> = 27);
นี้จะส่งผลกระทบต่อทั้งสองสายของ บริษัท บันทึกสุดท้ายในตารางดังต่อไปนี้:
ID NAME เงินเดือนอายุที่อยู่ ---------- ---------- ---------- ---------- ---------- 1 เปาโล 32 10,000.0 แคลิฟอร์เนีย 2 อัลเลน 25 15,000.0 เท็กซัส เท็ดดี้ 3 23 นอร์เวย์ 20,000.0 4 มาร์ครวย 25-Mond 65,000.0 5 ดาวิด 27 42,500.0 เท็กซัส 6 คิม 22 ใต้ 45,000.0 ฮอลล์ 7 เจมส์ 24 ฮุสตัน 10,000.0
subqueries สามารถใช้ร่วมกับคำสั่งลบเช่นเดียวกับงบอื่น ๆ ดังกล่าวข้างต้น
ไวยากรณ์พื้นฐานจะเป็นดังนี้:
DELETE FROM TABLE_NAME [WHERE OPERATOR [VALUE] (เลือกคอลัมน์ จาก TABLE_NAME) [WHERE)]
สมมติว่าเรามีตาราง COMPANY_BKP ตารางการสำรองข้อมูล บริษัท
ตัวอย่างต่อไปนี้ลบระเบียนลูกค้ามากกว่าหรือเท่ากับอายุ 27 ตาราง บริษัท :
SQLite> ลบจาก บริษัท WHERE วัย (SELECT อายุจาก COMPANY_BKP WHERE อายุ> 27);
นี้จะส่งผลกระทบต่อทั้งสองสายของ บริษัท บันทึกสุดท้ายในตารางดังต่อไปนี้:
ID NAME เงินเดือนอายุที่อยู่ ---------- ---------- ---------- ---------- ---------- 2 อัลเลน 25 15,000.0 เท็กซัส เท็ดดี้ 3 23 นอร์เวย์ 20,000.0 4 มาร์ครวย 25-Mond 65,000.0 5 ดาวิด 27 42,500.0 เท็กซัส 6 คิม 22 ใต้ 45,000.0 ฮอลล์ 7 เจมส์ 24 ฮุสตัน 10,000.0