SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

PostgreSQL 編5 - テーブルクリア、テーブル定義変更、整合性制約定義、権限

■テーブルクリア

  ・テーブル中のデータだけを全て削除するには、delete 文を使用する。

delete from testm;

  ・但し、単純クリアが目的なら、この方法はレスポンス的に問題がある。
    トランザクション機能が働くので、全レコードのトランザクションバッファ
    への書き込みとコミットによる更新が行われる。
    何万件にも及ぶデータのクリアを delete 文でやると実用に耐えない。

  ・単純なテーブルクリアが目的の場合は、表切り捨て(truncate) を使用する
    と良い。この方が一瞬でクリアできる。

truncate table testm;

  ・思いきって、テーブル削除と再作成を利用する手もある。

drop table testm;
create table testm (
  key            char(008),
  data1          int8,
  data2          int8,
  data3          int8
);

■テーブル定義変更(テーブル属性変更、列定義変更)

  ・データ項目の桁数が足りなくなったり、新たな項目を追加するのは alter
    文で簡単に行える。但し、項目の削除はできない。
    項目の削除を行うには、
      データ退避
      テーブル削除
      テーブル再作成
      新形式にデータ編集
      データセットアップ
    を行う必要がある。

  ・新たにテーブルに項目を追加(列の追加、フィールド追加、カラム追加)
    するには、次のようにする。
    Oracle のように複数項目を一度に追加することはできない。

alter table testm add
  newdata1  int8
;

  ・PostgreSQL では、列名の変更ができる。

alter table testm rename
  data1 to abc
;

  ・PostgreSQL では、列の項目タイプ定義変更はできないようである。
    項目タイプを変更するためには、テーブルを作り直すしかない。

■整合性制約定義、リレーション、リファレンス、外部キー

  ・データ項目に他のテーブルとのリレーションをとって、制約条件などを設定
    することができる。(constraints)
    制約追加は、create table 時、または、alter table で行う。

  ・列制約には、
      primary key  主キー制約(unique & not null)
      unique       一意キー制約(ユニーク項目、一意制約、ユニーク値、ユニークキー、ユニーク制約)
      not null     NOT ヌル制約
      check        チェック制約
      references   参照整合性制約(参照制約、外部整合性制約、外部制約キー)
    がある。
    PostgreSQL では、primary key、unique、not null 制約については、
    create table 時にしか定義できない。
    alter table で指定可能なのは、check、references 制約だけである。

alter table testm
  add constraint TESTM_JCSU check(data1 >= 0)
;

alter table testm
  add constraint TESTM_FKEY
  foreign key (key) references test2m (key)
;

  ・PostgreSQL では、制約単体の削除はできないようである。

■名前変更(テーブル名変更)

  ・テーブル名の変更は、次のようにする。

alter table testm rename to abc;

■ユーザ作成

  ・ユーザの作成は、次のようにする。

create user sak with password 'sak';

  ・ユーザの削除は、次のようにする。

drop user sak;

■システム権限付与

  ・PosegreSQL については、ロールが使用可能か不明である。
    権限の付与は、次のようにする。

grant 権限名, ...
  on オブジェクト, ...
  to public;
     |_ public
        group グループ名
        ユーザ名

  ・権限の取り消しは、次のようにする。

revoke 権限名, ...
  on オブジェクト名, ...
  from public;
       |_ public
          group グループ名
          ユーザ名

■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK