day41 mysql 學習 練習題重要

來源:互聯網
上載者:User

標籤:聯集查詢   分數   記錄   課程   nbsp   引入   select   學生   java   

 

 

2.下面:開始你的表演

  1、查詢課程編號“001”比課程編號“002” 成績高的所有學生的學號****

#把兩個表同時放過來(並且都命名一個新的名字)一起查,
#1先找出所有包含學科為1 和學科為2 的學生 以便後續引用select * from score where c_id=‘1‘;select * from score where c_id=‘2‘ #2 正式的代碼select A.s_id from (select * from score where c_id=‘1‘)as A, #同時引入兩個表,並給表命名一個新的暱稱 A 暱稱B (select * from score where c_id=‘2‘) as B where A.s_id=B.s_id and A.s_score>B.s_score# 當滿足即學學科1又學學科2 並且學科1的成績大於學科二的成績時,就顯示出來

 

  2、查詢平均成績大於60分的同學的學號和平均成績;

SELECT s_id,avg(s_score) from score  GROUP BY s_id having avg(s_score)>60         #group by 語句前邊不能寫where

  3、查詢所有同學的學號、姓名、選課數、總成績;

SELECT s_id,count(SC.c_id),sum(s_score) from score SC,student ST WHERE ST.s_id1=SC.s_id GROUP BY s_id #兩表聯集查詢要讓這兩個表的學生id 關聯起來

   4、查詢含有"子"的老師的個數;

SELECT count(1) from teacher where t_name like‘%子%‘   #count(1) 相當與給後邊查出來的資料計數

   5、查詢沒學過“老子”老師課的同學的學號、姓名;

##SELECT c_id from course co,teacher te where co.t_id=te.t_id and te.t_name=‘老子‘  #找到老子老師交的課程SELECT DISTINCT st.s_id1,st.s_name from score S,student st where  S.s_id not in(SELECT s_id from score where  c_id in (SELECT c_id from course co,teacher te where co.t_id=te.t_id 
and te.t_name=‘老子‘)) and st.s_id1=S.s_id #注意distinct的用法 可以去重 #先找出學過老子課程的學生,然後從總score表中尋找(不屬於學過老子課程的學生)沒有學老子課程的學生 然後再關聯到學生的表格中

   6、查詢學過“001”並且也學過編號“002”課程的同學的學號、姓名;

#1  先找到學過1 的和學過2 的學生ID****SELECT s_id from score where c_id=‘1‘;SELECT s_id from score where c_id=‘2‘SELECT distinct s_id,A.s_name from score,student A where s_id in (SELECT s_id from score where c_id=‘1‘) and s_id in(SELECT s_id from score where c_id=‘2‘) and s_id=A.s_id1## 上邊這句話 可以找出只在 in (*****) 裡邊的內容  沒有的不給出  精確性

找出即學過1也學過2的 學生ID 和學生姓名

   7、查詢學過“老子”老師所教的所有課的同學的學號、姓名;

SELECT s_id,S.s_name from score,student S WHERE c_id in (SELECT c_id from teacher te,course
where te.t_name=‘老子‘ and c_id= te.t_id) and s_id=S.s_id1

   8、查詢課程編號“002”的成績比課程編號“001”課程低的所有同學的學號、姓名;

1.先找出學兩個課程的學生SELECT s_id from score where c_id =‘1‘;SELECT s_id from score where c_id =‘2‘2再找出學兩個課程而且課程A的成績比課程2的成績高的學生姓名學號SELECT A.s_id,s_name  from (SELECT * from score where c_id =‘1‘)A,(SELECT * from score where c_id =‘2‘)B,studentwhere  A.s_score>B.s_score   and A.s_id=B.s_id=s_id1

 

   9、查詢有課程成績小於60分的同學的學號、姓名;

  SELECT distinct st.s_id1,s_name from score sc,student st where s_score>‘60‘ and st.s_id1=sc.s_id

  10、查詢沒有學全所有課的同學;

SELECT s_id1,s_name from student where s_id1 in (SELECT s_id from score GROUP BY s_id HAVING count(1) !=  (SELECT count(1) from course))

  11、查詢至少有一門課與學號為“002”的同學所學相同的同學的學號和姓名;

select sc.c_id from score sc,student st where sc.s_id =st.s_id and sc.s_id =‘2‘

select DISTINCT st.s_id,st.s_name from score sc,student st where
st.s_id =sc.s_id and sc.c_id in(select sc.c_id from score sc where sc.s_id =‘2‘)

  12、查詢學過 學號為“002”同學全部課程 的其他同學的學號和姓名;

    select sc.c_id from score sc where sc.s_id = ‘2‘        select st.s_id,st.s_name from score sc,student st where sc.s_id =st.s_id and st.s_id !=‘2‘ and sc.c_id in            (select sc.c_id from score sc where sc.s_id = ‘2‘)         GROUP BY sc.s_id HAVING count(1) = (select count(1) from score sc where sc.s_id = ‘2‘)##學生學得課程在學生2的課程裡 且尋找出來的學生學的課程數量與學生2 學的課程數量一致

 

  13、查詢和“002”號的同學學習的課程完全相同的,其他同學學號和姓名;

  14、把“score”表中“老子”老師教的課的成績都更改為此課程的平均成績;

  15、刪除學習“墨子”老師課的score表記錄;

  16、按平均成績從高到低顯示所有學生的“python”、“java”、“linux”三門的課程成績,按如下形式顯示: 學生ID,python,java,linux,有效課程數,有效平均分

  17、查詢各科成績最高和最低的分:以如下形式顯示:課程ID,最高分,最低分

  18、按各科平均成績從低到高和及格率的百分數從高到低順序

  19、查詢老師所教課程平均分從高到低顯示,並顯示老師的名稱及課程名稱

  20、統計列印各科成績,各分數段人數:課程ID,課程名稱,[100-85],[85-70],[70-60],[ <60] 

  21、查詢每門課程被選修的學生數.

  22、查詢出只選修了一門課程的學生的學號和姓名

  23、查詢學生表中男生、女生人數

  24、查詢姓“張”的學生名單

  25、查詢同名學生名單,並統計同名人數

  26、查詢每門課程的平均成績,結果按平均成績升序排列,平均成績相同時,按課程號降序排列

  27、查詢平均成績大於85的所有學生的學號、姓名和平均成績

  28、查詢課程名稱為“python”,且分數低於60的學生姓名和分數

  29、查詢所有學生的選課情況,顯示 學生編號,學生姓名,所選課程名稱

  30、查詢任何一門課程成績在70分以上的姓名、課程名稱和分數;

  31、查詢不及格的課程,並按課程號從大到小排列

  32、查詢課程編號為003且課程成績在80分以上的學生的學號和姓名

  33、求 已選課程的學生人數

  34、查詢選修“老子”老師所授課程的學生中,成績最高的學生姓名及其成績

  35、查詢各個課程及相應的選修人數

  36、查詢不同課程但成績相同的學生的學號、課程號、學產生績

  37、檢索至少選修兩門課程的學生學號

  38、查詢全部學生都選修的課程的課程號和課程名

  39、查詢沒學過“老子”老師講授的任一門課程的學生姓名

  40、查詢兩門以上不及格課程的同學的學號及其平均成績

  41、檢索“003”課程分數小於60,按分數降序排列的同學學號

  42、刪除“002”同學的“001”課程的成績

  

day41 mysql 學習 練習題重要

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.