解決済みの質問
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
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
2人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(3件中 1~3件目)
#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
違いについては、他の方の説明通りです。
ストアドプロシジャは、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
オラクル社の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