1.Mudah
Penyataan seperti CREATE, ALTER dan DROP tergolong dalam bahagian SQL yang mana?
- ATransaction Control Language (TCL)
- BData Definition Language (DDL)
- CData Manipulation Language (DML)
- DData Control Language (DCL)
2.Mudah
Apakah kunci pengganti (surrogate key)?
- APengecam buatan tanpa makna perniagaan, seperti id auto-tokokan
- BKunci yang hanya digunakan dalam view
- CKunci yang dibuat daripada data dunia sebenar seperti alamat e-mel
- DKunci yang merujuk jadual lain
3.Mudah
Apakah yang dilakukan oleh ROLLBACK dalam transaksi?
- AMemadam jadual
- BMenyimpan semua perubahan transaksi secara kekal ke cakera
- CMembuat asal perubahan yang dibuat sejak transaksi bermula
- DMengulang penyataan terakhir
4.Sederhana
LEFT JOIN memulangkan:
- AHanya baris sepadan daripada kedua-dua jadual
- BSemua baris daripada jadual kiri dan baris sepadan daripada kanan, dengan NULL di mana tiada padanan
- CSemua baris daripada jadual kanan sahaja
- DBaris yang tidak sepadan dalam kedua-dua jadual
5.Sederhana
Apakah yang dipulangkan oleh SELECT name, CASE WHEN grade >= 5.5 THEN 'pass' ELSE 'fail' END FROM results?
- ASetiap nama dengan label 'pass' atau 'fail' bergantung pada gred
- BBilangan pelajar yang lulus dan gagal
- CRalat kerana CASE tidak dibenarkan dalam SELECT
- DHanya pelajar yang lulus
6.Sederhana
Pertanyaan manakah yang memulangkan bilangan bandar berbeza dalam jadual customers?
- ASELECT DISTINCT COUNT(city) FROM customers
- BSELECT COUNT(DISTINCT city) FROM customers
- CSELECT SUM(DISTINCT city) FROM customers
- DSELECT COUNT(city) FROM customers GROUP BY city
7.Sukar
Transaksi T1 mengunci baris A dan menunggu baris B, manakala T2 mengunci baris B dan menunggu baris A. Apakah yang dilakukan oleh DBMS biasa?
- AMenggabungkan dua transaksi menjadi satu
- BMembiarkan kedua-dua transaksi menunggu sehingga salah satu daripadanya commit dengan normal
- CMengkomit kedua-dua transaksi serentak
- DMengesan kebuntuan (deadlock) dan membatalkan satu transaksi sebagai mangsa
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?
- AIndeks tidak boleh dicipta pada lajur Boolean
- BTRUE dianggap NULL oleh indeks
- CPengoptimum tidak pernah menggunakan indeks dalam klausa WHERE
- DKebanyakan baris sepadan, maka imbasan jadual penuh lebih murah daripada banyak carian indeks
Kunci jawapan
- 1. B · Data Definition Language (DDL)
- 2. A · Pengecam buatan tanpa makna perniagaan, seperti id auto-tokokan
- 3. C · Membuat asal perubahan yang dibuat sejak transaksi bermula
- 4. B · Semua baris daripada jadual kiri dan baris sepadan daripada kanan, dengan NULL di mana tiada padanan
- 5. A · Setiap nama dengan label 'pass' atau 'fail' bergantung pada gred
- 6. B · SELECT COUNT(DISTINCT city) FROM customers
- 7. D · Mengesan kebuntuan (deadlock) dan membatalkan satu transaksi sebagai mangsa
- 8. D · 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.