• ベストアンサー

初めて触るSQL

SQLについてはまったくの初心者なのですが、奮起して始めてみようと考えています。 ひとまずMySQLを導入し、入門書を読みながら付属クライアントで操作して「お~追加できた~」とかやってるレベルなのですが、いくつか確認したいことがあるので教えてください。以下、私の脳内での認識です。 1) SQLは問い合わせの仕様であり、クライアントから見ればぜんぶ同じだが、基本的に各エンジンの持っているデータベースの中身に互換性はない。 2) SQLサーバは、クライアントがなければ意味がなく、運用時には自分で用意しないといけない。 3) MySQL,、PostgreSQLなどのフリーに比べ、商用エンジンは機能が段違いである。 4) MS-AccessはSQLクライアントとして使える。 5) ↑そのためには、自分でコーディングをしなくてはいけない。 6) ODBCとはなんですか?いつ使うと嬉しいんですか? 7) ↑自作ソフトにコレを組み込むとデータベースへのアクセスが容易になる。 8) SQLとは、エンジンに対する質問と応答のインタフェースやフォーマットを定義したものであり、クライアント側のソフトではこれを実装すればよい。 豪快に勘違いしてるかもしれませんが、正誤を含めてよろしくお願いします。

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

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ。 私の分かる範囲で補足しておきます。 1) SQL はデータベースを操作するための言語仕様でISO 等で   標準化されていますが、各ベンダーによって独自に拡張が   行われています。   従って、あるデータベースで動作するSQL 文が他のデータベース   でそのまま動作する保証はありません。 2) SQLサーバって、データベースのサーバ側の事ですよね。   (MS のSQL Server ではなく) その場合、   クライアント : サーバに対して (SQL文を発行すると言う形で)    処理をリクエストする機能   サーバ : クライアントからのリクエストを受け取って、実際に    処理を行い結果をクライアントに返す機能   と言う感じになります。   従って、どちらか一方だけでは確かに意味を成しません。 3), 4) 正しいと思います。 5) ODBC で接続すれば、特にプログラミングの必要はありません。 6) Open Database Connectivity の略です。   「データベース接続標準」とでも訳せば良いでしょうか?   ODBC はMicrosoft が提唱したデータベースアクセスに関する   仕様で、各データベースベンダーが自社データベースにアクセス   するためのODBC ドライバを提供します。   クライアントアプリケーションがODBC に対応させる事で、   サーバ側のデータベースに依存しないアプリケーションを   作成する事ができます。 7) ODBC を使用する事でデータベースのアクセスが容易になる   と言う事はありません。   ODBC は実行するSQL 文を文字列 (パラメータ) としてODBC   ライブラリを呼び出すようになっていますので、SQL を直接使用   した方が、簡単です。   ODBC のインターフェイスを使用してアプリケーションを作成すれば、   サーバ側のデータベースが変更になった時の対応は容易になります。 8) SQL は、Structured Query Language の略です。   通常は「構造化照会言語」と訳されています。   SQL は、データベースを操作するための言語仕様です。   クライアントは、SQL を使用する事でデータベースを効率的に操作する   事ができます。   

pythian
質問者

お礼

ありがとうございます。プログラム言語をインストールするとき、ODBCを入れます云々というのがありましたが、自作のソフトウェアがODBCに対応することで容易にクエリを発行できる・・・ということなんでしょうか。ここらへんは書籍で勉強したほうが良さそうですね。 いま、Accessからの問い合わせに興味を持っています。よく、店頭レジの在庫管理なんかで検索画面が出ていますが、あぁいうのを設計できるスキルがあればなと思います(これもやっぱり入門書がいいでしょうか(汗)。 もし、タコにもわかる解説ページなどありましたら紹介していただけたら嬉しいです。m(_ _)m

その他の回答 (2)

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.3

こんにちわ。 #1 のmuyoshid です。 > 自作のソフトウェアがODBCに対応することで容易にクエリを > 発行できる・・・ということなんでしょうか。 について補足しておきます。 データベースにアクセスする部分をODBC インターフェイスを使用して 実装したとしても、クエリを発行するのが容易になると言う訳では ありません。 色々ハンドルを獲得しなきゃいけないので、却って面倒です。 ただ、データソースを変更するだけで、別のデータベースをアクセス させる事ができるのがメリットになると思います。 (DDBC から発行しているSQL 文がベンダー独自の機能を使用していない 事が前提となりますが・・・。)

参考URL:
http://homepage1.nifty.com/kojama/works/rdbms/vc.html
  • misoka
  • ベストアンサー率35% (56/160)
回答No.2

No.1のかたがお答えになってらっしゃいますね。 でも、一応わたしも... 2) 「運用時には自分で用意しないといけない」という点が ちょっと違ってる可能性があるかもしれないですね。 たとえば、この「教えて!goo」でもデータベースが 使われているわけですが、運用に際して何かを 「自分で用意」しているかっていうと、そうではない。 たとえば、私はOSとブラウザ以外は用意してないわけで... # 「自分」が指している意味によってくるわけですが。 # 念のため。 クライアントがないと意味ないっていうのは、そのとおり ですね。 3) これについては、どんな機能を基準にするのか にもよってきます。 極端な話、軽さを重視するなら、OracleやSQL Serverより MySQLのほうがよっぽど優秀ってことにもなります。 だから、絶対的に常にいつも間違いなく 商用がいいって考えてしまうと、たまに間違えます。 たまに、ですが。 人によって/価値観によって/用途によって 違ってくる場合もあるわけです。 7) 「データベースへのアクセスが容易になる」という 場合は多いです。 基本的に、そのとおりです。 でも、念のために言うと、 ODBCがその手の唯一のミドルウェアではありませんし、 常に最善の手段とも限りません。 もっと便利なミドルウェアが提供されている場合も ありますし、されていない場合もあります。 念のため。 8) ニュアンスとしての理解は、きっとOKなんでしょうね。 # 言葉の使い方に、ちょっと「?」がある... もっとも、クライアントはSQLだけあればいいって わけじゃないです。その前にサーバと通信して、 コネクションを張ることが必要ですし...。 もしVBなどで実装していくなら、そういう手順も必要に なりますよ。ODBCを使うにせよ、別のものを使うにせよ。 何だか細っかい話ばっかり。 恐縮です。もうやめます。 失礼しました。

pythian
質問者

お礼

いえいえ、参考になりました。ありがとうございます。 なんとなくですが実体が見えてきた気がします。 私の場合はODBCとは何か、から始めないといけませんが・・・(汗

関連するQ&A