サンプル問題/例題解説(Ver.2.0)004_Silverの例題解説「開発/SQL」(Ver.2.0)Silverの例題解説「開発/SQL」(Ver.2.0)ツイートこのページではメルマガで紹介した例題のアーカイブを試験のレベルごとにまとめています。OSS-DBの学習にお役立てください。修正等により、例題番号が連番ではない場合がございます。3.80ビュー(VIEW)に関する説明として適切なものを1つ選びなさい。検索を高速化するため、ビューにインデックスを作成することができる。ビューから検索する方が、その元となるテーブルから検索するより高速である。VIEWコマンドでビューの定義を変更するとき、ビューに列を追加することはできるが、減らすことはできない。ビューを定義するSELECT文のFROM句にはテーブルのみを記述することができ、ビューを含めることはできない。テーブルをJOINにより表結合することはできるが、ビューとビューを表結合することはできない。3.79id列を主キーとするテーブルを作成する正しい方法を2つ選びなさい。3.78PostgreSQLのデータ型の説明として適切なものを1つ選びなさい。INTEGERは10桁までの整数を扱うことができるので、NUMERIC(10)と宣言しても同じである。6)と宣言しても同じである。15)と宣言しても同じである。INTEGERの演算はNUMERICより高速なので、値が必ず整数になるなら、NUMERICではなくINTEGERを使うべきである。REAL型の0.1とNUMERIC型の0.1について同値比較(a=bという形式の比較)をしたとき、その結果がtrueになるとは期待できない。3.77テーブル定義に関わらず、必ずエラーになる文を2つ選びなさい。3.76以下の一連のSQL文でテーブルを作成し、データを挿入、更新した。sample;最後のSELECT文が返す値は何か。'XXX');の2つの方法があるが、一般的には2番目の方法が良い習慣であるとされる。その理由としてもっとも適切なものを2つ選びなさい。PostgreSQL以外の一般的なリレーショナルデータベースにおけるSQLも考慮に入れて解答すること。複数行のデータを挿入する場合、2番目の方法でないと正常に実行できない。列のデータ型が変更された時、2番目の方法でないと正常に実行できない。テーブルに列が追加された時、2番目の方法でないと正常に実行できない。テーブルの列の順序が変更された時、2番目の方法でないと正常に実行できない。テーブルに制約が追加された時、2番目の方法でないと正常に実行できない。3.74次のSQL文でテーブルを作成し、10行のデータを挿入した。INTEGER);ここで、次のSELECT文を実行したが、9行しか返されなかった。0;10行を挿入したはずなのに、合わせて9行しかないのはなぜか。以下の空欄に入る言葉を答えよ。valの値が_____である行があるから。3.73PostgreSQLのトランザクション分離レベルの説明として、適切なものを2つ選びなさい。Uncommittedでは、他のトランザクションが更新した後、まだcommitしていないデータを読めてしまう。Committedでは、トランザクション内で同じSELECT文を2回続けて実行しても、異なる結果が返されることがある。Readでは、トランザクション内で同じSELECT文を2回続けて実行したら、必ず同じ結果が返される。Serializableは読み取りトランザクション専用の分離レベルである。3.72以下の一連のSQL文を実行した後、テーブルtestには何行のデータがあるか。3.71現在時刻のうち、分の部分を取り出す(今が10時25分40秒だとして、25を返す)関数記述として、適切なものを2つ選びなさい。3.70テーブルtblの列str1とstr2はいずれもTEXT型である。str1の先頭の1文字とstr2を結合する、例えばstr1が’ABC’、str2が’XYZ’なら’AXYZ’という文字列を取得するには、次のSQLの空欄に何を入れれば良いか。tbl;適切なものを2つ選びなさい。3.69人の名前が格納されたテーブルnamesから、姓をselectしたところ、以下のように大文字・小文字の表記が統一されていないデータが混在していた。names;last---------smithRICEJohnsonJohnsonのように、先頭は大文字、他の文字を小文字にするにはどうしたら良いか。以下のSELECT文の空欄2箇所に入る関数名を答えよ。3.6810を3で割り算した時の剰余(余り、この場合は1になる)を求めるものとして、適切なものをすべて選びなさい。3.67以下の一連のSQL文を実行した。test;最後のSELECT文が返す値は何か。3.66テーブルbankと関数tf1を定義した。SQL;関数tf1について、以下の説明から適切なものを2つ選びなさい。テーブルbankの列balanceの値を変更し、変更前のbalanceの値を返す。テーブルbankの列balanceの値を変更し、変更後のbalanceの値を返す。指定したaccountnoがテーブルbankに存在しない場合はエラーが発生する。指定したaccountnoがテーブルbankに存在しない場合は0(ゼロ)を返す。指定したaccountnoがテーブルbankに存在しない場合はNULLを返す。3.65ユーザfooが以下のコマンドを順次実行した。最後のSELECT文が返す結果として正しいものを1つ選びなさい。TABLEやINSERTはエラーにならず、正常に実行されたものとする。