職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

pgADMINⅢの起動・ログオン

2017年08月08日 | PostgreSQL
pgADMINⅢの起動・ログオン


【開発環境】
xampp 1.8.3
PHP 5.5.9
PostgreSQL 9.5.7
Eclipse 4.4

【pgADMINⅢからロールを作るには】
参照サイトを見てね→第2章 pgADMINⅢによるPostgreSQLの操作
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PostgreSQLにおけるロール

2017年08月05日 | PostgreSQL
PostgreSQLにおけるロール


【開発環境】
xampp 1.8.3
PHP 5.5.9
PostgreSQL 9.5.7
Eclipse 4.4

■ロール(ユーザー)について
PostgreSQLにおいては接続の為のログインの管理やデータベースなどへの各権限の設定をロール単位で行います

1)ロールの確認
C:\Users\hiromi>psql -U postgres
psql (9.5.7)
"help" でヘルプを表示します.
postgres=#
postgres=# select rolname from pg_roles;
rolname
------------
postgres
testuser
sampleuser
testrole
(4 行)

2)ロールの作成
・ログイン可能なロールを作成した場合
postgres=# CREATE ROLE pguser WITH createdb LOGIN PASSWORD 'pguser';
CREATE ROLE
postgres=# select rolname from pg_roles;
rolname
------------
postgres
testuser
sampleuser
testrole
pguser
(5 行)
postgres=# ¥du

・注意、データベースを指定しないとエラーが出る
C:\Users\hiromi>psql -U pguser
ユーザ pguser のパスワード:
psql: FATAL: データベース"pguser"は存在しません

3)ロールを使ってログインするには
コマンド
psql -U ロール名 -d データベース名
例文
C:\Users\hiromi>psql -U pguser -d uriage
ユーザ pguser のパスワード:
psql (9.5.7)
"help" でヘルプを表示します.
uriage=>

4)ロールに権限を与える
構造文
GRANT 権限 ON 対象 TO 誰に

・データベース「uriage」と接続する
postgres-# \connect uriage
データベース "uriage" にユーザ"postgres"として接続しました。
・テーブル確認
uriage-# \dt
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
----------+---------+----------+----------
public | shouhin | テーブル | postgres
(1 行)

・ロール「pguser」にテーブル「shouhin」の権限を与えた
uriage=# grant select,update,insert,delete on shouhin to pguser;

5)ロールを使ってテーブル表示する
一旦、終了する→uriage=# ¥q
再び、アクセスする
C:\Users\hiromi>psql -U pguser -d uriage
uriage=> select * from shouhin;
id | name
----+-------------
1 | テレビ
2 | DVDレコーダ
3 | パソコン
4 | 携帯電話
5 | プリンター
(5 行)

注意、データベース「uriage」とテーブル「shouhin」するか?ロールに

6)PDOを使ってロールからデータベース「uriage」に接続
「pdotest2.php」サンプルコード

<head><title>PHP TEST</title></head>
<body>
<?php
関数
function convert_enc($str){
$from_enc = 'utf8';
$to_enc = 'utf8';
return mb_convert_encoding($str, $to_enc, $from_enc);
}

$dsn = 'pgsql:dbname=uriage host=localhost port=5432';
$user = 'pguser';
$password = 'pguser';

try{
$dbh = new PDO($dsn, $user, $password);
print('接続に成功しました。<br>');
$sql = 'select * from shouhin';
foreach ($dbh->query($sql) as $row) {
print(convert_enc($row['id']));
print(convert_enc($row['name']).'<br>');
}

}catch (PDOException $e){
print('Error:'.$e->getMessage());
die();
}

$dbh = null;
?>
</body>
</html>

7)表示

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PDO使ってPostgreSqlに接続するには

2017年08月02日 | PostgreSQL
PDO使ってPostgreSqlに接続するには


【開発環境】
xampp 1.8.3
PHP 5.5.9
PostgreSQL 9.5.7
Eclipse 4.4

【PostgreSQL側の準備】
1)PostgreSQLを立ち上げる
C:\>psql -U postgres
psql (9.5.7)
"help" でヘルプを表示します

2)データベース「uriage」を作成
postgres=# create database uriage;
CREATE DATABASE
postgres=#

3)データベースの確認
postgres=# ¥l


参考までにユーザーを確認
postgres=# ¥du


4)データベースに接続する
postgres=# ¥connect uriage
データベース "uriage" にユーザ"postgres"として接続しました。

5)「shouhin」テーブルの作成
uriage=# create table shouhin(id integer,name text);
CREATE TABLE
uriage-# ¥dt
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
----------+---------+----------+----------
public | shouhin | テーブル | postgres
(1 行)


6)データ入力
uriage=# insert into shouhin(id,name) values(1,'テレビ');
INSERT 0 1
uriage=# insert into shouhin(id,name) values(2,'DVDレコーダー');
INSERT 0 1
uriage=# insert into shouhin(id,name) values(3,'パソコン');
INSERT 0 1
uriage=# insert into shouhin(id,name) values(4,'携帯電話');
INSERT 0 1
uriage=# insert into shouhin(id,name) values(5,'プリンター');
INSERT 0 1
uriage=#

7)表示
uriage=# select * from shouhin;
id | name
----+---------------
1 | テレビ
2 | DVDレコーダー
3 | パソコン
4 | 携帯電話
5 | プリンター
(5 行)

8)アクセス権
uriage=# ¥z shouhin
アクセス権
スキーマ | 名前 | 型 | アクセス権 | Column privileges | Policies
----------+---------+----------+------------+-------------------+----------
public | shouhin | テーブル | | |

9)「pdotest2.php」サンプルを書いてみた
<html>
<head><title>PHP TEST</title></head>
<body>

<?php

function convert_enc($str){
$from_enc = 'utf8';
$to_enc = 'utf8';

return mb_convert_encoding($str, $to_enc, $from_enc);
}

$dsn = 'pgsql:dbname=uriage host=localhost port=5432';
$user = 'postgres';
$password = '●●●●';

try{
$dbh = new PDO($dsn, $user, $password);

print('接続に成功しました。');

$sql = 'select * from shouhin';
foreach ($dbh->query($sql) as $row) {
print(convert_enc($row['id']));
print(convert_enc($row['name']).'');
}
}catch (PDOException $e){
print('Error:'.$e->getMessage());
die();
}

$dbh = null;
?>

</body>
</html>
10)表示
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

pgAdminⅲ操作について

2017年07月18日 | PostgreSQL
pgAdminⅲ操作について


【環境条件】
win10 PostgreSQL 9,5 pgAdminⅲ

【pgAdminⅲのインストール】 PostgreSQLのダウンロード及びインストールを参照すること、必ずPostgreSQL-9.5バージョンを選ぶことじゃないと、pgAdminⅲの日本語版が手に入らない

【pgAdminⅲの操作】
1)像のアイコンをクリックし、pgAdminⅲを立ち上げる

2)もし、サーバーグループにサーバが無かったら、サーバー作成をする

3)メニューバーの「ファイル」から「サーバーの追加」をクリックする

4)「新しいサーバ登録」ダイアログが現れたら、値を設定する

パスワードはインストール時に設定したもの
設定値

以上で、サーバー(1)の下にPostgreSQL 9.5が表示される

5)サーバとの接続 サーバーのアイコンに「×」マークがついていた場合は、まだ接続されていない為、接続する 「PostgreSQL 9.5」をクリックして、「接続」を選ぶ、接続できると「×」マークが消える。

接続後


6)データベースの作成 「データベース」を右クリックし、コンテキストメニューから「新しいデータベース」をクリックする


7)「新しいデータベース」ダイアログが表示される

・「プロパティ」タブの設定を行う

・「定義」タブの設定をしたら「OK」ボタンを押す


8)データーベース「testDB」が表示 「×」マーク付きの「testDB」が現れる。それをクリックすると、データーベースが選択され、「×」マークが消える。

9)テーブルの作成
サンプルとしてstaffテーブルを作成する

「sampleDB」データベースを選択し、「スキーマ」→「public」とツリーを展開します。その中に「テーブル」という項目があるので、右クリックし、コンテキストメニューから「新しいテーブル」をクリックする


10)「新しいテーブル」ダイアログボックスが表示
「列」タブを選んで、右下にある「追加」ボタンをクリックする


11)列の作成
名前:id、データ型:integerを設定したら、「OK」ボタンを押す

成功すると、下記のように表示される


12)同じように「name」「age」列の作成
なお、「name」列に関してはNOT NULL制約を付与するため、「定義」タブをクリックする

「NOT NULL」チェックボックスにチェックを入れ、「OK」ボタンを押す


13)制約の追加
「id」「age」列に対して制約を与える為、「制約」タブをクリックし、画面下のプルダウンメニューで「主キー」が選択されいることを確認し、「追加」ボタンをクリックする


14)「新しい主キー」ダイアログより、「id」の制約をする
「列」欄に「id」を選択し、「追加」ボタンをクリックし、「OK」ボタンを押す。


15)「新しい主キー」ダイアログより、「age」の制約をする
画面下のプルダウンメニューで「チェック」を選択し、「追加」ボタンをクリックする


16)「新しいチェック」ダイアログの設定
「定義」タブの「チェック」欄に「age > 0」と入力し、「OK」ボタンをクリックする

「新しいテーブル」ダイアログに戻る


17)テーブル名の設定
名前:staff、
オーナー;postges
に設定したら、最後に「OK」ボタンを押す


18)テーブルの完成


19)データの登録
オブジェクトブラウザのツリーから「staff」テーブルを右クリックし、コンテキストメニューから「データビュー」-「全ての列を表示」をクリックする


20)「編集データ」ダイアログが表示
1行(レコード)ずつ、適当なデータを入力する。
列にデータを入れたら、Tabキーで隣の列に移動し、またデータを入力する。各列にデータを入力し終えたら、Enterキーを押下すれば、その時点でデータは登録される。
※列幅は境界線をクリックすると、調整できる

全データを入力し終えたら、「編集データ」ダイアログの✗印をクリックして閉じる

21)データの削除
・「編集データ」ダイアログを立ち上げる
「staff」テーブルをクリックして、バーの所の「ビュー」アイコンをクリック

・「編集データ」ダイアログが表示される

・削除したい行をクリックする

・「ゴミ箱」アイコンをクリックする

・確認ダイアログが表示される

・削除完了


以上
それ以外の操作→PostgreSQLではじめるDB入門を参照のこと
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PostgreSQLでテーブルを作成するには

2017年07月12日 | PostgreSQL
PostgreSQLでテーブルを作成するには


■SQL文(クエリー)について
SQL言語は、データーベースを操作する言葉のため、殆どのデーターベースに対応するので、自分にあったデーターベースと共にSQL言語を学んでください
PostgreSQL→PostgreSQL 9.4.5文書

PostgreSQLの基本コマンド


■テーブル
1)テーブル作成
SQL文(クエリー)
create table table_name
(column_name1 column_type, column_name2 column_type, …);


2)テーブル定義の確認
sample1=# create table test10(id integer, name text,address text);
CREATE TABLE
sample1=# ¥d test10
テーブル "public.test10"
列 | 型 | 修飾語
---------+---------+--------
id | integer |
name | text |
address | text |

3)テーブル削除
SQL文
sample1=# drop table test10;
DROP TABLE
sample1=# ¥d
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
----------+------+----------+----------
public | test | テーブル | postgres
(1 行)

sample1=#

4)デフォルト値の設定
SQL文
create table table_name
(column_name1 column_type DEFAULT default_value, …);


5)NOT NULL制約
カラムにNULL値を持つ事が出来ないように設定する
SQL文
create table table_name
(column_name1 column_type NOT NULL, …);
例文
sample1=# create table sample2(name text not null,address text);
CREATE TABLE
sample1=# insert into sample2(address) values('tokyo');
ERROR: 列"name"内のNULL値はNOT NULL制約違反です
DETAIL: 失敗した行は(null, tokyo)を含みます
sample1=# insert into sample2(name) values('yamada');
INSERT 0 1
sample1=#

6)UNIQUE制約
カラムに含まれる値は重複することが出来ないように設定する方法
SQL文
create table table_name
(column_name1 column_type UNIQUE, …);

C:\Users\hiromi>psql -U postgres
ユーザ postgres のパスワード:
psql (9.5.7)
"help" でヘルプを表示します.

postgres=#
sample1=# ¥d
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
----------+---------+----------+----------
public | sample | テーブル | postgres
public | sample2 | テーブル | postgres
public | test | テーブル | postgres

データベース接続
postgres=# ¥c sample1
データベース "sample1" にユーザ"postgres"として接続しました。

テーブルの作成--UNIQUE制約
sample1=# create table sample3(name text unique,address text);
CREATE TABLE
sample1=# ¥d
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
----------+---------+----------+----------
public | sample | テーブル | postgres
public | sample2 | テーブル | postgres
public | sample3 | テーブル | postgres
public | test | テーブル | postgres
(4 行)

データ入力SQL文
sample1=# insert into sample3(name,address) values('yamada','tokyo');
INSERT 0 1
sample1=# insert into sample3(name,address) values('yamada','osaka');
ERROR: 重複キーが一意性制約"sample3_name_key"に違反しています
DETAIL: キー (name)=(yamada) はすでに存在します
sample1=#

データ表示SQL文
sample1=# select * from sample3;
name | address
--------+---------
yamada | tokyo
(1 行)

7)PRIMARY KEY制約
カラムに含まれる値が完全に重複しないようする制約
SQL文
create table table_name
(column_name1 column_type PRIMARY KEY, …);

テーブル作成
sample1=# create table sample4(name text primary key,address text);
CREATE TABLE
データ入力
sample1=# insert into sample4(name,address) values('yamada','osaka');
INSERT 0 1
sample1=# insert into sample4(name,address) values('yamada','tokyo');
ERROR: 重複キーが一意性制約"sample4_pkey"に違反しています
DETAIL: キー (name)=(yamada) はすでに存在します
sample1=# insert into sample4(name,address) values('kobayasi','tokyo');
INSERT 0 1
sample1=# insert into sample4(name,address) values('','tokyo');
INSERT 0 1
表示
sample1=# select * from sample4;
name | address
----------+---------
yamada | osaka
kobayasi | tokyo
| tokyo
8)CHECK制約
行を追加する時に、許可するかどうかの条件を付ける制約
SQL文
create table table_name
(column_name1 column_type CHECK(条件式), …);
^
sample1=# create table sample5(id integer check(id > 10),name text);
CREATE TABLE
sample1=# insert into sample5(id,name) values(20,'yamada');
INSERT 0 1
sample1=# insert into sample5(id,name) values(8,'satou');
ERROR: リレーション"sample5"の新しい行は検査制約"sample5_id_check"に違反しています
DETAIL: 失敗した行は(8, satou)を含みます
sample1=# select * from sample5;
id | name
----+--------
20 | yamada
(1 行)

sample1=#
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする