タグ

SQLに関するhokorobiのブックマーク (33)

  • 開発者のためのSQLパフォーマンスの全て

    前書き - インデックスの作成はなぜ開発者のタスクなのか インデックスの 内部構造 - インデックスは何に似ているか インデックス リーフノード - 二重連結リスト 検索 ツリー(Bツリー) - バランス木 遅いインデックス パートI - インデックスを遅くする2つの原因 where 句 - 検索のパフォーマンスを改善するためにインデックスを作成 等価 演算子 - 一致するキーの検索 プライマリキー - インデックスの使い方を確認 複合インデックス - 複数列に対するインデックス 遅いインデックス パートII - 前の問題点が再び 関数 - where句の 中での関数 大文字・小文字を区別する 検索 - UPPERと LOWER ユーザ定義 関数 - 関数インデックスの制限 インデックスの作り過ぎ - 冗長性の排除法 パラメータ化 クエリ - セキュリティとパフォーマンスのために 範囲 検

    開発者のためのSQLパフォーマンスの全て
  • SQLアンチパターン - 開発者を待ち受ける25の落とし穴

    押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)NTT DATA Technology & Innovation

    SQLアンチパターン - 開発者を待ち受ける25の落とし穴
    hokorobi
    hokorobi 2013/02/17
    やっぱりSQLアンチパターン面白そうだな~。
  • 第6回 SQLで木構造を扱う~入れ子区間モデル (2)稠密性について | gihyo.jp

    稠密性(ちょうみつせい)について 前回から見えるように、整数から有理数へ範囲を広げることの利点は非常に大きいのですが、その理由は、有理数が整数にはない稠密性(ちょうみつせい:density)という性質を持っていることにあります。あまり日常で使う言葉ではありませんが、直感的に言えば物がぎっしり詰まっているということです。もう少し数学的に厳密に書くと、 x<yを満たす任意の数x、yについて、x<m<yとなる数mが存在する となります。平たく言えば、どんな2つの数の間(区間)にも、まだまだ無限に数がある、ということです。 ここでキーとなるのは「任意の」という言葉です。特定のx, yではなく、大小関係を満たすあらゆる数のペアについて成立することがキモです。たとえば、1と2の間には、0.5という数が存在します。今度は1と0.5の間で見ても、0.25というさらに中間の数が存在します。後は同じ手順で、1

    第6回 SQLで木構造を扱う~入れ子区間モデル (2)稠密性について | gihyo.jp
    hokorobi
    hokorobi 2012/05/02
  • 第6回 SQLで木構造を扱う~入れ子区間モデル (1)もしも無限の資源があったなら | gihyo.jp


     RDBSQL RDB 1    使 
    第6回 SQLで木構造を扱う~入れ子区間モデル (1)もしも無限の資源があったなら | gihyo.jp
    hokorobi
    hokorobi 2012/05/02
  • 第5回 SQLで木構造を扱う~入れ子集合モデル (3)入れ子集合モデルにおける更新 | gihyo.jp

    入れ子集合モデルにおける更新 次に、木構造の更新を行う例として基的な、ノードの挿入と削除を取り上げます。当はもっと多くの処理を行う方法がありますが、紙幅の都合上、代表的なものだけを取り上げます。興味を持った方は、参考資料に挙げたテキストをご覧ください。 リーフを追加する 木にノードを追加するときは、リーフとして追加するのか、それとも親として追加するのかを決める必要があります。今回は、処理として簡単なリーフとして追加することを考えましょう。たとえば、部下を持たない猪狩氏(2,3)の配下に新たな部下、国見氏を追加することを考えます。 今、猪狩氏の直径は1しかないので、そのままだと部下を持てません。そこで、まずは猪狩氏の円を「広げる」ことを考えます。国見氏を追加するためには、猪狩氏の右端座標より右の円の座標を一律2だけ大きくすればよいことがわかります。これは、リスト6のUPDATE文で可能で

    第5回 SQLで木構造を扱う~入れ子集合モデル (3)入れ子集合モデルにおける更新 | gihyo.jp
    hokorobi
    hokorobi 2012/05/02
  • 第5回 SQLで木構造を扱う~入れ子集合モデル (2)入れ子集合モデルにおける検索 | gihyo.jp

    入れ子集合モデルにおける検索 ルートとリーフを求める まず入れ子集合の検索で基となる考え方を理解しましょう。それは「包含関係を調べる」ことです。 たとえば、ルート(ここで言う足立社長)とリーフ(猪狩、木島氏ら)を求めることを考えます。リーフの円は、自分の中に下位の円を一つも含まないという特性を持ちます。したがって、NOT EXISTSによって表現できます(リスト1、図5⁠)⁠。 リスト1 リーフの円を求める SELECT * FROM OrgChart Boss WHERE NOT EXISTS (SELECT * FROM OrgChart Workers WHERE Workers.lft > Boss.lft AND Workers.lft < Boss.rgt); 図5 リスト1の実行結果

    第5回 SQLで木構造を扱う~入れ子集合モデル (2)入れ子集合モデルにおける検索 | gihyo.jp
    hokorobi
    hokorobi 2012/05/02
  • 第5回 SQLで木構造を扱う~入れ子集合モデル (1)入れ子集合モデルとは何か | gihyo.jp


     1 ITRDBXMLWeb1 IT
    第5回 SQLで木構造を扱う~入れ子集合モデル (1)入れ子集合モデルとは何か | gihyo.jp
    hokorobi
    hokorobi 2012/05/02
  • Redmineチケットの階層化の実装方法 - プログラマの思索

    Redmineチケットのテーブルissuesテーブルにlft, rgtというカラムがVer1.0からあって、何に使うのか分かっていなかったが、下記の記事を読んでようやく理解した。 ラフなメモ書き。 【元ネタ】 【Redmine】issuesテーブルのlft・rgtって? | Roppi.net SQLアタマアカデミー:第5回 SQLで木構造を扱う~入れ子集合モデル (1)入れ子集合モデルとは何か |gihyo.jp … 技術評論社 SQLアタマアカデミー:第5回 SQLで木構造を扱う~入れ子集合モデル (2)入れ子集合モデルにおける検索 |gihyo.jp … 技術評論社 SQLアタマアカデミー:第5回 SQLで木構造を扱う~入れ子集合モデル (3)入れ子集合モデルにおける更新 |gihyo.jp … 技術評論社 SQLアタマアカデミー:第6回 SQLで木構造を扱う~入れ子区間モデル (1

    Redmineチケットの階層化の実装方法 - プログラマの思索
    hokorobi
    hokorobi 2012/05/02
    入れ子集合モデル使えるかな? 重なっている場合にはどう表すんだろう? ちょっと読んでみよう。
  • INとEXISTSの実行計画の違い 理想は泥臭いアーキテクト


    (Oracle)INEXISTSEXISTS Oracle10gDBINEXISTS使  IN EXISTS INEXISTS() Oracle10
    hokorobi
    hokorobi 2012/04/09
  • 第2回 冗長性症候群~条件分岐をUNIONで表現するなかれ | gihyo.jp


      SQLSQL SQLSERSQL Emergency Room   AM10:00  
    第2回 冗長性症候群~条件分岐をUNIONで表現するなかれ | gihyo.jp
    hokorobi
    hokorobi 2011/10/17
  • 削除フラグのはなし

    Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricksJaime Crespo

    削除フラグのはなし
    hokorobi
    hokorobi 2011/08/10
    ON DELETE CASCADE とか知らなかった。安易に TRIGGER 使っちゃってる気がするな。
  • SQuirreL SQL Client Home Page

    SQuirreL SQL is hosted at: and IDEs used by SQuirreL developers: SQuirreL's SQL editor is based on: RSyntaxTextArea Feature highlights of 4.7.1: Multiple Alias modification Code completion offers contains mode Timeout for SQL executions Object tree: Save and restore selected nodes Data compare to clipboard Search function for table cell data popup Edit toggle button on SQL result tabs Graph Plugin

  • OracleのPIVOT句 - プログラマの思索


    SQLPIVOT使便  Oracle 11g  !!Oracle Oracle 11g R1PivotUnPivot1/5CodeZine OracleSCOTTJOB()DNAME()SQL select emp.deptno,dname ,sum(decode(job,'CLERK' ,sal,null)) "CLERK" ,sum(decode(job,'MANAGER' ,sal,null)) "MANAGER" ,sum(decode(job,'PRESIDENT',sal,null)) "PRESIDENT" ,sum(decode
    OracleのPIVOT句 - プログラマの思索
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
    hokorobi
    hokorobi 2011/01/08
  • SQL の相関サブクエリ (4) - SELECT 句で使う

    SQL の相関サブクエリ (3) - 量化された比較述語 ALL, ANY」 のつづき これまでは WHERE 句において相関サブクエリを利用する例を見た。今回は SELECT 句で使う。 前回と同じデータベースを対象にして 例えば、 性別ごとに年齢の順位 を求めたい。 SELECT 句で相関サブクエリ … とは言ったものの、いきなり書こうと思っても頭が混乱するのでゆっくりと。 まずは、「人」の属性に 「全体の人数」 を加えた結果を取得する。 select *, (select count(*) from persons) as num from persons as p1 結果は、 +----+---------+--------+-----+------+ | id | name | gender | age | num | +----+---------+--------+----

    SQL の相関サブクエリ (4) - SELECT 句で使う
    hokorobi
    hokorobi 2010/11/07
  • SQL の相関サブクエリ (3) - 量化された比較述語 ALL, ANY


    SQL exists  ALL  ANY  WHERE   XXXX  1 XXXX     Wikipedia  Wiese 2004    1  
    SQL の相関サブクエリ (3) - 量化された比較述語 ALL, ANY
    hokorobi
    hokorobi 2010/11/06
    ALL, ANYは使ったことないな。
  • 地獄のようによくわかるSQLテーブル結合 - こせきの技術日記


    JOIN  INNEROUTER INNER JOIN  JOIN LEFT OUTER JOIN  LEFT JOIN RIGHT OUTER JOIN  RIGHT JOIN  ON ...=...  USING()   NATURALJOINNATURALJOIN  WHERE  11  CROSSJOIN 使 
    地獄のようによくわかるSQLテーブル結合 - こせきの技術日記
    hokorobi
    hokorobi 2010/09/23
    これで覚えられるかな。
  • OracleのSQLのアンチパターンの問題集2

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    OracleのSQLのアンチパターンの問題集2
  • INとEXISTSの違い - SQLer 生島勘富 のブログ


    INEXISTS BETWEENINEXISTS    調 BGMiPod SQL 
    INとEXISTSの違い - SQLer 生島勘富 のブログ
    hokorobi
    hokorobi 2010/07/04
  • 情報処理推進機構:情報セキュリティ:脆弱性対策:安全なウェブサイトの作り方

    「安全なウェブサイトの作り方」は、IPAが届出(*1)を受けた脆弱性関連情報を基に、届出件数の多かった脆弱性や攻撃による影響度が大きい脆弱性を取り上げ、ウェブサイト開発者や運営者が適切なセキュリティを考慮したウェブサイトを作成するための資料です。 「安全なウェブサイトの作り方」改訂第7版の内容 第1章では、「ウェブアプリケーションのセキュリティ実装」として、SQLインジェクション 、OSコマンド・インジェクション やクロスサイト・スクリプティング 等11種類の脆弱性を取り上げ、それぞれの脆弱性で発生しうる脅威や特に注意が必要なウェブサイトの特徴等を解説し、脆弱性の原因そのものをなくす根的な解決策、攻撃による影響の低減を期待できる対策を示しています。 第2章では、「ウェブサイトの安全性向上のための取り組み」として、ウェブサーバの運用に関する対策やウェブサイトにおけるパスワードの取扱いに関す

    情報処理推進機構:情報セキュリティ:脆弱性対策:安全なウェブサイトの作り方