PostgreSQL +



ユーザ作成 +

ユーザ作成 +

  • PostgreSQLのユーザ作成には[createuser]コマンドを利用します。 ユーザ作成時は下記を用途に合わせて設定します。
    • 新しいロールをスーパーユーザーとするか
    • 新しいロールに対してデータベース作成を許可するか
    • 新しいロールに対してロール作成を許可するか
  • 一般ユーザ(hoge)の作成
    $ createuser hoge
    Shall the new role be a superuser? (y/n) n
    Shall the new role be allowed to create databases? (y/n) y
    Shall the new role be allowed to create more new roles? (y/n) y
    CREATE ROLE
  • WEB(+PHP)サーバ接続用のユーザを作成 このユーザはアプリ(PHP,JAVA)からデータベースへ接続する際に利用されます。
    $ createuser apache
    Shall the new role be a superuser? (y/n) n
    Shall the new role be allowed to create databases? (y/n) n
    Shall the new role be allowed to create more new roles? (y/n) n
    CREATE ROLE

データベースの確認 +

  • 「psql」コマンドでデータベースの一覧を確認します。尚、この操作はpostgresユーザで実施します。
    $ psql -l
            List of databases
       Name    |  Owner   | Encoding
    -----------+----------+----------
     postgres  | postgres | UTF8
     template0 | postgres | UTF8
     template1 | postgres | UTF8
     (3 rows)

データベースの作成 +

  • データベース「testdb」を作成します。
    $ createdb testdb
    $ psql -l
            List of databases
       Name    |  Owner   | Encoding
    -----------+----------+----------
     postgres  | postgres | UTF8
     template0 | postgres | UTF8
     template1 | postgres | UTF8
     testdb    | postgres | UTF8
    (4 rows)
  • testdbへ接続します。
    $ psql testdb
    Welcome to psql 8.1.11, the PostgreSQL interactive terminal.
    
    Type:  \copyright for distribution terms
           \h for help with SQL commands
           \? for help with psql commands
           \g or terminate with semicolon to execute query
           \q to quit
  • テーブルを作成します。
    $ CREATE TABLE t_test(
       id serial primary key,
       name text,
       time timestamp default now()
      );
  • テーブルの一覧を表示
    testdb=# \d
                    List of relations
     Schema |       Name        |   Type   |  Owner
    --------+-------------------+----------+----------
     public | t_test            | table    | postgres

テーブルのアクセス権を設定 +

  • apacheユーザに「t_test」へのアクセス権を付与します。
    testdb=# GRANT ALL ON t_test TO apache;
  • アクセス権の確認
    testdb=# \z
                               Access privileges for database "testdb"
     Schema |       Name        |   Type   |                  Access privileges
    --------+-------------------+----------+-----------------------------------------------------
     public | t_test            | table    | {postgres=arwdRxt/postgres,apache=arwdRxt/postgres}

各種コマンド +

テーブル操作 +

  • テーブル一覧
    \d
  • テーブル作成
    CREATE TABLE
  • テーブル変更
    ALTER TABLE
    
  • テーブル削除
    DROP TABLE

アクセス権 +

  • アクセス権一覧
    \z
  • アクセス権変更
    GRANT ALL ON テーブル名 TO apache;

データ操作 +

  • データ検索
    SELECT
  • データ登録
    INSERT INTO
  • データ変更
    UPDATE
  • データ削除
    DELETE FROM

トランザクション関連 +

  • トランザクション開始
    BEGIN
  • トランザクションのコミット
    COMMIT
  • トランザクションのアボート
    ROLLBACK

その他 +

  • SQLのチューニング 問い合わせについて、実行計画をコスト表示します。SQL文をチューニングする際に利用します。
    EXPLAIN
このエントリーをはてなブックマークに追加
Last-modified: 2010-06-05 (土) 12:30:44 (627d)   最終更新のRSS