|
【ユーザー登録】
・データベースの作成を許可しない場合は、「-d」のかわりに「-D」を指定。
・「-A」はPostgreSQLのユーザー権限を与えないオプションです。ユーザー追加を許可するには「-a」オプションを指定します。
※ユーザーの追加許可を与えるとPostgreSQLのスーパーユーザーと同等の権限を与えることになる。
【ユーザー削除】
【データベース作成方法】
【データベース削除方法】
【データベース接続方法】
【テーブル作成方法】
CREATE TABLE テーブル名 (列名 データ型, 列名 データ型, 列名 データ型);
|
【テーブル削除】
【データ登録】
INSERT INTO テーブル名 VALUES (値, 値, 値);
|
【データ抽出】
SELECT [抽出フィールド名] FROM [テーブル名] WHERE [条件式];
|
・「抽出フィールド」は希望のフィールドを入力する。「*」だとすべてが対象になる。
・「テーブル名」は抽出するテーブル名を入力する。
・WHERE以下の条件文は任意に追加する。
【データの更新】
UPDATE テーブル名 SET [代入式] WHERE [条件式];
|
【データ削除】
DELETE FROM [テーブル名] WHERE [条件式];
|
【権限の変更】
通常はテーブルを作成したユーザーがデータベースを操作できる権限をもっています。
これだとWeb上で利用する際にApacheの「nobody」などが利用できません。権限を変更する必要があります。
GRANT SELECT, INSERT, UPDATE, DELETE ON [テーブル名],[テーブル名] TO [ユーザー名];
|
|
|
【トリガーの利用】
トリガーとは更新や削除時に同時に行いたい処理を登録することです。
まずは関数(プロシージャー)の作成方法
DROP FUNCTION [関数名()];
CREATE FUNCTION [関数名()] RETURNS OPAQUE AS '
BEGIN
[予約語].[フィールド名] := [処理内容];
[予約語].[フィールド名] := [処理内容];
RETURN [予約語];
END;
' LANGUAGE 'plpgsql';
|
※ユーザ関数で、PL/pgSQL を使っているため、コマンドラインから、createlang plpgsql [データベース名]
の様に先に実行して PL/pgSQL をデータベースに追加する必要があります。
※「NEW」はPL/pgSQLの予約語です。イベントが発生した後の行を指します。イベント発生前は「OLD」です。
※戻り値は必ず「OPAQUE」になります。「OPAQUE」は特殊な型で、実際には戻り値の型が不明であることを意味します。
続いてトリガーの作成方法
先程の関数(プロシージャー)をテーブルと関連付けさせる為の処理です。
CREATE TRIGGER [トリガー名] BEFORE [処理の指定] OR [処理の指定]
ON [フィールド名] FOR EACH ROW EXECUTE PROCEDURE [関数名()];
|
「処理の指定」はトリガーを実行させるタイミングを指定します。「INSERT」や「UPDATE」「DELETE」などを入力する。
「関数名()」先程の関数などを指定する。
【シーケンス作成方法】
データを毎回インクリメントしたい場合にはシーケンスを利用します。
DROP SEQUENCE [シーケンス名];
CREATE SEQUENCE [シーケンス名]
INCREMENT 1
START 1
CACHE 1;
|
テーブル作成の際に以下のように明記する
CREATE TABLE [テーブル名] ([フィールド名] [型名] PRIMARY KEY DEFAULT nextval('[シーケンス名];
|
・「PRIMARY KEY」は主キーの宣言です。重複値を許可しないようになります。
|
|
通常コマンドからわざわざテーブル作成やトリガ作成などをするのは少しメンドーなので、
テキストファイルを用意して、そのファイル内に操作内容を入力してそこからテーブル操作をすることができます。
・「e」バックエンドに送ったSQL文を表示します。なにが実行されたかを確認できます。
・「f」ファイルからSQL操作する際のオプション
|
|
\? |
バックスラッシュコマンド表示 |
\d |
テーブル名の一覧を表示 |
\df |
関数の一覧を表示 |
\do |
オペレータの一覧を表示 |
\d [テーブル名] |
「テーブル名」の定義を表示 |
\dS |
システムテーブルの一覧を表示 |
\dt |
ユーザーテーブル一覧を表示 |
\dT |
型の一覧を表示 |
\enkoding [文字コード] |
クライアント側の文字コードを設定。文字コードを省略すると現在の文字コードを表示 |
\pset pager |
pagerを無効にする |
\q |
psqlを終了する |
\l |
データベースの一覧を表示 |
\z |
ACL(アクセス制限)付きでテーブルの一覧を表示 |
\! [UNIXコマンド] |
UNIXコマンドを実行する。[UNIXコマンド]を省略するとシェルを起動する |
(「\」はバックスラッシュですのでご注意してください。)
オプション
-e |
バックエンドに送ったSQL文を表示します。 |
-E |
\コマンドも含め、バックエンドに送ったSQL文を表示します。 |
-f [ファイル名] |
ファイル名から入力を受け付けます |
-l |
データベース一覧を表示し、終了します。 |
-o [ファイル名] |
出力結果を[ファイル名]に格納します。 |
|