6.6.3 オブジェクトの処理権限

応用情報技術者試験まで残り63日。

以下のテキストを読み進めていきます。

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

 

 オブジェクトの処理権限は以下の種類がある

  • 読み取り権限
  • 削除権限
  • 挿入権限
  • 更新権限

処理権限の付与にはGRANT文を用いる。

GRANT 権限 ON 表名 TO 許可識別子

また、処理権限の取り消しをする際にはREVOKE文を用います。

6.6.2 ビューの定義

応用情報技術者試験まで残り63日。

以下のテキストを読み進めていきます。

 

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

 

 ビューとは

実表の一部、あるいは複数の表から必要な行や属性を取り出し、あたかも1つの表であるかのように見せかけた仮想表のこと。

ビューはどういうタイミングで使用されるんでしょうか???

CREATEVE VIEW文

対象となる実表からSELECT文を用いて必要な情報を導出する方法で定義される。

ビューの更新

更新にかかる実際の表が更新可能であること、

更新される表の列や行が唯一に決定できる場合に限りビューの更新が行える。

6.6.1 実表の定義

応用情報技術者試験まで残り63日。

以下のテキストを読み進めていきます。

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

 

 CREATE TABLE文

表の定義はCREATE TABLE文を用いて行う。

列制約

表を構成する列に対する制約。

  • 一意性制約
  • 参照制約
  • 検査制約
  • 非ナル制約
  • デフォルト制約

表制約

一意性制約、参照制約、検査制約は表制約とすることも出来る。

主なデータ型

  • 文字型
  • 数値型

6.5.3 その他のDML文

応用情報技術者試験まで残り63日。

以下のテキストを読み進めていきます。

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

 

INSERT文

表に行を挿入する際に用いる。挿入する値はVALUE句で指定する方法と、問い合わせの結果を全て挿入する方法がある。

省略された列の値は、DEFAULT制約が指定されていれば既定値が挿入され、そうでなければNULL値が挿入されます。

UPDATE文

表中のデータを変更する際に使用。

列の変更値を直接指定する方法と、変更値をCASE式によって決める方法、副問合せの結果を変更値とする方法がある。

DELETE文

表中の行を削除する場合に使用。

参照関係をもつ表の更新 

参照制約が設定されている場合、被参照表の主キーにない値を参照表の外部キーに追加することは出来ない。

被参照表の行を削除変更する時にどのような制約をするのかを明示的に指定することが出来ます。これを参照動作指定といいます。

  • NO ACTION
  • RESTRICT 
  • CASCADE
  • SET DEFAULT
  • SET NULL

6.5.2 SELECT文

応用情報技術者試験まで残り63日。

以下のテキストを読み進めていきます。

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

 

 SELECT文の構文

SELECT文の基本構文は以下の通りになっています。

  • SELECT (列名のリスト)
  • FROM (表名のリスト)
  • WHERE (選択条件や結合条件)
  • GROUP BY (列名のリスト)
  • HAVING (グループ選択条件)
  • ORDER BY 列名のリスト

特定行、列を取り出す

特定行を取り出す場合には、WHERE句に選択条件を記述します。

特定列を取り出す場合には、SELECT の後ろに列名を記述します。全列取り出す場合は*を指定しましょう。

選択条件として、列の値が空値であるかを記述する際には WHERE 列名 IS NULLと記述します。

値の範囲指定をしたい場合には、BETWEENを使います。

例えば、

SELECT 社員コード,社員名

FROM 社員表

WHERE 年齢 BETWEEN 24 AND 28;

 

列の値が指定された値のいずれかと等しいかを選択条件とする場合にINを使います。

そして、等しくないことを選択条件にする場合は、NOT INを使います。

重複行の排除

重複行の排除には、DISTINCT述語を使います。

出力順序を指定する

ORDER BY句を使って、特定の列の値で昇順、降順で並び替えて表示する。

降順の場合は、DESC、昇順の場合はASCを記述する。

グループ化する

取り出した行を指定した行でグループ化し、グループごとの合計や最大値を求める場合に、GROUP BYを使います。

例えば、社員表から2人以上が属する所属ごとに、所属、人数、年齢の平均を求める。

SELECT 所属,count(*), AVG(年齢)

FROM 社員表

GROUP BY 所属

HAVING COUNT(*) >= 2;

SQLでは、以下の集合関数を使用出来ます。

  • SUM(列名)
  • AVG(列名)
  • MAX(列名)
  • MIN(列名)
  • COUNT(*)
  • COUNT(列名)

結合する

JOIN ONを用いて表の結合を行えます。

表に別名をつける

FROM句で表名 AS 別名を指定することで、表名に対して別名を設定することができる。

例: 社員表にA エントリ表にBという別名をつける例

SELECT A.社員コード, 社員名

FROM 社員表 A, エントリ表 B

WHERE A.社員コード = B.社員コード

副問合せ

SELECT文のFROM句、WHERE句、HAVING句などに指定されてる入れ子になったSELECT文を副問合せという。

例:

SELECT 社員コード,社員名,年齢

FROM 社員表

WHERE 年齢 IN (SELECT 指定年齢 FROM 調査対象)

副問合せにはEXISTS述語とANY述語を使用して表すことも出来る。

6.5.1 データベース言語SQLとは

応用情報技術者試験まで残り63日。

以下のテキストを読み進めていきます。

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

 

Structured Query Languageを略してSQL

関係データベースにおける標準的な操作言語で、現在ではほとんどの関係データベース管理システムSQLを採用している。

SQLの分類

SQLには以下のような機能があります。

  • データを検索、参照する機能
  • データを操作する機能
  • データを定義する機能
  • トランザクションを制御するための機能

トランザクションってなんですか??

簡単に言うと複数のDB操作を1つにまとめた処理のことを指すようです。例えば、検索と更新を1まとまりの処理として実行するトランザクションなどが挙げられます。

データ定義言語

  • CREATE
  • DROP
  • GRANT
  • REVOKE

データ操作言語

  • SELECT
  • INSERT
  • UPDATE
  • DELETE
  • COMMIT
  • ROLLBACK
  • DECLARE CURSOR
  • OPEN
  • FETCH
  • CLONE

カーソル処理が馴染みがないな。

あとは権限付与の定義あたりが馴染みがない。

 

6.4.2 関係演算

応用情報技術者試験まで残り64日。

以下のテキストを読み進めていきます。

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

 

選択と射影

選択演算は表から指定した行を取り出す関係演算。

射影演算は表から指定した列を取り出す関係演算。

行と列がややこしくてよくわからない。

射影は縦の切り出し。

選択は横の切り出し。

結合

2つの表が共通にもつ項目で結合を行い、新しい表を作り出す演算。

重複した結合列を取り除く自然結合がある。

内結合と外結合

片方の表にしか存在しない行は取り出せない内結合、

片方の表にしか存在しない行はNULLとして結合する外結合があります。

外結合には以下の種類があります。

  • 左外結合(左の表を基準に右の表に存在しない行をNULLにする)
  • 右外結合(右の表を基準に左の表に存在しない行をNULLにする)
  • 完全外結合(片方の表のみに存在する場合もう片方をNULLとして結合)