- ベストアンサー
SQLって何のためにあるのでしょうか?
素人の疑問です。 SQL言語はデータベースを操作するのに使われますが、Accessみたいなインターフェイスを作ってしまえばこのややこしい言語をいちいち覚えなくてすむし多くの人がデータベースを使えるようになると思うのですが、なぜわざわざSQL言語を使って操作するのでしょうか?
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
移植性と汎用性のためでしょう。 SQLで書かれていれば、基本的にオラクルでもSQLサーバーにでも移植できますが、アクセスのGUIがそこら辺を隠してしまうと移植できなくなります。 またDBをバックグラウンドにして、少し複雑なプログラムを作ろうとすると、アクセスのGUIだけでは生産性が落ちます。他の言語で作ろうとした場合、アクセスのGUI(クエリー)を介してやるのはかえって面倒です。アクセスでVBAを使用する際にも、直接SQLを使った方が楽です。 ちなみに私の場合、不勉強のせいか、さっぱりSQLをマスターできません。なのでアクセスのGUI(クエリー)で動作試験などしてから、SQLビューで見てSQL文を取り出しています(^^;
その他の回答 (9)
- don_go
- ベストアンサー率31% (336/1059)
オートマ車とマニュアル車の様な物です。 性能限界近くの走りを求めていない、多くの一般ユーザー にとってはオートマ車が楽ですが、走行性能を求める人や レースカー等ではマニュアル車が求められます。 SQL言語によるデータベース操作(変速機のギアチェンジ)を GUI(自動)を介して行うか直接(手動)で行うかの違いです。 AccessのGUIによるDB定義は一見すれば楽ですが、現在の 状態を資料として残したり、後から改変された場合にどの 部分が変更されたかの判別が極めて難しくなる場合が多い ので、業務として使用する場合には注意が必要です。 #期待通りの結果がでない場合、結局Accessが吐く奇怪な #SQL文を解析する羽目になって苦しむ事も....
お礼
アクセスはユーザーに使いやすくしてあるけど機能は十分ではないのですね。 わかりやすい説明ありがとうございました。
- nora1962
- ベストアンサー率60% (431/717)
SQLで考えたほうが分かりやすいものもあるから、私はもっぱらSQL派です。 ACCESSのGUIはFROM句のサブクエリ(インラインビュー)を表せませんし。 SQLの可能性という点では次の本が参考になるかも、 http://www.7andy.jp/books/detail/-/accd/31976176
お礼
SQLを覚えた方が簡単に操作できる場合もあるのですね。 勉強になりました。 ありがとうございました。
Q、SQLで操作するよりAccessみたいなインターフェイスの方が便利なんじゃないか? A、そりゃーそうです。ユーザにとってはアプリケーションの操作性が全てです。 1980年代、UNIX版のデータベース言語にSQLを直接に打ち込んで処理するツールが。 で、それに酷似したツールを開発して各所に配布。 SELECT 商品マスター.品名, 商品管理マスター.枝番1, 商品管理マスター.枝番2, 商品管理マスター.枝番3, [当月期首在庫]+[当月仕入数]-[当月売上数]+[当月入庫数]-[当月出庫数] AS 現在庫数 FROM (仕入先マスター INNER JOIN 商品マスター ON 仕入先マスター.ID = 商品マスター.仕入先ID) INNER JOIN 商品管理マスター ON 商品マスター.ID = 商品管理マスター.商品ID WHERE ([当月期首在庫]+[当月仕入数]-[当月売上数]+[当月入庫数]-[当月出庫数])<>0 AND (仕入先マスター.フリガナ) Like '%{現在庫を参照する仕入先のフリガナを入力して下さい}%' ORDER BY 商品マスター.品名; このツールでは、このようなSQL文を記憶できます。 '%{XXX}%' の部分は入力されたデータと置換してSQL文を実行します。 実行結果の表示では、単なるエコー形式と表形式での整形を指示できます。 もちろん、印刷も可能です。 Accessだけではなくネットワーク上のいかなるDBのデータも参照できます。 もちろん、その際、SQLの履歴はDB毎に記憶されます。 なお、Update文、Insert文、Delete文の実行は管理者以外は不能なように仕組んでいます。 私としては、究極のツールを配布したつもりです。 しかし、このツールが実際に使われることは永遠にないでしょう。 ユーザが現実にSQL文を書いて実行するなんてありえない話です。 当然のことです。 このツールの各種機能が入力・処理・参照フォームとレポートを起動するボタン一つで実現。 となれば、ユーザも使うでしょうね。 そうなると、そこに出現するのはAccessの類です。 もちろん、配布ツールとAccessとの差異は SQLを手打ちするのかアプリケーションがそれを代行するのか? どっちにしろ SQL文が活躍していることには違いはありません。 まあ、わざわざ、私が配布したツールを使うのはSQLオタクのユーザ位のもんでしょう。 普通は、定型化されたアプリケーションを使う筈です。
お礼
すみません、SQL文が読めません。 究極のツールを配布されたのですね。 私にもわかる時がくるようにSQLを勉強していきます。 ありがとうございました。
- chie65536
- ベストアンサー率41% (2512/6032)
>Accessみたいなインターフェイスを作ってしまえばこのややこしい言語をいちいち覚えなくてすむし多くの人がデータベースを使えるようになると思うのですが、なぜわざわざSQL言語を使って操作するのでしょうか? Accessのクエリデザインの画面で自動生成されたSQL文が腐っているからです。 クエリデザインの画面で、WHERE条件にちょっと複雑な条件を指定しただけで、出来上がるSQL文のWHERE句は「同じ条件文が何度も繰り返して現れる、冗長で処理が遅く使い物にならない状態」になります。 素人が使うだけなら業務で使用する訳じゃないので「冗長で処理が遅く使い物にならない状態」でも構いませんが、プロが業務で使用する場合Accessが自動生成したSQL文は使い物になりません。
お礼
アクセスで作成されるSQL文は非効率的なんですね。 勉強になりました。 ありがとうございました。
>今回の質問の意図はSQLで操作するよりAccessみたいなインターフェイスの方が便利なんじゃないか? web上でSQLを発行したことあります? 大抵はブラウザのボタンを押すことによってSQLを発行しているのですから、それでよいのでないでしょうか。
お礼
ありがとうございました。
- cse_ri2
- ベストアンサー率25% (830/3286)
ローマは一日にしてならず、ですね。 プロの視点で言わせてもらうと、AccessのようなGUIのツールが発行するSQLは、かなり非効率なことが多いです。 一日に何百万件ものアクセスがあるような巨大なデータベースを運用する場合、非効率なSQLが発行されると、どんなに高性能なサーバーを導入しても、ユーザーからの要求にデータベースが応えることができません。 効率よく高速度な結果を得るには、人がそれを実現するSQLをコーディングする必要があります。 ただ、Accessが売れているように、この手のツールは手でSQLを書くよりはるかに楽なので、昔からヒット商品が多いです。 Accessの他に、C/S開発ツールのPowerBuilerとか、BI系の商品はだいたいそのような機能をもっています。
お礼
アクセスはSQLとしては万能ではないのですね。 勉強になりました。 ありがとうございました。
一般の人にとっては、SQLなど使う機会は無いでしょうが GUI環境でしか使えない、Accessに対し SQLは、GUI環境以外にも使用できます。 UnixやLinuxなどでもSQLは使用できますが、Accessはどうでしょう? 一般の人は、コンピュータOSといえばWindows,やMacOSどまりですが この世の中には、VxworksなどもそうですがたくさんのOSがあります。
お礼
アクセスはSQLの末端に存在しているのですね。 ありがとうございました。
ウヌヌ! SQL言語の存在がAccess存立の大前提じゃないですか?
お礼
確かにそうです。 素人でよくわかっていないので質問自体があやふやではっきりと書けないのですが、今回の質問の意図はSQLで操作するよりAccessみたいなインターフェイスの方が便利なんじゃないか?ということです。 回答ありがとうございました。
- yamato1957
- ベストアンサー率24% (2279/9313)
コンソールから即入力できて、どんな環境でもサクサク動くので 保守管理の場合、ダイレクト入力のほうが便利なのです。 素人向けにはAccessのようなものが便利でしょうね。
お礼
回答ありがとうございます。 SQLの利点がわかりました。 ところでSQLは保守管理用で一般のユーザがSQLを使って操作するわけではないのでしょうか?
お礼
アクセスはあくまでSQLの一部に過ぎないのですね。 勉強になりました。 ありがとうございました。