DMLを使用した表の管理

□NULLを設定する際謝ったinsert文を選ぶ。

<MEMBER表>

mID mName age

A.  insert into member (mID, age) values(10, 17);

B.  insert into member values(10, ,17);

C.  insert into member values(10, NULL, 17);

D.  insert into member values(10, DEFAULT 17);

 

【解答】;

構文:INSERT INTO 表名[列名,列名…] VALUES (値,値…)

INSERT文でNULLを設定する方法には3つある。

・列リスト内の列指定を省略する。

・VALUE句でNULLを指定する。

・列のデフォルトがNULLの場合、DEFAULTキーワードで列のデフォルト値を指定する。

 

□UPDATE文に関する説明として正しいものを選ぶ。

A. WHERE句を省略すると一件も更新されない。

B. SET句では1つの列しか指定できない。

C. SET句では別表を参照する副問い合わせを使用できない。

D. 1つのUPDATE文で複数行を更新できる。

 

【解答】;

構文:UPDATE 表名 SET 列名=値[,列名=値…] [where 条件];

・同時に複数行更新できる。

・WHERE句を省略するとすべての行が更新される。

・SET句を使用して、別表に基づく行の更新を行う事もできる。

・SET句を使用して、複数列を更新する事ができる。

 

□Member表から全データを削除するDELLETE文として正しいもの(2つ)

A. delete Member;

B. delete * from Member;

C. delete from Member where 1 <> 2;

D. delete from Member where 1 = 2;

 

【解答】;

構文:DELETE [FROM] 表名 [WHERE 条件];

・同時に複数行削除できる。

・WHERE句を省略するとすべての行を削除する。

・WHERE句を使用すると、条件に一致した行のみ削除する。

・条件に一致する行がない場合は、0行削除のメッセージが表示される(エラーではない)。

 

AはWHEREの省略形で正しい。Cも常に条件が正しくなるので全行削除される。

 

□行の削除を行う場合、DELETE文ではなくTRANCATE文を使う必要がある場合はどのような時か?

A. 削除した行をロールバックする。

B. 一部の行を削除する。

C. 削除トリガーを起動する。

D. 他のオブジェクトのために、ディスクスペースをあける。

 

【解答】;

構文:TRANCATE TABLE 表名 [CASCADE];

・表からすべての行を削除する

・DDL文なので削除できないが、ロールバック情報を生成しないので、DELETE文を使用するより処理が早い。

・表が使用していた領域は、解放され他のオブジェクトで最利用可能となる。

・削除トリガー(データベース内に格納され、イベント時に暗黙的に実行されるプロシージャ)を起動しない。

・FOREIGN KEY(参照整合性)制約の親表を切り捨てる事ができない。ただし、ON DELETE CASCADEオプションを指定したFOREIGN KEY制約の場合のみ、CASCADEキーワードを使用して、親表を切り捨てできる。

 

□トランザクションが終了しないイベントはどれか(2つ)

A. COMMIT文の実行

B. SAVAPOINT文の実行

C. 「ROLLBACK TO セーブポイント名;」の実行

D. DDL文の実行

E ユーザによるSQL Developerの終了

F. マシン障害またはシステムクラッシュ

G. DCL文の実行

 

【解答】
・トランザクションとは、関連する更新を行うDML文の集まり。

以下の場合にトランザクションは終了する。

・COMMIT文、ROLLBACK文が実行時。

・DDL文、DCL文の実行時暗黙的にCOMMITが実行される。

・SQL*PlusおよびSQL Developerなどのデータベースを更新しているアプリケーションの終了時

・システムクラッシュ時

 

セーブポイントとは、1つのトランザクションの中で部分的にロールバックするための機能。SAVEPOINT文でセーブポイントを設定し、「ROLL BACK TO セーブポイント名;」でセーブポイントまでロールバックする。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>