タグ

postgresqlに関するnissaxのブックマーク (9)

  • 再帰SQL -図解- - Qiita

    まえがき 再帰SQLを使うと、テーブルに一時的に名前を付けることで、再帰処理(ループ)を実現できます。どのように実行されるのか難しかったため図解してみます。 with句 メインクエリの中で同じサブクエリを何度も呼び出している場合に使われるのがwith句です。with句を使うとサブクエリに名前をつけることができるので、メインクエリから何度でも呼び出すことができます。便宜上、with句によって作られる一時テーブルをwithテーブルと呼ぶことにします。with句を利用したクエリは、以下のように評価が進みます。 with句を評価し、withテーブルを作成する メインクエリを実行する。 まずは簡単な例でwith句の使い方を見てみましょう。営業マンたちの月別売上を表す営業成績テーブルを考えます。 【営業成績テーブル】 名前 月 月次売上

    再帰SQL -図解- - Qiita
  • Rails でストアドプロシージャーを使う - Qiita

    当記事では、みんな大好きストアドプロシージャーを Rails で使ってみて、理解を深めてみます API ファースト開発を使った開発を想定して、ストアドプロシージャーを Rails プロジェクトに組み込んでみましょう ストアドプロシージャーとは RDBMS にだいたいついてる、関数を作る機能です 当記事では PostgreSQL を使います API ファースト開発とは アプリケーション側からは RDB へ直接クエリーを発行しません 代わりに機能ごとに用意されたストアドプロシージャーを実行して、返ってきた結果を使います(副作用を持つ関数もあります 開発の初期段階ではテーブル設計を行わず、必要な機能のインプットとアウトプットが定義されたストアドプロシージャーのモックを使ってアプリケーションを開発します ある程度アプリケーションができてきたら、モックになっているストアドプロシージャーから逆算してテ

    Rails でストアドプロシージャーを使う - Qiita
  • PostgreSQL の JSONB 型の紹介とメリット - ボクココ

    ども、@kimhom です。 今回は必要に駆られて PostgreSQL で新しく登場した JSONB 型について調べるきっかけがあったので、まとめてみる。 予め断っておくと JSONB 型はいわば PostgreSQL のリレーショナルデータベースからの脱却だ。これは一見魅力的に見えるけど、誰もが待ち望んだ機能というわけではない。導入するときは慎重に検討するようにしたいところだ。 なぜ JSONB 型が必要になったか 特に SaaS のアプリケーションを作っている方なら共感してくれると思うのだけど、保存したいデータが顧客によって異なるというケースが否応にしてある。例えば 顧客管理のサービスを扱っているなら、業界ごとに保存しなければならない項目(記事ではカスタム項目と呼ぶ)は異なってくるし、逆に不要な項目なども出てくることだろう。そんな中、最もやってはいけない妥協が、とりあえず全ての項目

    PostgreSQL の JSONB 型の紹介とメリット - ボクココ
  • PostgreSQL 9.4 の JSON サポートについて - Qiita

    PostgreSQL 9.4 で JSON 関連機能が強化された。 jsonb 型の追加 jsonb 関係演算子の追加 GIN インデックスの jsonb サポート JSON サポート関数の拡充 以前 PostgresSQL 9.3 の JSON サポートについてまとめた。 稿はその続編であり、PostgreSQL 9.4 になって JSON どう進歩したのかをユーザ視点で検証したい。(また長いんだこれが) 修正リクエストは歓迎します。 なお稿では、大文字の JSON はその書式やデータを表し、PostgreSQL の型を指す場合に json や jsonb のように小文字を使って区別する。検証は素でソースビルドした beta2 版の PostgreSQL 9.4 を仮想環境上の CentOS 7 上で行った。 jsonb 見参 9.4 で追加された jsonb 型は JSON テキス

    PostgreSQL 9.4 の JSON サポートについて - Qiita
    nissax
    nissax 2018/06/02
    “PostgreSQL”
  • Rails開発者のためのPostgreSQLの便利技(翻訳)|TechRacho by BPS株式会社

    こんにちは、hachi8833です。 今回は、PostgreSQLのスケーリングソリューションで知られるCitus Data社のブログ記事の翻訳をお送りいたします。 概要 元記事: Postgres tips for Rails developers(Apr 28, 2017) 著者: Lukas Fittl ブログ: Citus Data Blog 原著者の許諾をいただいて翻訳・公開します。 今週のRailsConfで、私たちはRailsでPostgreSQLを使ううえでの多くの知見を共有しました。有用な情報なので、その多くを広く公開したいと思います。Railsアプリでのデバッグやデータベースのパフォーマンス改善にお役立ていただければと思います。 また、フェニックスで開催されたRailsConfに惜しくも出席できなかったRailsコミュニティメンバーの皆さまにも、私たちがRailsCon

    Rails開発者のためのPostgreSQLの便利技(翻訳)|TechRacho by BPS株式会社
  • Rails + PostgreSQLでIndexを利用した中間一致検索する - Qiita

    ショッピンサイトなどを開発していると中間一致で検索したくなりますよね。 でも、Elasticsearch入れるほどでも無いし...という場合の簡単な方法を紹介します。 試した環境は Ubuntu 16.04 Ruby 2.3.3 Rails 5.0.0 PostgreSQL 9.5.5 (apt-get install) です。 pg_trgmの有効化 まずはサクッとpg_trgmを有効にしましょう。PostgreSQLに接続するユーザはSUPERUSER権限を持つ必要があります。 なければ、

    Rails + PostgreSQLでIndexを利用した中間一致検索する - Qiita
  • Rails4でサポートされたPostgreSQLのhstoreを使う - Qiita

    rails4で正式にサポートされたPostgreSQLのデータ形式「hstore」を実際に扱ってみる。 基的にここ(Using Hstore with Rails 4)を訳しただけな内容だけど、ちょっと補足もあります。 最初の準備 PostgreSQLのhstore extensionを有効にする。 class AddHstoreSupport < ActiveRecord::Migration def up execute 'CREATE EXTENSION hstore' end def down execute 'DROP EXTENSION hstore' end end

    Rails4でサポートされたPostgreSQLのhstoreを使う - Qiita
  • PostgreSQLで排他制約がめっちゃ便利!! - そーだいなるらくがき帳

    中国地方DB勉強会っていう控えめに言っても最高の勉強会があるんだけどそこで排他制約について教えてもらいました。 ikkitang1211.hatenablog.jp 排他制約って雑に説明すると重なりを拒否する制約です。 僕は使った事なかったのですが勉強会の中で事例紹介を受けて、めっちゃ便利だったのでここでご紹介します。 どんなときに使うの? 実際にはどんなときに重なりを制御したいかというとよく使うのは次の2つ。 図面の重なり 時間の重なり 1つ目は幾何学的な図面を表現するときです。 実際にPostgreSQLは円や四角をSQLで表現できます。例えば地図上で特定の座標から半径100メートルの円を書き、その中に特定の円(場所)があればErrorにするような制約が書けます。 そもそもSQLで位置計算もめっちゃ便利なので是非使ってみてください。 soudai1025.blogspot.jp そして

    PostgreSQLで排他制約がめっちゃ便利!! - そーだいなるらくがき帳
  • postgresqlを使った位置情報の計算について  その2

    PostgreSQL Advent Calendar 201118日目を担当します@soudai1025です。 先日はスーパーエンジニア石井達夫さん の鋭意開発中!pgpool-IIのオンメモリクエリキャッシュ機能でした。 そんなわけで日の内容ですが実ははslonyとPostgreSQL9.0から実装されたレプリケーションの話をしようかなと思ったのですが 第 1 回 Slony-I を使用したシステム構築『Slony-Iを動かしてみよう』などがとても素晴らしい資料が豊富なので断念しました。 PostgreSQLは日語ドキュメントが豊富なのがいいところですよね。 なので昔にちょっとエントリーをかいたことがあるpostgresqlを使った位置情報の計算についての実践的な内容を記載したいと思います。 まずおさらいですが位置情報をつかった距離の計算はSQLで SELECT sqrt(power

  • 1