Sepuluh soalan ini merangkumi medan, rekod, kunci, penapis SELECT, pengumpulan Boolean dan hasil kosong. Ia bergerak daripada mudah kepada lebih sukar. Semuanya menggunakan jadual Plants rekaan yang sama, jadi tiada data peribadi sebenar.
Tulis jawapan anda dahulu, kemudian buka penyelesaian berlangkah. Uji setiap pertanyaan terhadap kelapan-lapan rekod, bukan hanya yang kelihatan sesuai.
| PlantID | Name | Type | Price | Stock | Indoor |
|---|---|---|---|---|---|
| P01 | Fern | Foliage | 12.50 | 8 | TRUE |
| P02 | Cactus | Succulent | 6.00 | 25 | TRUE |
| P03 | Rose | Flowering | 15.00 | 0 | FALSE |
| P04 | Mint | Herb | 4.50 | 40 | FALSE |
| P05 | Orchid | Flowering | 28.00 | 3 | TRUE |
| P06 | Basil | Herb | 5.00 | 12 | FALSE |
| P07 | Aloe | Succulent | 9.50 | 15 | TRUE |
| P08 | Hibiscus | Flowering | 18.00 | 6 | FALSE |
S1. Berapa medan dan berapa rekod yang ada pada jadual?
Lihat jawapan
Medan ialah lajur: PlantID, Name, Type, Price, Stock, Indoor, jadi 6 medan. Rekod ialah baris data P01 hingga P08, jadi 8 rekod. Baris tajuk bukan rekod.
S2. Medan manakah kunci utama yang paling sesuai, dan mengapa Type dan Indoor tidak sesuai?
Lihat jawapan
PlantID berbeza dalam setiap rekod dan dicipta supaya unik. Type berulang (Herb muncul dua kali) dan Indoor hanya ada dua nilai, jadi kedua-duanya tidak dapat mengenal pasti satu rekod.
S3. Beri jenis data paling sesuai untuk Price, Stock dan Indoor.
Lihat jawapan
Price: real (ada perpuluhan seperti 12.50). Stock: integer (nombor bulat). Indoor: Boolean (TRUE atau FALSE).
S4. Tulis pertanyaan yang memaparkan Name setiap herba. Beri hasilnya.
Lihat jawapan
SELECT Name
FROM Plants
WHERE Type = "Herb"
Rekod P04 dan P06 lulus. Hasil: Mint, Basil.
S5. Tulis pertanyaan untuk Name dan Price bagi tumbuhan yang kurang daripada 10, dan nyatakan berapa baris dipulangkan.
Lihat jawapan
SELECT Name, Price
FROM Plants
WHERE Price < 10
Cactus 6.00, Mint 4.50, Basil 5.00, Aloe 9.50 lulus. 4 baris.
S6. Tulis pertanyaan yang memaparkan Name setiap tumbuhan yang kehabisan stok.
Lihat jawapan
SELECT Name
FROM Plants
WHERE Stock = 0
Hanya Rose mempunyai Stock 0. Hasil: Rose.
S7. Apakah yang dipulangkan oleh pertanyaan ini?
SELECT Name FROM Plants
WHERE Indoor = TRUE AND Price >= 9.5
Lihat jawapan
Tumbuhan dalam rumah: Fern 12.50, Cactus 6.00, Orchid 28.00, Aloe 9.50. Harga sekurang-kurangnya 9.5: Fern, Orchid, Aloe lulus; Cactus gagal. Hasil: Fern, Orchid, Aloe.
S8. Tulis pertanyaan untuk Name tumbuhan dalam rumah, yang termahal dahulu, dan beri hasilnya.
Lihat jawapan
SELECT Name
FROM Plants
WHERE Indoor = TRUE
ORDER BY Price DESC
Harga tumbuhan dalam rumah: Orchid 28.00, Fern 12.50, Aloe 9.50, Cactus 6.00. Hasil: Orchid, Fern, Aloe, Cactus.
S9. Seorang pelajar mahu herba atau succulent yang berharga lebih daripada 6, tetapi menulis:
SELECT Name FROM Plants
WHERE Type = "Herb" OR Type = "Succulent" AND Price > 6
Beri baris yang sebenarnya dipulangkan, kemudian betulkan pertanyaan itu.
Lihat jawapan
AND dikira dahulu: Herb, ATAU (Succulent DAN Price > 6). Mint dan Basil lulus sebagai herba. Cactus (6.00) gagal. Aloe (9.50) lulus. Hasil sebenar: Mint, Basil, Aloe.
Pertanyaan yang dibetulkan:
SELECT Name FROM Plants
WHERE (Type = "Herb" OR Type = "Succulent") AND Price > 6
Ini memulangkan Aloe sahaja, kerana Mint, Basil dan Cactus semuanya 6 atau kurang.
S10. Terangkan mengapa pertanyaan ini tidak memulangkan baris.
SELECT Name FROM Plants
WHERE Type = "Succulent" AND Stock > 20 AND Indoor = FALSE
Lihat jawapan
Succulent ialah Cactus dan Aloe. Stock melebihi 20 meninggalkan Cactus (25) sahaja, kerana Aloe mempunyai 15. Cactus mempunyai Indoor = TRUE, jadi ia gagal Indoor = FALSE. Tiada rekod lulus ketiga-tiganya, jadi tiada baris dipulangkan. Pertanyaan itu sah, tetapi satu-satunya rekod yang lulus dua ujian gagal ujian terakhir.
Jika anda tersilap
- S1 hingga S3 (istilah, kunci, jenis): kembali ke bezakan medan, rekod dan jadual dan pilih kunci yang sesuai.
- S4 hingga S6 dan S8 (menulis penapis, mengisih): ulang kaji tulis penapis SELECT yang mudah.
- S7 dan S9 (AND, OR, kurungan): ulang kaji gabungkan syarat dengan pengumpulan Boolean yang betul.
- S10 (hasil kosong): ulang kaji terangkan mengapa pertanyaan tidak memulangkan baris.
Catat setiap kesilapan dalam log kesilapan beserta puncanya, dan cuba semula pertanyaan itu dalam makmal latihan SQL baca sahaja beberapa hari kemudian. Kembali ke gambaran keseluruhan modul untuk merancang topik seterusnya.
Jika kesilapan yang sama terus berulang, guru kami boleh membantu melalui tuisyen Computer Science dalam talian satu dengan satu.