すべてのリレーショナル結果セットを理解する
この記事は、より良いSQLの複数の表、および集計関数のグループに関連するJOIN句を含む複雑なの理解を助けることができるほとんどのデータベース開発者のための最も問題のあるトピックをはるかに。また、データベースの例外を処理すると、ColdFusionアプリケーションでの実際の機能として組み込むことを正しい方法を学びます。あなたも、どのように高速アクセス用のメモリでクエリをキャッシュすることによってパフォーマンスを向上することを学ぶ。までは、顔が青くている現在のSQL句とバッカス氏ナウアフォームを暗記することができますが、それでも開く"再生終了すぐに火を目指す"実際に動作する複雑なSQLを記述しようとする場合を除き正確にどのようにSQLステートメントのプロセスを明確に把握している。明確にSQLの可視化であなたの最初のステップは、リレーショナル結果セットの性質を理解することですが、この資料のコードは、Accessでサポートされていないので、もし、この資料のリストと一緒に従うなら、この新しいデータベースファイルを実行する含まれています追加データとテーブルの様々なタイプを示すために、それらが生成する結果を結合する。我々はこの部分のタイトルには、すでに以前に記載された重要な理由のすべての追加しました。すべてのSQLクエリの結果行と列の1つのテーブルの形をしているかどうか、その結果、単一のテーブルまたはクエリからです複雑なリレーショナルクエリの問題ではない15のテーブルのすべてのクエリ結果の行と列の1つのテーブルの形をしている事件。これは、リレーショナルクエリの結果は、すべてのクエリの結果と同様の形式になって生成されるコードは、考えて1つのテーブル。 、e.Lastname、e.Firstname c.CompanyName c.CompanyID、e.SalaryからC社は内部従業員の電子オンc.CompanyID = e.CompanyID結合を選択 通知は、単一のテーブル内のこれら2つのテーブルの結果への参加の結果はこれは何ですか?それらのベン図ではない、この1つのですか?覚えている氏コルク組織は、中学高校の数学の教師は、本当に一日は現実の世界でそれらを使用すると、あなたがためらうが言った?彼の時間を開くと謝罪を呼び出す!INNER JOINが2つのデータが交差されている2つのテーブルに含まれてセットに参加されて、なぜこの概念完璧なSQLを記述することが重要ですか?なぜなら、簡単に2つのテーブル間の結合のいずれかのタイプを視覚化することができます:私たちはすぐに簡単に、本当に各JOINのこれらのタイプのと起こっていることを記述することができます。入れ子結果、結合列の両方のテーブルから選択で構成され、それのみの行が含まれてそのキーの値を結合(ON句)の両方を結合テーブルで指定されたマッチのLEFT OUTER列の両方のテーブルから選択された構成されて結果を結合し、それに関係なく、左にあるすべての行側のテーブルが含まれているかどうかそれらの右側のテーブル内のキーと値の結合と一致します。クエリの列を左から選択された側のテーブルは、テーブルからデータを含んでいます。クエリ結果の各行については、場合には、左からキーの値を結合側のテーブルには、右側のテーブルから、クエリの列の右側のテーブルから選択したキーの値を結合は、テーブルから列のデータが含まれてマッチではない、これらの列がNULLを含んでいます。 、e.Lastname、e.Firstname c.CompanyName c.CompanyID、e.Salaryから、C社のLEFT OUTER従業員の電子オンc.CompanyID = e.CompanyID結合を選択 右外部結合結果列の両方のテーブルから選択で構成され、それの有無にかかわらずそれらのいずれかは、左側のテーブル内のキーと値の結合と一致する右側のテーブル内のすべての行が含まれます。クエリの列の右側のテーブルから選択し、そのテーブルからのデータを含んでいます。クエリ結果の各行については、場合は、右からキーの値を結合側のテーブルは、左からキーの値を結合側のテーブル、クエリの列を左から選択された側のテーブルは、テーブルから列のデータが含まれてマッチではない、これらの列がNULLを含んでいます。完全外部結合結果列の両方のテーブルから選択で構成され、それの有無にかかわらずすべてのそれらのキーの値を結合に一致する両方のテーブルからのすべての行が含まれます。それぞれのクエリ結果の行を左から抽出された側のテーブルの場合は、左からキーの値を結合側の表は、右側のテーブルは、クエリの結果行を含む列の右側のテーブルから選択したNULL値には一致している。同様に、クエリ結果の行を、右側のテーブルの場合は、右からキーの値を結合側のテーブルから抽出されたの左側には一致する側のテーブルは、クエリの結果行を含む列の左からの選択にNULL値が-サイドテーブル。場合は、クエリ結果の行のキーの値を結合の左側との間と、右側のテーブルに、両方のテーブルからのデータは、クエリ結果の行に含まれていると一致します。 、e.Lastname、e.Firstname c.CompanyName c.CompanyID、e.Salaryから、C社右外部従業員の電子オンc.CompanyID = e.CompanyID結合を選択 、e.Lastname、e.Firstname c.CompanyName c.CompanyID、e.SalaryからC社は完全外部従業員の電子オンc.CompanyID = e.CompanyID結合を選択 さて、今まさにさまざまな種類の視覚化することができますし、さらにはそれらを作成するSQL構文を使用し快適さを結合します。それはすごい!しかし、2つのテーブルを一緒に、単一のリレーショナルクエリに比べて参加すると、現実の世界では、多くの場合、対処する。どのように7つの関連テーブルを結合すると右のは初めてそれを得るの複雑なSQLを記述するという場合は、すべての時間?実際には、ケーキのピースだ。実際には、その内部、のLEFT OUTERに、RIGHT OUTERの組み合わせを実行するクエリを記述完全外部15のテーブル間の実際のクエリは単一の内部の2つのテーブル間の結合を含むより書くのが難しくなります結合します。のすべてのどのように視覚化のトリック! 、e.Lastname、e.Firstname、e.Salary、d.FullName c.CompanyName c.CompanyID、d.Relationshipから、C社内部扶養開発に対してJOIN従業員の電子オンc.CompanyID = e.CompanyID INNER JOINをセレクトÉ.原子力潜水艦= d.SSN 正確には、SQLを使って何ができないことを理解するには、まず最初は、SQLのSQL文の句を処理する順序を理解する必要があります。現在SQLは、以下の順番での例のようにコードを使用することができます。 セレクトc.CompanyName、e.LastName +'、'+ e.FirstNameのAS EmployeeName、e.Salary場合、count(*)をNumDependantsからC社は内部従業員のJOINをメールオンc.CompanyID = e.CompanyID INNER JOINを扶養開発上の電子。原子力潜水艦= d.SSNのWHERE e.DateOfBirth"'01 / 82分の01'GROUP BYのc.CompanyName、e.LastName、e.FirstName、e.Salary HAVINGを数(*)"= 2のORDER BY EmployeeName昇順 記事のダニエルカールソンが提出 免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。 重要: この記事は、""すべてのリレーショナル結果セットを理解する自動ソフトウェアによって翻訳された。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。
|
|||||
| Online: 245 users browsing the articles directory |
|
|