データベースラーニング---内部結合(マルチテーブル共同問い合わせ)

JOINを使用したマルチテーブル共同問い合わせ

しかし、現実にはデータベースは、多くの場合、一般的に、データベースのパラダイムに準拠して、関連するデータテーブルのセットが含まれ(正規化)[1] 私たちは最初のリレーショナルデータベースを理解してみましょう范式

データベースのパラダイム(正規化)

データベース設計パラダイムは、パラダイム仕様で、各データベーステーブルは、(データの整合性を維持するのに役立つ)最小まで複製データを格納するために、仕様データテーブルであるデータベースのパラダイムではなく、テーブルとテーブルの間に、一方そこパラダイムは、多くのメリットをもたらします。独立して成長のデータの強い結合、(すなわち、このような成長や、自動車の車のエンジンの成長としては、完全に独立している)であるが、独立したデータテーブルと、私たちはクエリにしたいということを意味複数のデータ属性は、より複雑なSQL文を必要とするとき、あること、このセクションのマルチテーブル始まりは接続技術について説明しています。このようなSQLのパフォーマンスが特にとき、データテーブル、大量の多くの例では、多くの課題に直面することになります。

エンティティ(例えば犬など)属性データが複数のデータテーブルに分散している場合は、私たちはどのように学ぶ必要がある  JOINとしても、我々はクエリにしたい項目を見つけ、これらの技術やデータテーブルを統合します。

主キー:

主键(primary key)一般的なリレーショナルテーブル、カラムには、プロパティセットを持っています  主键(primary key)主キーは、一意のデータの一部が(自分のID番号を想像して)複雑な繰り返されることはありません識別することです。最も一般的な主キーの一つは、自動インクリメント整数(インクリメントIDは、もちろん文字列、ハッシュ値などのデータID + 1、ロング各データセットは、一意の主キーとすることができるほどのライン毎に書き込まれます。

手段主键(primary key)(それは、接続後に発現されるように、IDと同じデータが、データを簡単に識別することができます)(他の一意性プロパティがかもしれないが)、私たちは同じ主キーのIDが接続された二つのテーブルのデータを置くことができます( )接続に関するゲームを想像してみてください。私たちは、特定の使用  JOIN のキーワードを。さんが学びましょう  INNER JOIN

マルチテーブルは、文を結合します。

SELECT列、another_table_column、... mytableはFROM(主表)

INNERはanother_table(テーブルが結合される)JOIN

mytable.id = another_table.id ON(ちょうど2つの同一の1に接続された一次結合は、前記想像)

WHERE 条件(S)ORDER BY列、... ASC / DESC LIMITをnum_limit OFFSET num_offset。

戦闘:

2つの表は、映画、映画情報テーブル作品、BoxOffice店市場関連の情報があります

表:作品 

同上 タイトル ディレクター Length_minutes
1 トイ・ストーリー ジョン・ラセター 1995 81
2 バグズライフ ジョン・ラセター 1998 95
3 トイ・ストーリー2 ジョン・ラセター 1999 93
4 モンスターズ・インク ピート・ドクター 2001 92
5 ファインディング・ニモ ファインディング・ニモ 2003 107
6 Mr。インクレディブル ブラッド・バード 2004 116
7 ジョン・ラセター 2006 117
8 ラタトゥイユ ブラッド・バード 2007 115
9 WALL-E アンドリュー・スタントン 2008 104
10 アップ ピート・ドクター 2009 101
11 トイ・ストーリー3 リー・アンクリッチ 2010 103
12 カーズ2 ジョン・ラセター 2011 120
13 勇者 ブレンダ・チャップマン 2012 102
14 モンスターズ・ユニバーシティ ダン・スキャンロン 2013 110

表:Boxoffice 

Movie_id 格付け Domestic_sales International_sales
5 8.2 380843261 555900000
14 7.4 268492764 475066843
8 8 206445654 417277164
12 6.4 191452396 368400000
3 7.9 245852179 239163000
6 8 261441092 370001000
9 8.5 223808164 297503696
11 8.4 415004880 648167031
1 8.3 191796233 170162503
7 7.2 244082982 217900167
10 8.3 293004164 438338580
4 8.1 289916256 272900000
2 7.2 162798565 200600000
13 7.2 237283207 301700000

タスク:

ラインですべてのムービーを検索1. Domestic_salesとオンライン販売

内側の作品SELECT * FROM Movies.id = Boxoffice.Movie_idにBoxofficeに参加

オフライン販売映画よりもすべての大きなオンライン販売を探す2

内側の作品SELECT * FROM Movies.id = Boxoffice.Movie_idどこBoxoffice.International_sales> Boxoffice.Domestic_salesにBoxofficeに参加

市場シェアに基づいて、すべてのムービーを検索3. rating逆順

内側の作品SELECT * FROM = Movies.idにBoxoffice.rating DESCによってBoxoffice.Movie_id順をBoxofficeに参加

4. 最高のディレクターのランク付けされている比較することにより、各映画のオンライン販売、オンライン販売の数 

SELECT movies.Directorは、内側の映画からBoxoffice.International_salesリミット1 DESC Boxoffice.International_salesによってMovies.id = Boxoffice.Movie_idオーダーBoxofficeに参加します

 

 

 

おすすめ

転載: www.cnblogs.com/zhifeiji822/p/12011586.html