| 練習問題 (1): | PostgreSQLバージョン8.0で追加された機能として適切なものを2つ選びなさい。
|
|
| 1. 情報スキーマ
|
|
| 2. テーブルスペース |
|
| 3. ポイントインタイムリカバリ |
|
| 4. 正規表現 |
|
| 5. 二相コミット |
|
|
| 練習問題 (2): | 新しいデータベースクラスタを作成するコマンドを選びなさい。
|
|
| 1. createdb
|
|
| 2. clusterdb |
|
| 3. initdb |
|
| 4. pg_ctl |
|
| 5. vacuumdb |
|
|
| 練習問題 (3): | 作成直後のテーブルsampleを全てのユーザから読み取り可能にしたい。
適切なSQL文を選びなさい。
|
|
| 1. ALLOW SELECT ON sample TO ALL;
|
|
| 2. ALLOW SELECT ON sample TO ANY; |
|
| 3. GRANT SELECT ON sample TO PUBLIC; |
|
| 4. GRANT sample SET 'r' FROM ALL; |
|
| 5. UPDATE tables SET acl = acl || ',=r/*' WHERE tblname = 'sample'; |
|
|
| 練習問題 (4): | データベースbookstoreのバックアップをテキストモードでファイルbackup.sqlに取りたい。適切なコマンドを2つ選びなさい。
postgresは管理者ユーザであるものとする。
|
|
| 1. pg_dump -U postgres bookstore > backup.sql
|
|
| 2. pg_dump -U postgres -f backup.sql bookstore |
|
| 3. pg_dump -U postgres -Ft bookstore |
|
| 4. psql -U postgres bookstore > backup.sql |
|
| 5. psql -U postgres --dump bookstore > backup.sql |
|
|
| 練習問題 (5): | 次のコマンドで何が行われるか、該当する適切な内容を2つ選びなさい。
ただし $ はコマンドプロンプトである。
$ vacuumdb -az
|
|
| 1. 全てのデータベースで不要領域の回収が実行される
|
|
| 2. 全てのデータベースでディスク使用量を縮小する。 |
|
| 3. 全てのデータベースでテーブルが処理中の間、アクセス不能になる。 |
|
| 4. 全てのデータベースで各テーブル内容の統計情報が収集される。 |
|
| 5. データベースクラスタが初期化される。 |
|
|
| 練習問題 (6): | 以下のSQL文でテーブル定義をした。
CREATE TABLE employee (
id INTEGER NOT NULL,
name VARCHAR(10),
photo BYTEA
);
以下のINSERT文のうち、エラーになるものを2つ選びなさい。
|
|
| 1. INSERT INTO employee VALUES (1, '', $$27$$);
|
|
| 2. INSERT INTO employee VALUES (-1, NULL, ''); |
|
| 3. INSERT INTO employee VALUES (99999, 'ERROR CASE !', '\\011\\001'); |
|
| 4. INSERT INTO employee (name) VALUES ('Tom'); |
|
| 5. INSERT INTO employee SELECT * FROM employee; |
|
|
| 練習問題 (7): | 以下のSQL文について適切な記述を2つ選びなさい。
CREATE FUNCTION f(BOOLEAN)
RETURNS SETOF TEXT LANGUAGE sql CALLED ON NULL INPUT
AS 'SELECT v FROM t WHERE f = $1 ORDER BY id;';
|
|
| 1. SQLによるユーザ定義関数を定義している。
|
|
| 2. 引数にNULLを与えて関数fを実行すると必ずNULLが返る。 |
|
| 3. 複数行が返る関数である。 |
|
| 4. 関数f(BOOLEAN)が既に存在するとき、上記SQLを実行すると関数定義が上書きされる。 |
|
| 5. この関数定義をするにはあらかじめ手続き言語の登録がされている必要がある。 |
|
|
| 練習問題 (8): | 以下のSQLを実行した。結果の値として適切なものを1つ選びなさい。
SELECT lower(substring('\\1980E' from 2 for 4));
|
|
| 1. 1980
|
|
| 2. \198 |
|
| 3. 80 |
|
| 4. 0E |
|
| 5. 実行するとエラーになる |
|
|
| 練習問題 (9): | 次のCREATE TABLE文で定義されたテーブルscoreがある。
CREATE TABLE score (
id int PRIMARY KEY,
gid text,
score int
);
以下のうちエラーになるSQLを1つ選びなさい。
|
|
| 1. SELECT avg(score), gid FROM score;
|
|
| 2. SELECT max(id), min(gid) FROM score; |
|
| 3. SELECT max(score) FROM score GROUP BY gid; |
|
| 4. SELECT gid FROM score GROUP BY gid; |
|
| 5. SELECT gid, count(*) FROM score GROUP BY gid; |
|
|
| 練習問題 (10): | テーブルitemsは以下のような内容である。
列noはINTEGER型、列i_codeはTEXT型である。
no | i_code
---+-----------
1 | X-12345-1
2 | A-67890-4
以下のSQLを順次実行した後のテーブルitemsの行数を選びなさい。
BEGIN;
INSERT INTO items VALUES (3, 'B-66666-6');
SAVEPOINT sp1;
DELETE FROM items WHERE no = 2;
ROLLBACK TO sp1;
DELETE FROM items WHERE no = 1;
COMMIT;
|
|
| 1. 0
|
|
| 2. 1 |
|
| 3. 2 |
|
| 4. 3 |
|
| 5. 4 |
|
|
|
|