古典的なタイトル(上級)のMySQL--包括的な概要 - 難易度の高い、前を見て最初にお勧めします
- 1、テーブルの作成
- 2、セクションのタイトル
- 90人の生徒の名前とスコア以下のコースクエリ名「Pythonの基礎」とスコア:トピック1
- トピック2:学校、名前とスコアの90点以上の学生で、コースやコースの成績についての第01
- トピック3:クエリのすべての学生の学生数、学生名、合計入学、すべてのコースの合計スコア
- トピック4:100ポイントの照会平均スコアや学生の大きい数と学生の名前と学生成績平均点
- トピック5:クエリの平均スコアよりも大きいか100人のすべての学校番号、名前の学生や成果に等しいです
- トピック6:クエリは、パスラインと90100ポイントに、それぞれ、学校番号、名前、学年平均点の2つの以上のコースや学生を失敗しました
- トピック7:スコアの降順で、もちろん100未満のスコア学生情報「01」を取得
- トピック八:クエリは、ティーチ生徒に教師の情報「王Yuanzhang」を学びました
- トピック9:低得点と成績評価点の平均ディスプレイに高いから平均スコアはすべての生徒のためにすべてのコース(フィナーレ)
- トピックテン:情報を求めて上位3人の学生の平均スコア - サブクエリ
- 3、紙の卵の終わり - 簡単な瞬間
データベースの詳細については、~~注意ヨーヨーを追加してください。:ブロガーのための接触ガボール主な民間の手紙またはお問い合わせください
QQ:3327908431
マイクロ手紙:ZDSL1542334210を
はじめに:基盤が弱いパートナーの勧告であるように見えた最初の記事は、再び記事----幸運を読み続ける前に、前の今日、MySQLは、このセクションは、各セクションの内容に基づいており、あなたに包括的なトレーニングのタイトルをもたらします!
1、テーブルの作成
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);
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","汪院长");
2、セクションのタイトル
90人の生徒の名前とスコア以下のコースクエリ名「Pythonの基礎」とスコア:トピック1
分析は:「」、 『テーブル』 + + 『フィールド』を使用して、ここでは、3つの明確な質問の意味、およびコース名 『Pythonの基礎』と90以下のスコアのための条件を形成するように接続する必要があります、その問い合わせは言いコードがあるため、テーブルのフィールド:
select stu.s_name,score from stu left join scores on
stu.s_id=scores.s_id left join coure on scores.c_id=coure.c_id
where score<90 and c_name="python基础";
# 结果
张莹莹 83
马云 79.5
トピック2:学校、名前とスコアの90点以上の学生で、コースやコースの成績についての第01
select stu.s_id,stu.s_name,score from stu left join scores on
stu.s_id=scores.s_id where c_id=01 and score>=90; # 法一 表格连接
select stu.s_id,s_name from stu where s_id in
(select s_id from scores where c_id=01 and score>90);# 法二 子查询 该方法没有将分数查询下来
# 结果
001 李华 135
002 王二 90
003 赵敏 110
005 朱亚军 120
トピック3:クエリのすべての学生の学生数、学生名、合計入学、すべてのコースの合計スコア
select stu.s_id,stu.s_name,count(*),sum(score) from stu
left join scores on stu.s_id=scores.s_id group by s_id;
# 结果
001 李华 3 360.5
002 王二 2 192
003 赵敏 3 285.5999984741211
004 张莹莹 2 183
005 朱亚军 3 360.5999984741211
006 马云 2 169.5
トピック4:100ポイントの照会平均スコアや学生の大きい数と学生の名前と学生成績平均点
select stu.s_id,s_name,avg(score) from stu left join scores on
stu.s_id=scores.s_id group by s_id having avg(score)>=100;
# 结果
001 李华 120.16666666666667
005 朱亚军 120.1999994913737
トピック5:クエリの平均スコアよりも大きいか100人のすべての学校番号、名前の学生や成果に等しいです
select stu.s_id,s_name,score from stu left join scores on
stu.s_id=scores.s_id group by stu.s_id having avg(score)>=100;
select s_id,s_name from stu where s_id in# 法二 子查询 无分数
(select s_id from scores group by s_id having avg(score)>=100);
# 结果
001 李华 135
005 朱亚军 120
トピック6:クエリは、パスラインと90100ポイントに、それぞれ、学校番号、名前、学年平均点の2つの以上のコースや学生を失敗しました
select stu.s_id,s_name,avg(score) from stu left join scores on
stu.s_id=scores.s_id where score<90 group by s_id having count(*)>=2;
#很明显没有这样的学生,我们以100分看看
select stu.s_id,s_name,avg(score) from stu left join scores on
stu.s_id=scores.s_id where score<100 group by s_id having count(*)>=2;
select stu.s_id,s_name from stu where s_id in #子查询
(select s_id from scores where score<100 group by s_id having count(*)>=2);
# 结果为:
003 赵敏 87.79999923706055
006 马云 84.75
トピック7:スコアの降順で、もちろん100未満のスコア学生情報「01」を取得
select * from stu left join scores on stu.s_id=scores.s_id
where score<100 and c_id=01 order by score desc;
# 答案
002 王二 男 24 1997-3-16 002 01 90
トピック八:クエリは、ティーチ生徒に教師の情報「王Yuanzhang」を学びました
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 where teacher.t_name="汪院长" group by stu.s_id;
# 结果
001 李华 男 23 1996-8-16 001 01 135 01 3 数据库原理 3 汪院长
002 王二 男 24 1997-3-16 002 01 90 01 3 数据库原理 3 汪院长
003 赵敏 女 23 1990-5-26 003 01 110 01 3 数据库原理 3 汪院长
005 朱亚军 男 25 1999-8-16 005 01 120 01 3 数据库原理 3 汪院长
select * from stu where s_id in # 子查询
(select s_id from scores where c_id in
(select c_id from coure where t_id in
(select t_id from teacher where t_name="汪院长")));
# 答案
001 李华 男 23 1996-8-16
002 王二 男 24 1997-3-16
003 赵敏 女 23 1990-5-26
005 朱亚军 男 25 1999-8-16
トピック9:低得点と成績評価点の平均ディスプレイに高いから平均スコアはすべての生徒のためにすべてのコース(フィナーレ)
分析:タイトルはより困難であるが、それは慎重に味が推奨されます。質問は、最も難しい部分もグループ化するために各被験者の平均スコアと各生徒のスコア、必要性を求めて、各学生の平均スコアを表示するために必要な表示カリキュラム、成績、成績平均点を学生に尋ねたが、グループ化情報は、すべてのコースについての情報が失われますどのように来ますか?まず、グループ平均学生数を取得し、テーブルを装備し、対応するが、その左側に接続し、学生がテーブルを獲得し、その後ソートそれが答えである、コード:朱の兄は、解決する方法を参照してください。
select a.s_id,平均分,c_id,score from # 法一 子查询
(select s_id,round(avg(score),2)平均分 from scores group by s_id)a
left join scores on a.s_id=scores.s_id order by 平均分 desc;
# 结果为:
s_id 平均分 c_id score
005 120.20 01 120
005 120.20 03 100.6
005 120.20 02 140
001 120.17 01 135
001 120.17 03 100
001 120.17 02 125.5
002 96.00 03 102
002 96.00 01 90
003 95.20 02 80
003 95.20 01 110
003 95.20 03 95.6
004 91.50 03 83
004 91.50 02 100
006 84.75 02 90
006 84.75 03 79.5
# 该结果看起来很让人不爽,于是可以将其转换为二维表,以学号与课程号做行标题和列标题
select s_id,
round(sum(c_id='01')*score,2) '01', #转为二维表的方式
round(sum(c_id='02')*score,2) '02',
round(sum(c_id='03')*score,2) '03',
round(avg(score),2) 平均分
from scores group by s_id order by 平均分 desc;
# 结果为: ps 这样看是不是很爽呢?代码也很简单
#s_id 01 02 03 平均分
005 120.00 120.00 120.00 120.20
001 135.00 135.00 135.00 120.17
002 90.00 0.00 90.00 96.00
003 110.00 110.00 110.00 95.20
004 0.00 100.00 100.00 91.50
006 0.00 90.00 90.00 84.75
トピックテン:情報を求めて上位3人の学生の平均スコア - サブクエリ
select stu.* from (select s_id,round(avg(score),2) 平均成绩 from
scores group by s_id order by 平均成绩 desc limit 3)aa ,stu where
stu.s_id=aa.s_id;
# 结果
001 李华 男 23 1996-8-16
002 王二 男 24 1997-3-16
005 朱亚军 男 25 1999-8-16
3、紙の卵の終わり - 簡単な瞬間
そして、なぜカブスみんなのお気に入り簡単な瞬間に、そして私の友人の多くは、最近私に尋ねたが、私が言って神経を持っていない、私は単に彼のガールフレンドをもたらすことは彼女のガールフレンド、私の義理の姉、昨日まあ前日ないの物語です彼女は彼が配ると結婚してきたが、気づいたとしても同級生がない、彼女の憤慨をしたことを示すためにいたときの学生は、彼女の婚約パーティーに出席します。私たちはおしゃべりに座って午後に、彼女は突然立ち上がって大声で言った:「ああ、本当に暑いここうん、私は、私の指の熱死をリングをオフに来ると思う...」ここを参照してください、私たちはすべて理解して信じていますなぜ彼は、二人はハハ、一緒に来ました...
MySQLの知識についてもっと学ぶためにリラックスした瞬間のよ〜利息 - 今日はヨーヨー//各記事の最後の卵を持って、ここで終了します!見ていただきありがとうございます、私はJetuserデータでした
リンク:[https://blog.csdn.net/L1542334210]
CSND:L1542334210
私はあなたのすべての成功を祈って!家族で楽しみます!