1.Mudah
Apakah yang dilakukan oleh GROUP BY dalam pertanyaan?
- AMencantumkan dua jadual pada lajur sepunya
- BMenyusun baris hasil mengikut abjad
- CMeletakkan baris dengan nilai sama ke dalam kumpulan supaya agregat dikira bagi setiap kumpulan
- DMembuang baris dengan nilai NULL
2.Mudah
Penyataan manakah yang menambah lajur baharu pada jadual sedia ada?
- AALTER TABLE
- BCREATE COLUMN
- CUPDATE TABLE
- DINSERT COLUMN
3.Mudah
Apakah yang dilakukan oleh WHERE country IN ('NL', 'BE', 'DE')?
- AMengekalkan baris yang negaranya sama dengan mana-mana nilai dalam senarai
- BMengekalkan baris yang nilai negaranya mengandungi ketiga-tiga kod sekali gus
- CMenyusun baris mengikut urutan senarai
- DMengekalkan baris yang negaranya tiada dalam senarai
4.Sederhana
Pertanyaan manakah yang memulangkan bilangan pesanan bagi setiap pelanggan?
- ASELECT DISTINCT COUNT(*) FROM orders
- BSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
- CSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
- DSELECT customer_id FROM orders WHERE COUNT(*) > 0
5.Sederhana
Pertanyaan manakah yang memulangkan gaji tertinggi dalam setiap jabatan?
- ASELECT dept, salary FROM emp WHERE salary = MAX(salary)
- BSELECT dept, MAX(salary) FROM emp ORDER BY dept
- CSELECT dept, MAX(salary) FROM emp GROUP BY dept
- DSELECT MAX(dept), salary FROM emp GROUP BY salary
6.Sederhana
Mengapakah jadual hanya boleh mempunyai satu indeks berkelompok (clustered)?
- AIndeks berkelompok menggunakan terlalu banyak memori
- BIndeks berkelompok hanya boleh pada kunci utama
- CBaris hanya boleh disimpan secara fizikal dalam satu urutan
- DPiawai SQL melarang lebih daripada satu indeks pada sesuatu jadual
7.Sukar
Mengapakah banyak DBMS menggunakan penguncian dua fasa ketat, memegang kunci eksklusif sehingga komit?
- AIa menjadikan kebuntuan mustahil
- BIa mencegah pembatalan berlata (cascading abort), kerana tiada sesiapa boleh membaca penulisan belum komit
- CIa menghapuskan keperluan untuk log transaksi
- DIa membolehkan transaksi membaca data kotor dengan selamat
8.Sukar
Jadual mempunyai sejuta baris dan lajur Boolean is_active yang TRUE untuk 95% daripadanya. Mengapakah pengoptimum mungkin mengabaikan indeks pada is_active untuk WHERE is_active = TRUE?
- ATRUE dianggap NULL oleh indeks
- BKebanyakan baris sepadan, maka imbasan jadual penuh lebih murah daripada banyak carian indeks
- CIndeks tidak boleh dicipta pada lajur Boolean
- DPengoptimum tidak pernah menggunakan indeks dalam klausa WHERE
Kunci jawapan
- 1. C · Meletakkan baris dengan nilai sama ke dalam kumpulan supaya agregat dikira bagi setiap kumpulan
- 2. A · ALTER TABLE
- 3. A · Mengekalkan baris yang negaranya sama dengan mana-mana nilai dalam senarai
- 4. B · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
- 5. C · SELECT dept, MAX(salary) FROM emp GROUP BY dept
- 6. C · Baris hanya boleh disimpan secara fizikal dalam satu urutan
- 7. B · Ia mencegah pembatalan berlata (cascading abort), kerana tiada sesiapa boleh membaca penulisan belum komit
- 8. B · Kebanyakan baris sepadan, maka imbasan jadual penuh lebih murah daripada banyak carian indeks
Penyelesaian langkah demi langkah yang lengkap: berlatih topik ini di examproblems.com.