PostgreSQL13 (Debian11.3.0)

2022/6/17


インストール

PostgreSQL本体の他に をインストールする。
#管理者権限で実行
apt install -y postgresql-13 postgresql-server-dev-13 libpostgresql-jdbc-java libpostgresql-jdbc-java-doc libpqxx-6.4 libpqxx-dev libpqxx-doc libpq-dev libpq5 libecpg-dev libecpg6 libreoffice-base libreoffice-sdbc-postgresql
PostgreSQLへのアクセスの範囲を指定
#/etc/postgresql/13/main/postgresql.conf
#listen_addresses = 'localhost'         # what IP address(es) to listen on;
listen_addresses = '*' #localhostを*に修正
よろしくないのだが、実験室から接続するだけなので
#/etc/postgresql/13/main/pg_hba.conf 
#local all  all  peer  ; peerをtrustに修正
local  all  all  trust
host local  all  all  192.168.xx.xx/xx trust
設定を変更したのでpostgresqlを再起動
#postgresqlを再起動
systemctl restart postgresql

データベースユーザを登録

データベース管理者でログインし、データベースの使用者を登録する。 データベースユーザの権限は にする。
#データベース管理者postgresが実行
su - postgres
createuser -d 18000
createuser -d 19000
createuser -d 20000

データベースユーザ(開発者)

データベースユーザ(開発者)は自分用のデータベースをつくり、SQLでデータ操作ができる。
#一般人が自分のユーザ権限で実行
#ユーザ18000でログイン
#データベースを新規作成
#データベース名は任意でよい デフォルトはユーザ名
#いくつかのアプリは「データベース名は文字列に限定」みたいな制限があるので注意
createdb db18000
#データベースをつかう
psql db18000
create table sample(tel int,name varchar(50));
insert into sample values(6547,'情報通信実験室');
insert into sample values(6447,'高橋研究室');
SELECT * FROM sample;
\q
#\qでデータベースを終了

LibreOffice(Base)でPostgreSQLを使う ===SDBCドライバ===

以前、LibreOffice-BASEでPostgerSQLに接続する方法はJDBCドライバを使った接続だった。このごろはJDBCドライバではなくSDBCドライバを使うらしい。
SDBC:Star Database Connectivity
  1. Libreoffice-Baseを起動
    Libreoffice Base
  2. LibreOfficeデータベースウィザードへようこそ
    「既存のデータベースに接続」、プルダウンメニュー中からPostgreSQLを選ぶ。
    Libreoffice Base
  3. データソースを指定する。
    自分のPCを指定する場合はhost=...を省略できる。dbnameはさきほどつくったデータベースを指定する。
    Libreoffice Base
  4. ユーザ名は自分
    接続テストをクリックして、データーベースに接続できることを確認する。
    Libreoffice Base
  5. 接続できた。
    Libreoffice Base
  6. 次回からこのデーターベースを使用するので、接続に関するアレコレを保存する。
    なお、データの更新(挿入、削除、修正)はデータベースの仕事であり、Baseが保存しているわけではないので、勘違いしないように注意する。 Libreoffice Base
  7. 名前をつけて保存する。拡張子はodbにする。
    Libreoffice Base
  8. データベースに接続したのでアレコレ表示される。
    これらはデータベース内部の情報ので一般人は触らないのが吉。 Libreoffice Base
  9. 自由に使えるのはpublic以下と思うこと。(いろいろわかってくるとinformation_schemaやpg_catalogが使えるようになる。)
    最初につくったテーブル(sample)がある。これを開いてみよう。
    Libreoffice Base
  10. さきほどの中身が見えた。自分のデータベースだから好きに使える。追加、変更、削除等試してみよう。
    ただし、1件はレコードを残すこと。
    Libreoffice Base
  11. 好き勝手したと思うので、「SQL表示でクエリーを作成...」を試す。
    データベース標準語がわからない方にはここでお引き取り願おう。
    Libreoffice Base
  12. 簡単なSELECT文を実行する。さきほどいろいろイジったと思うので、適宜SELECT文の内容は修正してほしい。
    Libreoffice Base
  13. SELECT文はクエリー1として保存する。(テキトウな名前で保存してよい)
    Libreoffice Base
  14. クエリー1を実行する。
    SELECT文を実行した結果が出てくる。
    Libreoffice Base

C言語でPostgreSQLを使う ===埋め込みSQL===

埋め込みSQLによりテーブルsampleにアクセスする。
プリコンパイラはsample1.pgcからsample1.cを生成する。
コンパイルオプションとしてsample1.c中のECPG....関数を使用するためのインクルードパス(/usr/include/postgresql)とライブラリ(-lecpg)を指定する。
sample1.pgc実行

C言語でPostgreSQLを使う ===libpqライブラリ===

libpq-Cライブラリ 33.21.サンプルプログラム(testlibpq.c C言語PostgreSQLフロントエンドライブラリlibpqの試験)を参考にテーブルsampleにアクセスする。
コンパイルオプションとしてsample2.c中の"libpq-fe.h"を使用するためのインクルードパス(/usr/include/postgresql)、PQ....関数を使用するためのインクルードパス(/usr/include/postgresql/13/server)、ライブラリ(-lpq)を指定する。
sample2.c実行


SDBC Apache OpenOffice Wiki( https://wiki.openoffice.org/wiki/JA/Documentation/BASIC_Guide/Database)

PostgreSQL 13.1文書 第33章 libpq-Cライブラリ 33.21.サンプルプログラム (https://www.postgresql.jp/document/13/html/libpq-example.html)