• ベストアンサー

DBについて教えてください。

オラクルの本を読んでて疑問というかちゃんと触ったことがないのでよくわからないことがあるのですが、列の表示で、 SQL> SELECT 従業員名 FROM 従業員; 従業員 -------------- 小泉 浜田 野中 田中 塩村 5行が選択されました。 という例題がありますが、 実際、ORACLEとJAVAであるシステムを作るとき、 SQL文というのはたとえばDBAccessクラスなどを作ってそこにSQLを書き込んだりしますよね?(たぶん・・・ そうすると、実際上の例のような事を業務でするのでしょうか? 本にはORACLE上でデータを取り出したりという例ばかりですが、 どうも目的がよくわかりません・・・。 DBはMS-Accessしかやったことがないのでイメージが湧きません・・・。 ORACLEに限らずPostgreSQLやMySQLも・・・。 変な説明で申し訳ないですが、理解していただけますでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • cse_ri2
  • ベストアンサー率25% (830/3286)
回答No.8

もう一点付け加えますと、SQL文の入門書などをただ本で 読むだけでは、『絶対に』理解できません。 例え理屈はわかったとしても、実際に業務で携わった時に 応用がきかなくて右往左往するハメに陥る可能性が高いです。 本を読みながら、かつSQL*Plusなどで実際にSQL文を入力して、 実際の動作というものを一つ一つ確認することが重要です。 そういうステップを一つ一つこなすことで、RDBの動作という ものを、理屈だけではなく肌で実感することができるのです。 面倒かもしれませんが、本当の応用力を身につけるにはそれが 最短の道であると断言できます。

その他の回答 (7)

  • cse_ri2
  • ベストアンサー率25% (830/3286)
回答No.7

皆さんのいうように、SQL*Plusのような対話型のソフトで SQL文を入力して一つ一つの例題の結果を確認することは 非常に重要です。 それが『基本』であるからです。 もちろん、応用という意味ではまた別のテクニックが存在 します。 しかし、JavaやVisual Basicの具体的な応用を解説した書籍では、 SQL文の基本がわかっていることを前提に書かれている本が 大半ですので、基本ができていない状態で応用に取り組む ことは難しいと思います。 またDBのメンテナンスを実際の業務で行うと、本に書いて あるようなSQL文を自分で入力する場面も多々あります。 今は目的がわからないまま勉強しているのでしょうが、いずれ 身にしみて分かる時がきますよ。

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.6

SQLの色々な応用例を習得する目的、ですか。 とりあえずは、「基本を身に着けること」でしょうかねぇ。 算数を知らずに帳簿が付けれないのと同様、SQLを知らずにORACLEは使えません。 オペレータとして、既に作成されたアプリケーションを使うのであれば、仰るようにSQLは必須ではありませんが、ORACLEを使用するアプリケーションを開発するのであれば、SQLは必須かもしれません。 大規模なアプリケーションでは、DBにアクセスする部分を完全に他の部分と切り離したりしますが、そこまでカプセル化しないアプリケーションも多いです。 もしken10さんが開発者の側で、ORACLEを使われるのであれば、SQLの習得は避けて通れない道です。 目的遂行のためには、様々なタイプのSQLを使い分ける必要がありますので、最低限、どんな種類のSQLがあるのか、といったことは押さえておく必要があります。 開発者でない場合でしたら、それほど気にしなくてもいいのかもしれません。

noname#30871
noname#30871
回答No.5

 データベースが裏で動いているシステムとしては、たとえばwebサイトもそうです。  特に、このサイトのようなところはデータベースが必須であることは、想像できると思います。  たとえばken10さんが「マイページ」のリンクをクリックすると、goo/OKwebのサイトの中では次のようなSQLが実行されます。(あくまでイメージです) SELECT 回答 FROM 回答テーブル WHERE 会員番号=97967 ORDER BY 回答日  実際にSQLを実行するのはもちろんデータベースですが、それを呼び出すのはken10さんの言うDBAccessクラスであったり、EJBコンポーネントであったりします。

  • nika
  • ベストアンサー率14% (66/470)
回答No.4

ある目的で集められたデータの集まりをDBではテーブルといいます。そのテーブルはフィールドとレコードで構成されていることは、ACCESSを知っている人ならわかっていると思います。 さて、例の意味ですが、テーブル(従業員)からフィールド(従業員名)をレコード(5件)抽出した、という意味であり、これがSQLを使うことでVB、C、JAVAなどのプログラムに組み込めますよと言っているのですね。 ACCESS上でもSQLは組み込み、使用することができますから別にオラクルを特別意識しなくてもいいでしょう。 DBは動いてしまえば、なかなかユーザから直接動いている感覚がわからくなるようなソフトです。唯一SQLを使ってDBと対話するようなイメージになります。 ACCESSはいつもそこにデータベースが動いていることがわかるソフトですから戸惑うことはありませんが、オラクルになるとネット上の別のPCで動いていて、それをJAVAやVBを使って利用するような構成になりますから、ken10さんのような思いもよくわかります。 データベースの潜在的能力の高さは、目を見張るものがあります。今では簡単に利用できます。SQLとデータベースの仕組みを理解すればプログラミングの90%は完成したと思っていいでしょう。オラクルはそれをインターネット上でさらに簡単にしょうというソフトですから、大規模なものがもっと手軽に作れるようになるのです。 がんばってください。

noname#5645
noname#5645
回答No.3

>業務でするのでしょうか? 業務では、業務員テーブルの他項目(たとえば生保会社区分とか)と、生保会社マスタなどの複数のテーブル間で、データを結合し、帳票や、何かに出すということではないのでしょうか。そうすれば・・・ 従業員  加入生保  引き落とし金額 -------------- 小泉   ○○生保  20,000円 などが可能になるかと思いますが。その金額20,000円を給与から引いてupdateという感じでしょうか。 MS-Accessで言うところのクエリで、抽出?(select),更新(update),削除(delete)などという操作も実のところSQL文ですよ。accessでクエリを作ろうとテーブルをリンクなどをした際に、SQLビューで確認するとsql文がわかりますよ。

  • epson01
  • ベストアンサー率12% (120/933)
回答No.2

#1です。 私の例題に少々誤りがあります。 「以上」なのに等号が「より上」になっていたり、順番指定なのにm表示項目に含めていない。などです。おわかりでしょうか? それと、そのうちにUPDATEやDELETEやINSERT命令なども、押し寄せてきます。 また、SELECT文でもそのうちにややこしくなってきますぞぃ!

  • epson01
  • ベストアンサー率12% (120/933)
回答No.1

初歩の例題だからそのように感じるのでしょう。 実務では「例」と同じということは無いのですが、例題のように「SELECT文」は基本中の基本で、そこにはWHERE句やORDER句もあります。 たとえば収入100万円以上の人で金額の多い人順に表示しなさい。と言った場合 select 従業員名 from 従業員 where 年収 > 1000000 and 性別="男性" order by 年収 のようになります。 このようにSQLはDBの基本中の基本ですので、不思議に思わずにひとつづつ押さえていって下さい。

関連するQ&A