最も広く完全にサポートされているSQL標準はどれですか。


8

学習と参照の目的で、SQL言語仕様の1つに集中したいと思います。私の時間とエネルギーをそれに集中できるように、DBMS全体で最も広くサポートされているSQL標準のバージョンはどれですか。

回答:


15

標準SQLしか使用できないJoe Celkoの夢の世界に住んでいると思います。特定の週にすべてのコードをSQL ServerからOracle、次にOracleからDB2に移植し、SQL Serverに戻す必要があるかもしれません。 。二回。

標準SQLのコアと基本的な側面はどこでも役立ちますが、将来の移植(または原則として)を恐れてその言語のセットに制限することは、私がお勧めする方法ではありません。個人的には、可能な場合はANSI標準のものに固執します(たとえば、<>対!=、COALESCE対ISNULL、CURRENT_TIMESTAMP対GETDATE()など)が、SQL Server固有の使用を恐れていません。私の仕事を簡単にするもの。

SQLの一般的な仕組みを理解することが重要です。標準からの逸脱、別のRDBMSが同じ概念を実装した方法からの逸脱、他に存在しない独自の拡張機能など RDBMSで言語がどのように機能するかを理解することも同様に重要です。

例として、SQL Serverは標準の大部分をカバーしており、新しいバージョンごとに完全に準拠するようになっています。それは100%をカバーするでしょうか?非常に疑わしい。標準にない独自の拡張機能を引き続き追加しますか?もちろん。誰もが標準をカバーし、だれもそれを踏み出さなかった場合、1つのプラットフォームを他のプラットフォームよりも選ぶことに利点はなく、すべて同じものを使用することになります。


1
+1 100%未満のコンプライアンスは必ずしも悪いことではないことを言及してください。コードをさまざまなプラットフォームに移植できることは素晴らしいことのように思えるかもしれませんが、実際にはRDBMSを選択したのは理由があります(または、少なくとも私が選択したのは単なる恣意的なものではないことを願っています)。現実の世界では、コードを新しいプラットフォームに移植するコストは、多くの場合、現在のプラットフォームでそれを行う方法を考え出すよりも高くつきます。
マットM

11

そのなかで何も。RDBMSの標準(-ish)SQLを学ぶことができます。

標準SQLは、成功したプロジェクトで仕事を支払うために現実の世界で使用されていません...

それを言って、MySQLは始めるのに良い場所であり、ここにチュートリアルがあります


「標準SQLは現実の世界では成功したプロジェクトに仕事を支払うために使用されていません...」-すべてのスタック交換に投稿された最も愚かなこと
Jonesome Reinstate Monica、2014

3
@samsmithなんで?たまたま同意しないからといって、ばかげたことはありません。ばかげていると言うのではなく、あなたが反対する理由を説明できるでしょうか?
アーロンバートランド

1
@samsmithも、特にあなたが反対票を投じている場合は、信じられないほど偽善的であるという以前の訴えconstructive guidanceを見つけます。GBNが彼の答えを改善するための建設的なガイダンスはどこにありますか?
アーロンバートランド

3
@samsmith目標が「成功したプロジェクト」である場合は、RDBMSのすべての機能を利用する必要があります。そうしないと、標準SQLを使用するだけでソフトウェアの機能が無駄になります
Lamak

1
@samsmith「大きな%」の統計情報はどこで取得していますか?とにかく、実際のデータベースシステムの何%が開発者によって設計されていますか?私の個人的な経験、およびこれまでに経験したすべての顧客エンゲージメントの経験では、標準に準拠しているSQL Serverショップにまだ出会っていません。ずっと。開発者の友人が何をしていると主張しているのかに関係なく、そうするのは簡単です。
アーロンバートランド

10

すべての主要なRDBMSは、異なるバージョンのSQL仕様をさまざまな程度までサポートし、古いバージョンの仕様はより完全にサポートされています。すべてが同等に真剣に準拠しているわけではありません(たとえば、Oracleは2001年にSQL-92から 10年近く経ってから「ansi結合」のサポートを開始しました)。あなたが使う。

Postgresは、「標準への準拠を誇っていますという例外です。「学習と参照」には、本や標準からの知識だけでなく、データベースを使った実践的な実践が必要です。postgresは、次の理由でロープを学習するための理想的なプラットフォームです。

  1. 無料で、ほとんどのプラットフォームで利用できます
  2. 前述の標準への準拠
  3. 優れたドキュメントがあります
  4. 成熟していて広く使われている
  5. それは持っている機能の多くは、最も人気のある商用のRDBMSで見つかった、とされないことはかなりの数

3

JackとGBNに同意しました。標準はなく、選択する必要があります。この選択を行うには、最初にRDBMSを選択する必要があります。次のことを考えることをお勧めします。1)DB開発者またはDBAになりたいですか?2)どのオペレーティングシステムを使用しますか?私の意見では、この質問は少し奇妙ですが、学生と話すとき、それは重要だと言います。

たとえば、DBAになりたい場合やWindowsでの作業を望まない場合(たとえば、たぶん私は間違っているかもしれません)、MSSQLについて考える必要はありません。そして、DBAになりたい、コマンド文字列と構成ファイルを使用したい場合は、おそらくOracleが必要です。もしあなたがフリーランスのプロジェクトであなたの知識を使いたい開発者になりたいなら、多分MySQLが必要ですか?


2
スタートアップがプラットフォームを選択するために使用する唯一の基準がこれらではないことを願っています。:-)
アーロンベルトラン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.