データベーススペシャリスト(整合性機能、表定義・ビュー定義と権限)
今回もSQLなんですが、DDLの部分になります。
今日も張り切って行ってみます。
1:整合性機能
データベース中のデータ整合性を維持する。
・表制約定義、列制約定義
CONSTRAINT 制約名
・NOT NULL制約(非ナル値制約)
列名 NOT NULL
列の値としてナル値をもつことを許さない定義
・一意性制約(UNIQUE)
UNIQUE 列名
列の値が表の中で一意になるように制約する。
・主キー制約(PRIMARYKEY)
PRIMERY KEY 列名
表の主キーを定義する。一意性制約+NOTNULL制約を指定したのと
同じ効果がある。=>行を一意に識別する。
・参照制約(REFERENCES)
FOREIGM KEY 列名 REFERENCES 表名
REFERENCESの後に指定した表のキー
・参照制約での参照被トリガ動作
ON UPDATE 参照動作
ON DELETE 参照動作
・表検査制約(CHECK)
CHECK(条件)
条件を満たしていなければ行挿入できない。
・定義域制約(DOMAIN)
CREATE DOMAIN 定義域名 AS データ型
該当の列に入力できる条件を定義することができる。
・表明(ASSERTION)
CREATE ASSERTION 制約名 CHECK(探索条件)
表に制約条件をかける際に使用する。
よく分からないけど・・・。例えば予算表とかいうテーブルに
前年を超える予算しか登録できない様にするというケースで使う。
・列の既定値
DEFAULT
列の既定値をセットする。DEFAULT句を設定しないとNull値が入る。
・トリガ
CREATE TRIGGER トリガ名
ON 表名
被トリガSQL文
別のテーブルや列を更新したりする動作を定義する。
値の更新前や更新後の動作を定義する。
・その他の整合性用語
外部キー制約:参照制約と同義
形式制約:桁数や型の制約
更新制約:データ更新時に条件を満たす値を持つように制約する。
存在制約:あるデータが存在するためには別のデータが必要という
ような制約のこと。
2:表定義、ビュー定義と権限
・スキーマと表と権限の関係
次数:表中の列の数
基数:表中の行の数
・表定義
CREATE TABLE 表(列 データ型)
テーブルを作成する。
・ビュー定義
CREATE VIEW 表(列) AS 問合せ式
ビュー(参照表)を作成する。
以下の場合は更新可能なビューとはならない。
・権限定義
権限を与える
GRANT 権限 ON 表 TO ユーザ名
自分が持っている権限であれば別のユーザに付与できる
権限を剥奪する
REVOKE 権限 ON 表 FROM ユーザ名
以下が権限の種類
DDLはあんまり利用する機会がないので馴染みが薄い。
ACCESSとかGUIのツールを使うと
「CREATE TABLE~」なんて打つ機会も少ないですね。
「CREATE VIEW~」は結構使うかもしれないですが、
アプリ開発でDDL使う機会なんてほとんどないもんな~。
◆メモ
http://itref.fc2web.com/oracle/sql.html
http://www.bnote.net/mysql/appendix_sql.shtml
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19201-02/clauses.html
http://thinkit.co.jp/article/1057/1
今日も張り切って行ってみます。
1:整合性機能
データベース中のデータ整合性を維持する。
・表制約定義、列制約定義
CONSTRAINT 制約名
・NOT NULL制約(非ナル値制約)
列名 NOT NULL
列の値としてナル値をもつことを許さない定義
・一意性制約(UNIQUE)
UNIQUE 列名
列の値が表の中で一意になるように制約する。
・主キー制約(PRIMARYKEY)
PRIMERY KEY 列名
表の主キーを定義する。一意性制約+NOTNULL制約を指定したのと
同じ効果がある。=>行を一意に識別する。
・参照制約(REFERENCES)
FOREIGM KEY 列名 REFERENCES 表名
REFERENCESの後に指定した表のキー
・参照制約での参照被トリガ動作
ON UPDATE 参照動作
ON DELETE 参照動作
・表検査制約(CHECK)
CHECK(条件)
条件を満たしていなければ行挿入できない。
・定義域制約(DOMAIN)
CREATE DOMAIN 定義域名 AS データ型
該当の列に入力できる条件を定義することができる。
・表明(ASSERTION)
CREATE ASSERTION 制約名 CHECK(探索条件)
表に制約条件をかける際に使用する。
よく分からないけど・・・。例えば予算表とかいうテーブルに
前年を超える予算しか登録できない様にするというケースで使う。
・列の既定値
DEFAULT
列の既定値をセットする。DEFAULT句を設定しないとNull値が入る。
・トリガ
CREATE TRIGGER トリガ名
ON 表名
被トリガSQL文
別のテーブルや列を更新したりする動作を定義する。
値の更新前や更新後の動作を定義する。
・その他の整合性用語
外部キー制約:参照制約と同義
形式制約:桁数や型の制約
更新制約:データ更新時に条件を満たす値を持つように制約する。
存在制約:あるデータが存在するためには別のデータが必要という
ような制約のこと。
2:表定義、ビュー定義と権限
・スキーマと表と権限の関係
次数:表中の列の数
基数:表中の行の数
・表定義
CREATE TABLE 表(列 データ型)
テーブルを作成する。
・ビュー定義
CREATE VIEW 表(列) AS 問合せ式
ビュー(参照表)を作成する。
以下の場合は更新可能なビューとはならない。
・権限定義
権限を与える
GRANT 権限 ON 表 TO ユーザ名
自分が持っている権限であれば別のユーザに付与できる
権限を剥奪する
REVOKE 権限 ON 表 FROM ユーザ名
以下が権限の種類
DDLはあんまり利用する機会がないので馴染みが薄い。
ACCESSとかGUIのツールを使うと
「CREATE TABLE~」なんて打つ機会も少ないですね。
「CREATE VIEW~」は結構使うかもしれないですが、
アプリ開発でDDL使う機会なんてほとんどないもんな~。
◆メモ
http://itref.fc2web.com/oracle/sql.html
http://www.bnote.net/mysql/appendix_sql.shtml
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19201-02/clauses.html
http://thinkit.co.jp/article/1057/1
コメント