Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Pelajaran

Terangkan mengapa pertanyaan tidak memulangkan baris

Hasil kosong bukan mesej ralat, jadi ia boleh terasa seolah-olah pertanyaan tidak memberitahu apa-apa.

Dalam halaman ini
  1. Apakah punca yang lazim?
  2. Contoh berlangkah
  3. Kesilapan yang perlu diawasi
  4. Semak sendiri
  5. Ke mana selepas ini?

Pertanyaan tidak memulangkan baris apabila tiada rekod lulus setiap syarat. Pertanyaan itu tetap berjalan dengan betul: pangkalan data hanya tidak menemui apa-apa yang sepadan.

Soalan peperiksaan meminta anda menerangkannya dengan perkataan, jadi anda perlu menunjuk sebab yang tepat. Pelajaran ini melengkapkan pangkalan data dan penaakulan pertanyaan.

Apakah punca yang lazim?

Semak mengikut susunan ini:

  1. Syarat yang tidak mungkin benar serentak. Satu medan tidak boleh sama dengan dua nilai berbeza pada masa yang sama.
  2. Nilai di luar data. Nilai yang diuji tiada dalam jadual, contohnya harga melebihi maksimum.
  3. Ejaan atau jenis tidak sepadan. "herbs" bukan "Herb", dan nombor bukan teks.
  4. AND sedangkan OR dimaksudkan. AND menuntut setiap syarat serentak.
  5. Masalah sempadan. > tidak termasuk nilai itu sendiri.

Contoh berlangkah

Menggunakan jadual Plants:

PlantIDNameTypePriceStockIndoor
P01FernFoliage12.508TRUE
P02CactusSucculent6.0025TRUE
P03RoseFlowering15.000FALSE
P04MintHerb4.5040FALSE
P05OrchidFlowering28.003TRUE
P06BasilHerb5.0012FALSE
P07AloeSucculent9.5015TRUE
P08HibiscusFlowering18.006FALSE
SELECT Name FROM Plants
WHERE Type = "Flowering" AND Indoor = TRUE AND Stock > 5

Pertanyaan tidak memulangkan baris. Mengapa?

Langkah 1, senaraikan rekod yang lulus syarat pertama. Type = “Flowering”: Rose, Orchid, Hibiscus.

Langkah 2, gunakan syarat kedua. Indoor = TRUE: Rose ialah FALSE, Orchid ialah TRUE, Hibiscus ialah FALSE. Hanya Orchid tinggal.

Langkah 3, gunakan syarat ketiga. Stock > 5: Orchid mempunyai 3, yang tidak melebihi 5. Orchid gagal.

Langkah 4, nyatakan sebab. Satu-satunya tumbuhan berbunga dalam rumah ialah Orchid, dan stoknya 3, jadi tiada rekod memenuhi ketiga-tiga syarat.

Jawapan akhir: tiada baris, kerana satu-satunya rekod yang lulus dua ujian pertama gagal ujian Stock. Menapis satu syarat pada satu masa menunjukkan dengan tepat di mana rekod terakhir tersingkir.

Kesilapan yang perlu diawasi

Kesilapan lazim ialah menjawab “jadual kosong” atau “pertanyaan ada ralat”.

Jawapan salah: “Jadual Plants tiada tumbuhan berbunga.”

Itu tidak benar: Rose, Orchid dan Hibiscus berbunga.

Pembetulan: namakan rekod yang tinggal selepas setiap syarat dan nyatakan ujian mana yang membuangnya. Menerangkan hasil tanpa baris tanpa menamakan satu syarat tidak mendapat markah.

Semak sendiri

1. Mengapa WHERE Type = "Herb" AND Type = "Succulent" tidak memulangkan apa-apa?

Lihat jawapan

Satu rekod hanya mempunyai satu nilai dalam Type, jadi ia tidak boleh menjadi Herb dan Succulent sekali gus. Syarat tidak mungkin kedua-duanya benar. OR akan memulangkan Mint, Basil, Cactus dan Aloe.

2. Mengapa WHERE Price > 28 tidak memulangkan apa-apa, dan perubahan apa yang memulangkan satu baris?

Lihat jawapan

Harga tertinggi ialah 28.00 (Orchid), dan > tidak memasukkannya. Menukar kepada >= 28 memulangkan Orchid.

3. Seorang pelajar menulis WHERE Type = "herb". Berapa baris yang dijangka, dan apa yang mungkin diperoleh?

Lihat jawapan

Mereka menjangka 2 baris (Mint, Basil). Sama ada ejaan huruf kecil sepadan bergantung pada sama ada pangkalan data mengabaikan huruf besar, jadi padankan ejaan tersimpan "Herb" dengan tepat untuk selamat.

Ke mana selepas ini?

Tamatkan modul dengan set latihan asli. Cuba kes hasil kosong dalam makmal latihan SQL baca sahaja untuk melihatnya berfungsi.

Jika anda mahu bantuan menukar penerangan seperti ini kepada jawapan peperiksaan yang jelas, lihat tuisyen Computer Science dalam talian satu dengan satu kami.

Dikemas kini:

Langkah seterusnya

Jika hasil kosong membuat anda tidak pasti sama ada pertanyaan atau data yang bermasalah, guru satu dengan satu boleh menunjukkan semakan langkah demi langkah yang boleh digunakan semula pada mana-mana soalan.

Kelas percubaan berbayar satu jam pada kadar guru yang disahkan, bermula RM80. Yuran lain, jadual dan susunan seterusnya disahkan terus bersama guru selepas kelas percubaan.

Tuisyen diatur bersama ibu bapa atau penjaga. Hantar halaman ini kepada mereka melalui WhatsApp supaya mereka boleh bertanya bagi pihak anda.

Ibu bapa atau penjaga? Tanya di sini

9,000+ pelajar telah dibantu melalui perkhidmatan kami