- ベストアンサー
PL/SQLとMS SQLServerの違いを教えてください
SQLを学ぼうとしているのですが。。。 概要で煮詰まってしまいました;; SQLはRDBMSにおいてのデータベース言語で、直接データベースに宣言を実行でき、PL/SQLはOracle社が開発した、手続き型に組み込めるSQLで、 MS SQLServerは。。。? Oracle SQLは。。。? と、調べれは調べるほどに、訳が分からなくなってきました; PL/SQLとMS SQLServerの違いはなんなのでしょうか? Oracle SQLとSQLは別物と考えてよいのでしょうか? 使用できるOSが違うのか、組み込める言語が特定されているのか、具体的な違いが判らず、どのような条件下で使用したらよいのかわかりません。 お手数ですがご解答よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
SQLServerは既存のストアドプロシージャに加えて.netでも記述できるようになったのです。誤解させてすみません。「SQL CLR」で検索をかけてもらえればわかると思います。 DBに対して言語は問わないと思います。 MS製品ならADOやODBCを通じて、javaならJDBCを通じてDBに接続します。これらはデータベースと言語のインタフェースになって、DB間の色々な違いを吸収してくれます。 OSはMS SQLServerはWinでしか動かないと思います。 OracleはWin版やLinux版などOS毎に発売されています。
その他の回答 (3)
- chukenkenkou
- ベストアンサー率43% (833/1926)
#3です。 >SQL Serverのストアドプロシージャ言語で調べると「Transact-SQL」 そうですね。失礼しました。 商用RDBMSをリリースしている会社は、主なものでも以下のようなものがあります。 Oracle・・・Oracle社 SQL Server・・・マイクロソフト DB2(UDB)・・・IBM また、国産RDBMSにも、以下のようなものがあります。 Symfoware・・・富士通 HiRDB・・・日立 RIQS・・・NEC オープンソースでは、以下のようなものがあります。 MySQL PostgeSQL SQLiteなど 各RDBMSでは、標準SQL準拠で機能を実装する場合もあれば、標準SQLにない独自機能も数多く実装しています。特定RDBMSが開発した機能が、後に標準SQLに入ることもあれば、標準SQLにはならず、独自機能としてそのまま残る場合もあります。 Wikipediaに、ストアドプロシジャのコード例を記載しています。 http://ja.wikipedia.org/wiki/CREATE_PROCEDURE MySQL、PostgreSQL、SQL Serverのコード例は、私自身が書き込んだものなので、参考まで。
お礼
お礼が遅くなって、ごめんなさい。。。! chukenkenkouさん ご返答ありがとうございます。 リレーショナルデータベースの種類がなぜにて多様にあるのか、 悩みたくなるほどに沢山ありますね;; ストアドプロシージャのコード例、拝見いたしました。 。。。先ず、コードの一つ一つの意味がまだ、習得できていないので、 詳しくは解析できていませんが、学んで理解していきたいです。 Oralce SQL、SQLServer SQLの学習を初めており、終了しましたらストアドプロシージャ言語の学習に入っていこうと思います。 (PL/SQLを学ぼうと思っています) 沢山質問に答えていただいて、ありがとうございます。
- chukenkenkou
- ベストアンサー率43% (833/1926)
違いについては、他の方の説明通りです。 ストアドプロシジャは、SQL99で標準SQLに入りました。 Oracleなど、先行してストアドプロシジャを独自機能として実装している場合、その記述言語に、PL/SQLなどの独自の名前がつき、実装されています。 PostgreSQLのPLpg/SQLなども同様です。 SQL Serverのストアドプロシジャは標準SQL準拠ではないですが、特別な呼び名は付いていません。 DB2やMySQLのストアドプロシジャは、標準SQL準拠であり、こちらも特別な呼び名は付けていません。 http://www.atmarkit.co.jp/fnetwork/tokusyuu/01sql99/sql99_1a.html
お礼
chukenkenkouさん ご返答ありがとうございます。 な、なんだか初めて聞く単語が多数出てきたのですが。。。; PostgreSQLもRDBの一つでストアドプロシージャ言語がPL/pgSQL。 MySQL、DB2もRDBの一つ。 ストアドプロシージャの言語で独自の名称があるのはPL/SQLとPL/pgSQLなど。。。 で、有ってますでしょうか; 疑問に思ったのですが、 SQL Serverのストアドプロシージャ言語で調べると「Transact-SQL」がヒットするのですが、これは「特別な呼び名」とはまた違うのでしょうか? DBをリリースしている会社も沢山あって、フリーでも沢山あって、其の分のストアドプロシージャの数もあって。。。凄い数の種類です; が、色々な種類を知ることが出来勉強になりました。ありがとうございます。
- nfushi
- ベストアンサー率31% (39/122)
オラクル社のDBがOracle。 マイクロソフト社のDBがSQL Server。 ここまではOKですよね? OracleもSQLServerもそれぞれストアドプロシージャと呼ばれる、DB内部に記述できるプログラム言語があります。 私が知る限りでは、これらはDBによってバラバラで統一されていないものです。 そして、PL/SQLとはOracleで使用されるストアドプロシージャの言語名です。 ちなみにSQLServerは2005から.netFrameworkでストアドを記述できるようになりました。
お礼
! お早いご返答ありがとうございます。 Oracle社のDBがOracleでストアドプロシージャの言語がPL/SQL。 マイクロソフト社のDBがSQLServerでストアドプロシージャの言語が.netFramework。 ですね。ありがとうございます! SQLServerもストアドプロシージャに近いものだと思っておりました;(危ない・・・) ここで質問なのですが、 Oracle とSQLServerはどういった言語ででも使用できるのでしょうか? マクロやスクリプトに組み込む際、どちらを使用するかなどは決まっているのでしょうか? OSに合わせてDBを決定しなければならないとか、在るのでしょうか?? 質問攻めでゴメンなさい。 ご返答よろしくお願いいたします。
お礼
nfushiさん ご返答ありがとうございます。 SQLCLRの機能によってSQLServer 2005バージョンから、ストアドプロシージャに.netも提供。 言語によるDBの使い分けは無く、 OS毎にDBを使い分けている。 と解釈したのですが。。。あってますでしょうか; 今回もご返答ありがとうございました。 ストアドプロシージャの言語はまだまだありそうですね; OracleとSQLServerのSQLから学習していき、 PL/SQLやTransact-SQL?を学習していこうと思います。