1.やさしい
テーブルから行を削除する文はどれですか?
- ADELETE
- BREMOVE
- CDROP
- DTRUNCATE COLUMN
2.やさしい
既存のテーブルに新しい列を追加する文はどれですか?
- AINSERT COLUMN
- BUPDATE TABLE
- CALTER TABLE
- DCREATE COLUMN
3.やさしい
PostgreSQL と MySQL で、結果の最初の 10 行だけを返す句はどれですか?
- AMAX 10
- BLIMIT 10
- CFIRST 10 ONLY
- DTOP ROWS 10
4.ふつう
SQL インジェクション(SQL injection)とは何ですか?
- Aユーザー入力によって SQL クエリの構造が変えられてしまう攻撃
- Bデータベースのバックアップ手法
- C1 つの INSERT 文で多数の行を高速に挿入する方法
- Dインデックスを追加する方法
5.ふつう
関係代数で、選択演算子(σ)はどの SQL の句に対応しますか?
- ASELECT リスト
- BWHERE
- CGROUP BY
- DORDER BY
6.ふつう
一度も注文したことのない顧客を一覧にするクエリはどれですか?
- ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
- CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
- DSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
7.むずかしい
SELECT dept, name, COUNT(*) FROM emp GROUP BY dept が標準 SQL で無効なのはなぜですか?
- AGROUP BY にはテーブルのすべての列を並べなければならないから
- Bdept は集約関数の中に入れなければならないから
- CCOUNT(*) は GROUP BY と一緒に使えないから
- Dname はグループ化も集約もされておらず、グループごとに 1 つの値を持たないから
8.むずかしい
役に立つインデックスのない 2 つの大きなテーブルの等価結合で、オプティマイザがよく選ぶ結合アルゴリズムはどれですか?
- Aハッシュ結合
- B交差結合
- C主キーでのビットマップ結合
- Dインデックス検索を伴うネステッドループ結合
解答
- 1. A · DELETE
- 2. C · ALTER TABLE
- 3. B · LIMIT 10
- 4. A · ユーザー入力によって SQL クエリの構造が変えられてしまう攻撃
- 5. B · WHERE
- 6. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- 7. D · name はグループ化も集約もされておらず、グループごとに 1 つの値を持たないから
- 8. A · ハッシュ結合
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。