2010年9月10日(金) 09:30 JST

素直なSQL の書き方 - 相関サブクエリの比較 -

  • 印刷用画面
  • 2010年8月25日(水) 01:25 JST
  • 投稿者:
    hidehi

前々回で相関サブクエリのかんたんな紹介、
前回で EXISTS を使用した相関サブクエリの紹介、をしてきました。

両方とも、例では相関サブクエリをひとつだけ使用しましたが、
ひとつだけしか利用できないわけではありません。

今回は 2つの相関したサブクエリを比較させることを通して、
複数の相関サブクエリを利用することも可能だということをお話したいと思います。

>> 続きを読む...

素直なSQL の書き方 - 相関サブクエリと EXISTS -

  • 印刷用画面
  • 2010年8月20日(金) 02:15 JST
  • 投稿者:
    hidehi

前回、相関サブクエリは、
メインのクエリの各行に対して相関したサブクエリの結果を利用する、
ということの簡単な解説をしました。

前回は、単純な WHERE 句の比較条件での相関した選択でしたが、
実際の相関サブクエリは EXISTS述語と共に使われていることが多くあります。

WHERE x = y とか WHERE x IN (a, b, c) などといったかたちはパッと見て理解できると思うのですが、
WHERE EXISTS (SELECT ...) というのはあまり直感的にわかりやすいものではないのではないでしょうか??

今回は、この EXISTS述語を使った相関サブクエリの簡単な説明をしてみたいと思います。

>> 続きを読む...

SQL で各行毎に変わる条件で評価をしたい - 相関サブクエリ -

  • 印刷用画面
  • 2010年8月 6日(金) 23:42 JST
  • 投稿者:
    hidehi

以前、SQL の書き方について、ヴェン図を描くように、データの集合の重なりを考えていくことを基本として紹介しました。

ほとんどの SQL はその考え方でいいのですが、「相関サブクエリ」という形式のものは逆にそのイメージにとらわれて解釈がかえって難しくなることがあります。

>> 続きを読む...

「RDB & SQL 入門」

  • 印刷用画面
  • 2010年6月25日(金) 02:27 JST
  • 投稿者:
    hidehi

WEB+DB PRESS Vol.57」 の第二特集として、「RDB & SQL 入門」という総計 29ページの特集記事が載っています。

「データベースとは何か」から始まって、SQL による「データ操作の基礎」、「少し高度な SQL」から「トランザクションと更新」に至るまで、とても簡潔にわかりやすくデータベースの基本的な知識がまとめられています。

例として載っている SQL は全部 DB2 for IBM i で実行してみましたが、もちろん(そもそも実行できないことになっている例を除いて)全部実行可能でした。
最新の DB2 for i である V7R1 はもとより、その一つ前のバージョンである V6R1(2008年出荷) でもすべてきちんと正しい結果が返ってくることを確認ずみです。

あらためてリレーショナルデータベースと SQL の知識を整理してみるのはいかがでしょうか??
DB2 for i を活用するための新たな視点が得られると思いますよ!!

>> 続きを読む...

C と RPG でプログラムの構造が似ているわけ - モジュール化について -

  • 印刷用画面
  • 2010年6月20日(日) 02:05 JST
  • 投稿者:
    hidehi

今まで、「RPG は C の標準関数もカンタンに使えるハイブリッド言語!?」、「C より RPG の方が関数の使い方がわかりやすい!?」、「ILE RPG と C は似ている!?」といった RPG についての一連の記事で、C との類似性、RPG のシンプルさ、「関数」の有用性についてお話ししてきました。

ポイントは三つ、

  • RPG を学ぶのは簡単だ、ということ、
  • その結果 C を読み書きするための基礎スキルにもなる、
  • モジュール化の考え方が身につく、

になります。

逆に言えば、C をちゃんとわかっている人であれば RPG なんてとっても簡単なはずなので、
RPG プログラマーが少ない、といってもそれほど心配することはないのでは?! と言う気もしますね。

プログラムの構造も、構文もとてもよく似ていることには理由があります。
これは、RPG が C を真似した、というわけではなく必然的に似てしまっている、ということなんですね。

>> 続きを読む...

「関数」と "モジュール化"

  • 印刷用画面
  • 2010年6月15日(火) 05:51 JST
  • 投稿者:
    hidehi

このへんで、なぜ「関数」を使うか、についてまとめておきましょう。

>> 続きを読む...

RPG は C の標準関数もカンタンに使えるハイブリッド言語!?

  • 印刷用画面
  • 2010年6月10日(木) 02:43 JST
  • 投稿者:
    hidehi

前回前々回は、関数の使い方をカンタンに見てきました。
RPG では、C でのちょっと初心者には難しいポインタの書き方等々に煩わされずに「関数」を書ける、というようなお話をしました。

関数を自由に使いこなすことができるようになるためには、本当は関数の定義の仕方と、どう使うと効果的かの二点がわかればいいわけです。
処理してもらいたい結果が増えただけで、ポインタの知識やその書き方の知識、さらに引数が"値渡し"か"参照渡し"かなどということまで知らないといけない、というのはやはり初学者にとっては正直厳しい。
そういう枝葉末節にとらわれず、まずは「関数とはどういうものか」を大づかみに理解することができる、ということができるとプログラミングを学ぶことはもっとラクになります。
細かいことや難しいことは、おいおい必要になったときにおぼえていけばいいんです。
実際、RPG にもポインタはありますし、"値渡し"だってできるようになっています。でもそれは、それが必要なコーディングに直面してからおぼえても間に合います。
「関数」をどういうふうに使うか、をまずは学んで慣れていくことが、逆にどんなプログラミング言語にも通じるスキルを得ることになります。

RPG はそんな出発点として、とてもいい言語だと言えるでしょう。
プログラミングの基本だけでできているような言語ですので、
もし他言語のスキルがきちんとあれば習得が難しいものではありませんし、
また、これから学ぶとしたら最もシンプルに基本を学べる言語でもあります。

では、今回も続けて関数の使い方を見ていきたいと思います。
今までは、同じプログラムの中に関数を定義して使うやり方をご紹介してきましたが、実はそれだけが関数の使い方ではありません。
別のプログラムに存在していてもいいんです。
より共有がしやすくなりますね。

さらに、RPG で書かれていなくてもいいんです。

RPG の中から C の標準ライブラリ関数を使用する、なんてこともできてしまうんですね!!

「C でこんな関数があるんだけど、RPG にはないの?!」
「どうぞ、そのままお使いください!!」

 

>> 続きを読む...

C より RPG の方が関数の使い方がわかりやすい!?

  • 印刷用画面
  • 2010年6月 3日(木) 04:02 JST
  • 投稿者:
    hidehi

前回は、C とプログラム全体の構成も、個々の構文も RPG はよく似ているというお話でした。

でも、それだけではなく、C だとけっこうわかりにくいこと、書き方を理解するのに苦労することを RPG では素直にできてしまう、ということを今回はお話ししてみたいと思います。

>> 続きを読む...

ILE RPG と C は似ている!?

  • 印刷用画面
  • 2010年5月27日(木) 02:16 JST
  • 投稿者:
    hidehi

前回は、今現在の ILE RPG はプログラミングの基礎を学ぶにはとてもいい言語だというお話をしました。

自然と C の知識の入門にもなる、というお話もしました。

Java だって C に似せて作られたように、ある意味現代に生きているプログラミングの基本はすべて C によって確立されたと言っても言い過ぎにならないと思います。
つまり、C を理解できるようになるといろんなプログラミング言語を学ぶうえでとても助けになるわけです。

RPG を書けるようになる、というのは IBM i を扱ううえではとてもチカラになります。
さらに C もわかるようになるための基礎を身につけられる、という特典もついてくる、ということなんですね。

ということで今回は、実際どのくらい、どんなふうに似ているか、をお話したいと思います。

>> 続きを読む...

RPG って要するにカンタンな C!?

  • 印刷用画面
  • 2010年5月23日(日) 01:56 JST
  • 投稿者:
    hidehi

今さら RPG なんかを学んでもイミないんじゃない? とか聞かれることがあったりするのですが、実は立派にあるんです。

RPG をちゃんと書けるようになる、というのはプログラミングの基本を身につけるための最短距離なんじゃないか、とも思っています。

なぜなら、今現在の RPG は "面倒なクセのない C" と言っていいようなプログラミング言語になっているからです。

そもそも「なぜ C?」とか「いまさら C?」と思うかもしれませんね?!
本屋さんに行って見てみてください。Java だとか C++ だとか Ruby だとか新しい言語があまたある中、未だに C の本は大量に出版され続けていることがわかります。

なぜ C を学ぶか? なぜこんなに C の本が必要か? については、そういった本の前書きを見てみていただきたいのですが、、

C や RPG のような "手続き型言語" には、
プログラミングの基本となる "構造化" と "モジュール化" を、
シンプルに(「クラス」だとか「オブジェクト」だとかいった"概念"に煩わされずに)学ぶことができる、
という大きな利点があるんです。 

>> 続きを読む...

iForumサポーター

      iFourmの趣旨にご賛同いただき、ご支援いただける企業または個人を募集しています。詳しくは、info@iforum.ne.jp へお願いします。


オンラインユーザ

ゲストユーザ: 16

サイトカレンダ

« 2010年 09月 »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30