@ Tocの
データベースについてのより多くの知識、~~注意ヨーヨーを追加してください。:ブロガーのための接触ガボール主な民間の手紙またはお問い合わせください
QQ:3327908431
マイクロ手紙:ZDSL1542334210を
はじめに:虎などの操作が激しいのMySQLのシリーズ、コード、明確で理解しやすい、シンプルな構造で、今日レットの話についてのMySQLの強力なマルチテーブルの結合、接続テーブルの後、問い合わせを容易にするだけでなく、処理、およびデータ分析を行うには簡単に、など私たちは、絵に直接説明するトラブル、ADO、今日の多くを保存します。**
1、マルチテーブルの接続タイプと文法
1.1縦スプライス
組合も呼ばスプライス長手スプライスは、各テーブルの全カラムの値に基づいて、2つのマッチングテーブルの行は、同じ列名を持たなければならない2つのテーブルに接続することができ、二つの異なる又は全て同じ順序フィールドなら、その後、クエリによって置き換えられます。構文は次のとおりです。
select * from t1 union select * from t2; # 两表列名和列顺序完全相同
select 列名称 from t1 union select 列名称 from t2;
1.2、外側連結
この種の接続は、接続を理解するための最も一般的な、より困難です。外部結合の外に残してもよい結合、右外側連結または完全外部ジョイン。節外から指定された参加場合は、指定されたグループ内のキーワードの次のグループから構成することができる:
1)を左または左のカップリングは、外側左結合結果セットが左外側句の全てが左テーブルで指定含む参加ラインだけでなく、マッチングは、列行に参加します。あなたが右の表と一致しない場合は、行の行は、テーブルを残し、すべての選択リストの列の右のテーブルに関連付けられた結果セットの行がnull値ですが、同じテーブルに主キーID、二つの主キーの名前を指定する必要があります構文は次のとおりです。
select * from t1 left join t2 on t1.id=t2.id;
2)右ジョインまたは右外部ジョイン右外側に左外部結合の逆方向リンクに参加します。右の表のすべての行を返します。一致する行が行に存在しない場合は、テーブルを左右の表は、左テーブルのNULL値を返します。
select * from t1 right join t2 on t1.id=t2.id;
1.3、インナーに参加
内側の2つのテーブルは、関連するデータのみときに、2つの同一の主キーテーブルに結果を表示しないことであることを示す参加します。次の例では、スコアは内部不完全S_ID場合、その接続は、S_IDスコアが対応していないであろう行は表示されません。
select * from stu inner join scores on stu.s_id = scores.s_id;
1.4、クロスカップリング(デカルト積)
クロスカップリングに=完全参加すべての行がテーブルに残っているリターンを結合、テーブルの右の表の左列の各列のすべての組合せは、主キーを指定する必要はありません。クロスも呼ばれるデカルトの製品を結合しました。句は、任意の順序で外部結合または完全に結合することによって、表またはビューから特定することができ、左右外側の指定されたテーブルまたはビューと結合されたときただし、配列表またはビューは非常に重要です。
select * from t1 join t2; # 法一
select * from t1 full join t2;# 法二
2、テーブルの作成
学生情報テーブルSTUの作成
create table stu(s_id varchar(5),
s_name varchar(5),
s_sex varchar(1),
s_age int(3),s_day date);
insert into stu values
("001","李华","男",23,'1996-8-16'),
("002","王二","男",24,'1997-3-16'),
("003","赵敏","女",23,'1990-5-26'),
("004","张莹莹","女",22,'1995-2-16'),
("005","朱亚军","男",25,'1999-8-16'),
("006","马云","男",28,'1993-12-16');
学生のスコア表のスコアを作成します。
create table scores (s_id varchar(5),
c_id varchar(3),score float);
insert into scores values
("001","01",135),
("005","01",120),
("003","01",110),
("002","01",90),
("005","02",140),
("001","02",125.5),
("004","02",100),
("006","02",90),
("002","03",102),
("005","03",100.6),
("001","03",100),
("003","03",95.6),
("004","03",83),
("003","02",80),
("006","03",79.5);
カリキュラムcoureを作成します
create table coure(
c_id varchar(2),t_id char(1),c_name varchar(10));
insert into coure values
("01","3","数据库原理"),
("02","2","统计学基础"),
("03","1","Python基础");
表教師の先生の情報を作成します。
create table teacher(
t_id char(1),t_name varchar(5));
insert into teacher values
("1","邓博"),
("2","崔博"),
("3","汪院长");
テーブルT1を作成します。
create table t1(s_id varchar(5),
s_name varchar(5),
s_sex varchar(1),
s_age int(3),s_day date);
insert into stu values
("007","走走走","男",105,'1996-8-16');
3、セクションのタイトル
トピック1:STUテーブルと左のスコアテーブルの接続
select * from stu left join scores on stu.s_id=scores.s_id;
# 答案:
001 李华 男 23 1996-8-16 001 01 135
005 朱亚军 男 25 1999-8-16 005 01 120
003 赵敏 女 23 1990-5-26 003 01 110
002 王二 男 24 1997-3-16 002 01 90
005 朱亚军 男 25 1999-8-16 005 02 140
001 李华 男 23 1996-8-16 001 02 125.5
004 张莹莹 女 22 1995-2-16 004 02 100
006 马云 男 28 1993-12-16 006 02 90
002 王二 男 24 1997-3-16 002 03 102
005 朱亚军 男 25 1999-8-16 005 03 100.6
001 李华 男 23 1996-8-16 001 03 100
003 赵敏 女 23 1990-5-26 003 03 95.6
004 张莹莹 女 22 1995-2-16 004 03 83
003 赵敏 女 23 1990-5-26 003 02 80
006 马云 男 28 1993-12-16 006 03 79.5
coure接続を行うSTUテーブルとスコアテーブルとテーブル:トピック二つの
分析を:マルチテーブルは、より以上のいくつかのテーブルよりも何も参加していない、特定の構文は次のとおりです。
select * from t1 left join t2 on ti.id=t2.id
left join t3 on t2.id=t3.id left join t4 on t3.id=t4.id ... ;
ここでは、左結合使って、その情報が失われ、どこで異なるカラム名されていないことを確認しなければならない、知られているデータの特性に応じて、以下のとおりです。
select * from stu left join scores on stu.s_id=scores.s_id
left join coure on scores.c_id=coure.c_id;
# 答案:
001 李华 男 23 1996-8-16 001 01 135 01 3 数据库原理
005 朱亚军 男 25 1999-8-16 005 01 120 01 3 数据库原理
003 赵敏 女 23 1990-5-26 003 01 110 01 3 数据库原理
002 王二 男 24 1997-3-16 002 01 90 01 3 数据库原理
005 朱亚军 男 25 1999-8-16 005 02 140 02 2 统计学基础
001 李华 男 23 1996-8-16 001 02 125.5 02 2 统计学基础
004 张莹莹 女 22 1995-2-16 004 02 100 02 2 统计学基础
006 马云 男 28 1993-12-16 006 02 90 02 2 统计学基础
003 赵敏 女 23 1990-5-26 003 02 80 02 2 统计学基础
002 王二 男 24 1997-3-16 002 03 102 03 1 Python基础
005 朱亚军 男 25 1999-8-16 005 03 100.6 03 1 Python基础
001 李华 男 23 1996-8-16 001 03 100 03 1 Python基础
003 赵敏 女 23 1990-5-26 003 03 95.6 03 1 Python基础
004 张莹莹 女 22 1995-2-16 004 03 83 03 1 Python基础
006 马云 男 28 1993-12-16 006 03 79.5 03 1 Python基础
007 走走走 男 105 1996-8-16
トピック3:STU、スコア、coureと教師のテーブルには、接続するために行うには
select * from stu left join scores on stu.s_id=scores.s_id
left join coure on scores.c_id=coure.c_id left join teacher on coure.t_id=teacher.t_id;
タイトルIV:表STU縦接続テーブルT1と、
select * from stu union select * from t1;
# 答案
001 李华 男 23 1996-8-16
002 王二 男 24 1997-3-16
003 赵敏 女 23 1990-5-26
004 张莹莹 女 22 1995-2-16
005 朱亚军 男 25 1999-8-16
006 马云 男 28 1993-12-16
007 走走走 男 105 1996-8-16
トピック5:縦長接続教師coureテーブルとテーブル;
分析:テーブルとして2人のだけ同じidの教師このコラムが、これは、そこそこの垂直接続を実現するために、すべての繰り返しを労働組合を使用していない重複した結果だろうが唯一そうです
select t_id from teacher union all select t_id from coure;
# 答案
1
2
3
3
2
1
4、紙の卵の終わり - 簡単な瞬間
まあ、我々はすべて知っているが、17と18歳の男性は、それは、あなたが私の良き友人ウィニーは高校まあ前に、この事を超える登場言う多少れたもの、私たちは、ガールフレンドのチームについて話しますが、彼はまた、2つの共有します、その後、彼らは数週間見ていない失われたので、私たちは、一緒に食べて数週間後に、結果が嘲笑を負担:「!あなたはすぐに死ななければなら以降の女性で子供、」その後、チームの口を残して言った:「あなたは死んだ自分自身を終わるだろう右手!「とその後、静かに頭を下げクマ、彼の右手を見て、以前より厚い角質をたくさんやった...まあ、そのような場合です。
MySQLの知識についてもっと学ぶためにリラックスした瞬間のよ〜利息 - 今日はヨーヨー//各記事の最後の卵を持って、ここで終了します!見ていただきありがとうございます、私はJetuserデータでした
リンク:[https://blog.csdn.net/L1542334210]
CSND:L1542334210
私はあなたのすべての成功を祈って!家族で楽しみます!