SQLer 生島勘富 のブログ

RDB・SQLの話題を中心に情報発信をしています。

SQL概論

SQLとはなんぞや?

SQLとはなんぞや?SQLができた当時は、COBOLのロジックを「なんとか簡単にできないか?」ということが主な目的でしたが、オブジェクト指向言語でSQLがない状態を考えてみましょう。 例えばJOINを書いてみる。 以下のSQL文をオブジェクト指向言語っぽく書いて…

SQLは最も高級言語2

SQLは、現在、普及している言語の中で最も高級な言語です。言語は高級になればなるほど人間に近づきシンプルにやりたいことが実現できる反面、実行速度は遅くなり、できることも限られます。 最も低級なマシン語と≒のアセンブリ言語であれば、コンピュータで…

SQLは最も高級言語

SQLは現在、普及している言語の中で最も高級な言語です。 高級か低級かというのは、どれだけCPU(の命令)と近いかです。CPUに近ければ近いほど低級でCPUから遠い、つまり、人間に近いほど高級言語ということになり、一般的に低級ほど扱うのは難しくなります…

SQLとオブジェクト指向言語の切替

SQLのイメージと他の言語のイメージ1 SQLのイメージと他の言語のイメージ2 の続きです。 ユーザインタフェースとのアクセスはストアドプロシージャで。 最終的に必要なシステムはこんな形だとします。 RDBサーバにあるデータで作れる形はここまでだとしま…

SQLはトップダウンで考える

以前、複雑なSQLをデチューンしていくというのを書きました。 ■1.OLAP関数を使って一括処理するパターン ■2.誤差配賦額をファンクションを使って計算するパターン ■3.誤差配賦額をファンクション内でループして計算するパターン ■4.ワークテーブル(ルー…

SQLのイメージと他の言語のイメージ2

SQLで処理する場合のイメージ 他の言語で処理する場合のイメージ 他の言語で処理するのは非効率になる 当たり前の話ですが材料と結果は同じです。途中経過が違うだけですが、理論的には、RDBMSを使うのにSQLで処理しなければ、必ず余計な処理が必要になりな…

SQLのイメージと他の言語のイメージ

Twitterで検索したりすると、SQLが分からないという人が相も変わらず非常に多い。おそらく、分からないという人は文法から入っているよね、いや、ほぼ間違いない。しかし、遠回りに見えてもイメージから入るべきです。 初めのうちは、AccessなどGUIでSQLが書…

SQLの句や述語で使えるもの2

ご意見頂戴して、昨日の表を修正しました。 SELECT句、ORDER BY句で、テーブル関数は最終的にはサブクエリーにするので微妙なのですけれど、×としました。 普通は使わないので△の方が正しかったような気がするが……。この辺は微妙です。 エクセルファイルはこ…

SQLの句や述語で使えるもの

分かりにくいタイトルで手抜きですが。 漠然と書いている人が多いような気がして整理してみました。勝手に理解している人もいると思いますが、ものすごく重要なことですので完全に頭に入れてください。 皆さん、イメージあってますか? 再利用する方もいるか…

SQLは文法からやっちゃダメ

SQLができる人はたくさんいます。しかし、ほとんどの人は文法から勉強し、文法と実経験からSQLのスキルをつけていったのじゃないかと思う。 同じくオブジェクト指向言語などの手続き型言語も、文法から覚えた人がほとんどじゃないかな。 私の知る限り、手続…

インデックスについて

インデックスが分かってない人が非常に多い。 現実にあった例で、60カラムあるテーブルに、前から3つずつの複合インデックスを20個作るとか、30カラムを1つの複合インデックスにするとか、意味が分かっていない人が非常に多くいます。 ※ 詳しい人へ。ここで…

ストアドプロシージャでシステムを構築するとDBサーバの負荷が増えるか

結論から書くとストアドプロシージャでシステムを構築するとDBサーバの負荷は減ります。WEBシステムと仮定してDBサーバとAPサーバの関係で書きますが、C/Sも同じになるので、C/Sで考える人は、APサーバをクライアントと置き換えて読んでください。 その理由…

NoSQLとSQLについて

NoSQL(Not Only SQL)とは、SQLを使わないKVS(Key Value Store)などを指しますが、最近流行のキーワードです。今日はNoSQLについて。 SQLは英語であり仕様書である SQLは英語であり仕様書である。と書いてきました。 SQLは、プログラム(アルゴリズム)を…

SQLとはどんな言語か - SQLは仕様書です

SQLとはどんな言語かなぜ多くの人が違和感を持つかというと、多くの人が、「プログラミング言語とは手続き型言語である」(オブジェクト指向言語も広義の手続き型言語)という思い込みがあるからでしょう。 手続き型言語の中には 非構造化言語(FORTRANなど…