skillup

技術ブログ

Database

Postgresの基礎(主にMySQLとの違いなど)

投稿日:2020年2月19日 更新日:

えー来月(2020年3月)より、postgresを使うかもしれないので、ちょっと復習を。

以前のリンク

PostgreSQLについて

Postgres リモートホストからの接続

今までMySQLが95%だったので、主にMySQLとの違いから。

基本コマンド比較

すごくわかりやすい表があったので、リスペクトも込めてリンクを。

MySQLとPostgreSQLコマンド比較表

一応自分なりのメモも

超頻出系

その他

  • MySQLでいうユーザーはPostgresではロールという概念が違いです(以前はグループとユーザーがあり、これをまとめた概念のようです)。
  • ディフォルトでpostgresというデータベース、ロールがあります。rootユーザー的なものかと。
  • postgresはログインすると左側がデータベースになります。
    例えばpsql -U postgres -d post_code_dbといったコマンドを入力すると下記のようになります。
    post_code_db=

テーブル比較

これまたわかりやすいリンクがあったので貼ります。

MySQLとPostgresのデータ型対応表

一応補足しますと下記のような特徴があります。

  • intの幅定義(int(11)など)ができない
  • 頻出のものの中ではtinyint,datetimeがない
  • 数値定義の際のunsignedがない
  • サロゲートキーのオートインクリメントがなく、シーケンステーブルを使う必要がある。
  • サロゲートキーは id SERIAL PRIMARY KEY などと設定すると自動でシーケンステーブルまで設定できる。
  • カラムの範囲が全体的に大きめ。
    CHECK構文(型制御、例えば1〜12のみ、など)が使える

SELECT文

分析、集合系の構文で使えるものが多々あります。

全体的にソート系のアルゴリズムが優れています。

dockerでの環境変数など

ちなみにdockerで環境変数を作るときにpostgresの環境を以下のように作ることが多いと思いますが、

これですとデフォで

role,ownerが postgres

になります。設定していない場合このようになるようです。

また

のように設定した場合、

デフォで

role,ownerが dbuser になり、 sampledb ができています。

postgresのrole,ownerがない・・、ログインできないって焦らないようにしましょう。(私w)

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

浮動小数点に関して

金額計算なんかでfloatを使うと誤差が出るっていうのは基礎的な話ではありますが、背景知識を含めて理解しておこうと思ったのでメモります。 Contents1 float,doubleでの誤差2 金額の …

no image

JSON型の検索

複数のタグなどを入れる場合、JSON型のカラムやデータなどを入れることがあるかと思いますが、ここから検索できるということが昨日わかりましたので、メモしておきます。 SQLServerで発見しましたが、 …

no image

CASE+HAVING句

今回はCASEとHAVINGを組み合わせて、そこそこの難問を解いていきます。 まず下記のようなテーブル(testresults)があるとします。 student | class | sex | sco …

no image

DBの構造について メモリとHDD

データベースについてまたまた学習中。 覚えておきたいポイントなど。 データを収めておくべき媒体では「記憶コスト(単位金額当たりの容量)」と「アクセス速度」の2つが重要なパラメータ メモリとHDDでは前 …

no image

データベースアンチパターン・グレーパターンまとめ

本で勉強したものと自分で個人的に経験したことのまとめ Contents1 値渡しと参照渡しの混同2 型の制約が弱い3 変更していいデータ、していけないデータ4 参照系と履歴系のデータを区別する5 リレ …

アーカイブ