03
1月
2007

PostgreSQL

PostgreSQLをやってみたいと思って早一年半,ようやく重い腰をあげてみた.引っかかっていたのは,DBで遊ぶためのデータがない,ということだ.この問題は依然残っているが,その内いいネタがなんか見付かるだろう.
導入編
PostgreSQLでSQL入門
応用編
メンテナンス
libpqを使用したDBアクセスプログラミング
ecpgを使用したDBアクセスプログラミング
JDBCを使用したDBアクセスプログラミング

導入編
PostgreSQLの導入について
インストールと設定
2003-07-20T15:13+09:00 matsu
PostgreSQLのインストールと設定について.
psql
2003-07-20T15:13+09:00 matsu
PostgreSQLのフロントエンドpsqlについて.
ちょっと使ってみる
2003-07-20T15:13+09:00 matsu
psqlでPostgreSQLに接続していろいろ試してみる.
GRANTとREVOKE
2003-07-20T15:13+09:00 matsu
テーブル毎にユーザのアクセス権を設定できる.アクセス権を与えるのがGRANTで奪うのがREVOKEである.
PostgreSQLでSQL入門
恥かしながら,SQLに関してほとんど忘れてしまったので,PostgreSQLを実際に使用しながらSQL入門してみる.
問題作成
2003-12-07T00:00+09:00 matsu
このページでは練習用DBの問題作成を行なって,以降のページでそれをPostgreSQL上に構築し,その過程でSQL入門していこうと思う.
テーブル作成
2003-12-29T14:35+09:00 matsu
制約とその指定方法について簡単に記述し,作成した問題に対して,テーブルを作成してみる.
データ投入
2003-12-13T20:50+09:00 matsu
ようやく準備ができたので,データを投入してみた.
SELECT
2003-12-14T11:15+09:00 matsu
DBの構築ができたので,ここから本格的にSQLを試していこうと思う.まずはSELECT.
SELECTその2
2003-12-14T21:50+09:00 matsu
SELECTに関して前頁で書ききれなかったことを.
表の演算
2003-12-23T18:00+09:00 matsu
なんかアレなタイトルだが,とにかく表を結合したりしてみた.
UPDATE
2003-12-23T20:30+09:00 matsu
DBのレコードの更新にはUPDATEを使用する.
DELETE
2003-12-23T21:00+09:00 matsu
DBのレコードの削除にはDELETEを使用する.
VIEWとRULE
2003-12-27T11:00+09:00 matsu
仮想的なテーブルVIEWを使用すると頻繁に使用する複雑なSQL文の記述が楽になったりする.RULEはVIEWに対するINSERT,UPDATE,DELETEを行なうのに使用する.
トランザクションと隔離レベルとロック
2003-12-28T16:00+09:00 matsu
PostgreSQLでのトランザクションについて調査してみた.さらにトランザクションの並列実行時の問題とそれに対処するためのトランザクション隔離レベルとロックについても調査した.
カーソル
2003-12-29T13:30+09:00 matsu
SELECTではLIMITを使用しなければ,選択レコードを一気に出力する.これを任意の件数ずつ取り出すようにするには,カーソルを使用する.
テーブルに関するTips
2003-12-29T15:50+09:00 matsu
一時テーブル,SELECT文の結果からテーブルを作成,既存テーブルの属性変更などをしてみた.
参照整合性制約について
2003-12-29T22:25+09:00 matsu
参照整合性制約に関して,チェックの遅延と複数の外部キーがある場合の注意点について.
シーケンスとシリアル型
2003-12-30T17:00+09:00 matsu
シーケンスという連番自動生成機能とシーケンスによるシリアル型について.
継承
2004-10-30T17:00+09:00 matsu
PostgreSQLではテーブル間で継承関係を作成できるらしいので試してみた.
応用編
ユーザ定義データ型,ユーザ定義関数,クエリのチューニングなど,PostgreSQLでの応用的なことをいろいろやってみる.
SQLによるユーザ定義関数
2004-01-02T13:10+09:00 matsu
PostgreSQLには多くのbuiltin関数があるが,自分で関数を定義することもできる.その定義はいろいろなプログラミング言語で行なうことができるが,ここではSQLによる定義について試してみた.
Cによるユーザ定義関数
2004-01-03T15:00+09:00 matsu
PostgreSQLではCでユーザ定義関数を定義することができるので,Cでユーザ定義関数を作成してみた.
ユーザ定義データ型
2004-01-04T18:00+09:00 matsu
PostgreSQLではユーザがデータ型を定義することができる.そのためにはCでいくつかの関数を作成,登録する必要がある.ということで,データ型を定義してみた.
トリガ
2004-02-05T23:10+09:00 matsu
トリガはDBへの更新があったときに実行される(CまたはPL/pgSQLで記述した)ユーザ定義関数である.SQL92にはないが,いろろと便利なようなので,調査してみた.
メンテナンス
PostgreSQLにおけるDBのメンテナンスについて調査してみた.
インデクス
2004-05-04T23:00+09:00 matsu
インデクスを作成使用すると高速検索ができる場合があるようなので,作成方法と運用時の注意点を調査してみた.
バックアップ
2005-01-16T21:00+09:00 matsu
DBに格納するデータは多くの場合,重要で代替の効かないものが多いように思われる.そこで,PostgreSQLでのバックアップ方法について調べてみた.
libpqを使用したDBアクセスプログラミング
libpqを使用してPostgreSQLにアクセスするプログラミングをやってみた.
接続
2004-02-23T17:00+09:00 matsu
まずlibpqを使用するための環境を整えた.で,接続しないと何にもできないので,libpqを使用してPostgreSQLへ接続する方法を調査してみた.
非同期接続
2004-02-23T22:20+09:00 matsu
前頁では同期接続関数を試してみたが,libpqには接続要求を投げてすぐに返ってくる非同期接続関数がある.これを試してみた.
問い合わせ
2004-02-24T17:50+09:00 matsu
libpqを使用して問い合わせを行なうプログラムを作成してみた.
問い合わせ結果からデータを取得する
2004-02-29T19:00+09:00 matsu
PGresultから各種データを取得,表示するプログラムを作成してみた.
ecpgを使用したDBアクセスプログラミング
ecpgを使用してPostgreSQLにアクセスするプログラミングをやってみた.普通サフィックスをpgcとするところを,しばしば間違えてpcgと記述していまっているので注意.
はじめに
2004-05-05T22:00+09:00 matsu
ecpgの概略とはじめるための準備などについて調査してみた.
接続と切断
2004-05-08T22:00+09:00 matsu
接続のための記述を通してecpgによるコーディングの基本について調査してみた.
クエリの発行
2004-05-09T04:45+09:00 matsu
埋め込みSQLによるクエリの発行は簡単である.本頁では特に簡単なものを取り上げる.
NULLの扱いと指示子
2004-05-09T21:15+09:00 matsu
埋め込みSQLにおけるNULLの扱いについて調査してみた.
動的SQL
2004-05-12T07:00+09:00 matsu
埋め込みで動的なSQLというのはなんだか矛盾するような何かをはらんでいるような気がするのは私だけだろうか…とにかくやってみた.
メタデータの取得と記述子領域
2004-05-14T06:30+09:00 matsu
動的SQLだと,スキーマを事前に予測できない場合がある.記述子領域は,メタデータとデータのデータセットで,これを使用すると,埋め込みSQLでもメタデータを扱えるようになる.
エラー処理のためのコールバックの設定
2004-05-16T08:00+09:00 matsu
SQLを発行した結果がエラー,警告,選択行なしのいずれかの結果であった場合に,どんな処理をするかをあらかじめ登録することができる.
接続の切替え
2004-05-16T16:15+09:00 matsu
DBサーバとの接続を同時に複数確立して作業することができる.この際に必要な接続の切替えについて調査してみた.
JDBCを使用したDBアクセスプログラミング
JDBCを使用してPostgreSQLにアクセスするプログラミングをやってみた.
接続
2004-04-05T23:00+09:00 matsu
まずはDBに接続するまでの手順について記述する.JDBCを使用する場合は,いきなり接続するということはできない.libpqを使用する場合はコンパイル時にライブラリと静的リンクしたが,JDBCの場合は,クラスファイルのロードからソースで指定する必要がある.
クエリの発行
2004-04-21T09:00+09:00 matsu
クエリはStatementのメソッドを使用して発行する.SELECT文はexecuteQuery,それ以外はexecuteUpdateである.
SELECT
2004-05-03T18:50+09:00 matsu
ResultSet,ResultSetMetaDataを中心にSELECT結果の処理について調査してみた.
トランザクション
2004-05-05T18:00+09:00 matsu
JDBCのデフォルト動作はautocommitである.Connectionオブジェクトのメソッド呼び出しにより,autocommitのon/offやCOMMIT,ROLLBACKができる.また,きれいな方法ではないがJDBCによるDBアクセスプログラムは,基本的にプログラムでSQL文を生成して発行するだけなので,BEGINとかCOMMITというSQL文を発行すればトランザクション処理ができる.
PreparedStatement
2004-05-17T22:20+09:00 matsu
一部のフィールドの値が異なるだけのSQL文なら,構文解析などを省略して高速化できたりする(といっても,たぶんドライバ次第).このようなSQL文んはStatementのサブインタフェースPreparedStatementの実装クラスで表現される.

You may also like...