こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PL/SQLとMS SQLServerの違いを教えてください

SQLを学ぼうとしているのですが。。。
概要で煮詰まってしまいました;;

SQLはRDBMSにおいてのデータベース言語で、直接データベースに宣言を実行でき、PL/SQLはOracle社が開発した、手続き型に組み込めるSQLで、
MS SQLServerは。。。?
Oracle SQLは。。。?

と、調べれは調べるほどに、訳が分からなくなってきました;

PL/SQLとMS SQLServerの違いはなんなのでしょうか?
Oracle SQLとSQLは別物と考えてよいのでしょうか?

使用できるOSが違うのか、組み込める言語が特定されているのか、具体的な違いが判らず、どのような条件下で使用したらよいのかわかりません。

お手数ですがご解答よろしくお願いいたします。

投稿日時 - 2008-06-01 00:56:14

QNo.4066004

困ってます

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

SQLServerは既存のストアドプロシージャに加えて.netでも記述できるようになったのです。誤解させてすみません。「SQL CLR」で検索をかけてもらえればわかると思います。

DBに対して言語は問わないと思います。
MS製品ならADOやODBCを通じて、javaならJDBCを通じてDBに接続します。これらはデータベースと言語のインタフェースになって、DB間の色々な違いを吸収してくれます。
OSはMS SQLServerはWinでしか動かないと思います。
OracleはWin版やLinux版などOS毎に発売されています。

投稿日時 - 2008-06-03 00:53:51

お礼

nfushiさん
ご返答ありがとうございます。

SQLCLRの機能によってSQLServer 2005バージョンから、ストアドプロシージャに.netも提供。
言語によるDBの使い分けは無く、
OS毎にDBを使い分けている。

と解釈したのですが。。。あってますでしょうか;
今回もご返答ありがとうございました。
ストアドプロシージャの言語はまだまだありそうですね;
OracleとSQLServerのSQLから学習していき、
PL/SQLやTransact-SQL?を学習していこうと思います。

投稿日時 - 2008-06-04 00:25:21

ANo.2

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(4)

ANo.4

#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のコード例は、私自身が書き込んだものなので、参考まで。

投稿日時 - 2008-06-04 13:01:52

お礼

お礼が遅くなって、ごめんなさい。。。!
chukenkenkouさん
ご返答ありがとうございます。

リレーショナルデータベースの種類がなぜにて多様にあるのか、
悩みたくなるほどに沢山ありますね;;

ストアドプロシージャのコード例、拝見いたしました。
。。。先ず、コードの一つ一つの意味がまだ、習得できていないので、
詳しくは解析できていませんが、学んで理解していきたいです。

Oralce SQL、SQLServer SQLの学習を初めており、終了しましたらストアドプロシージャ言語の学習に入っていこうと思います。
(PL/SQLを学ぼうと思っています)

沢山質問に答えていただいて、ありがとうございます。

投稿日時 - 2008-06-07 01:18:20

ANo.3

違いについては、他の方の説明通りです。

ストアドプロシジャは、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

投稿日時 - 2008-06-03 21:51:02

お礼

chukenkenkouさん
ご返答ありがとうございます。

な、なんだか初めて聞く単語が多数出てきたのですが。。。;

PostgreSQLもRDBの一つでストアドプロシージャ言語がPL/pgSQL。
MySQL、DB2もRDBの一つ。
ストアドプロシージャの言語で独自の名称があるのはPL/SQLとPL/pgSQLなど。。。

で、有ってますでしょうか;

疑問に思ったのですが、
SQL Serverのストアドプロシージャ言語で調べると「Transact-SQL」がヒットするのですが、これは「特別な呼び名」とはまた違うのでしょうか?

DBをリリースしている会社も沢山あって、フリーでも沢山あって、其の分のストアドプロシージャの数もあって。。。凄い数の種類です;
が、色々な種類を知ることが出来勉強になりました。ありがとうございます。

投稿日時 - 2008-06-04 01:08:57

ANo.1

オラクル社のDBがOracle。
マイクロソフト社のDBがSQL Server。
ここまではOKですよね?
OracleもSQLServerもそれぞれストアドプロシージャと呼ばれる、DB内部に記述できるプログラム言語があります。
私が知る限りでは、これらはDBによってバラバラで統一されていないものです。
そして、PL/SQLとはOracleで使用されるストアドプロシージャの言語名です。
ちなみにSQLServerは2005から.netFrameworkでストアドを記述できるようになりました。

投稿日時 - 2008-06-01 02:02:30

お礼


お早いご返答ありがとうございます。

Oracle社のDBがOracleでストアドプロシージャの言語がPL/SQL。
マイクロソフト社のDBがSQLServerでストアドプロシージャの言語が.netFramework。

ですね。ありがとうございます!
SQLServerもストアドプロシージャに近いものだと思っておりました;(危ない・・・)

ここで質問なのですが、
Oracle とSQLServerはどういった言語ででも使用できるのでしょうか?
マクロやスクリプトに組み込む際、どちらを使用するかなどは決まっているのでしょうか?
OSに合わせてDBを決定しなければならないとか、在るのでしょうか??

質問攻めでゴメンなさい。
ご返答よろしくお願いいたします。

投稿日時 - 2008-06-03 00:01:00

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-