国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL45道練習題

這篇具有很好參考價值的文章主要介紹了MySQL45道練習題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

作業(yè)需要數據表SQL語句已給

MySQL45道練習題,數據庫

?1. 查詢" 01 "課程比" 02 "課程成績高的學生的信息及課程分數

select * from Student RIGHT JOIN (
    select t1.SId, class1, class2 from
          (select SId, score as class1 from sc where sc.CId = '01')as t1, 
          (select SId, score as class2 from sc where sc.CId = '02')as t2
    where t1.SId = t2.SId AND t1.class1 > t2.class2
)r on Student.SId = r.SId;

?1.1 查詢同時存在" 01 "課程和" 02 "課程的情況

select * from 
    (select * from sc where sc.CId = '01') as t1, 
    (select * from sc where sc.CId = '02') as t2
where t1.SId = t2.SId;

1.2 查詢存在" 01 "課程但可能不存在" 02 "課程的情況(不存在時顯示為 null )

select * from 
(select * from sc where sc.CId = '01') as t1
left join 
(select * from sc where sc.CId = '02') as t2
on t1.SId = t2.SId;

1.3 查詢不存在" 01 "課程但存在" 02 "課程的情況

select * from sc
where sc.SId not in (
    select SId from sc 
    where sc.CId = '01'
) and sc.CId= '02';

2.查詢平均成績大于等于 60 分的同學的學生編號和學生姓名和平均成績

select student.SId,sname,ss from student,(
    select SId, AVG(score) as ss from sc  
    group by SId 
    having AVG(score)> 60
    )r where student.sid = r.sid;

3.查詢在 SC 表存在成績的學生信息

select distinct student.*
from student,sc
where student.SId=sc.SId

4.查詢所有同學的學生編號、學生姓名、選課總數、所有課程的總成績(沒成績的顯示為 null )

select s.sid, s.sname,r.coursenumber,r.scoresum
from (
    (select student.sid,student.sname from student)s 
    left join 
    (select sc.sid, sum(sc.score) as scoresum, count(sc.cid) as coursenumber from sc group by sc.sid)r 
    on s.sid = r.sid);

?文章來源地址http://www.zghlxwxcb.cn/news/detail-822426.html

4.1 查有成績的學生信息

select * from student where exists (select sc.sid from sc where student.sid = sc.sid);

5.查詢「李」姓老師的數量

select count(*) from teacher where tname like '李%';

6.查詢學過「張三」老師授課的同學的信息

select student.* from student,teacher,course,sc
where 
    student.sid = sc.sid 
    and course.cid=sc.cid 
    and course.tid = teacher.tid 
    and tname = '張三';

7.查詢沒有學全所有課程的同學的信息

select * from student
where student.sid not in (
  select sc.sid from sc
  group by sc.sid
  having count(sc.cid)= (select count(cid) from course));

8.查詢至少有一門課與學號為" 01 "的同學所學相同的同學的信

select * from student 
where student.sid in (
    select sc.sid from sc 
    where sc.cid in(
        select sc.cid from sc 
        where sc.sid = '01'));

9.查詢和" 01 "號的同學學習的課程 完全相同的其他同學的信息

select * from student where sid in(
select a.sid from (select sid,group_concat(cid order by cid) as courses 
from sc group by sid) as a
inner join (select sid,group_concat(cid order by cid) as courses 
from sc group by sid having sid='01') as b
on a.sid != 1 and a.courses = b.courses);

10.查詢沒學過"張三"老師講授的任一門課程的學生姓名

select * from student
where student.sid not in(
    select sc.sid from sc,course,teacher 
    where
        sc.cid = course.cid
        and course.tid = teacher.tid
        and teacher.tname= "張三");

11.查詢兩門及其以上不及格課程的同學的學號,姓名及其平均成績

select student.sid, student.Sname,b.avg
from student right join
(select sid, AVG(score) as avg from sc
    where sid in (
              select sid from sc 
              where score<60 
              group by sid 
              having count(score)>1)
    group by sid) b on student.sid=b.sid;

12.檢索" 01 "課程分數小于 60,按分數降序排列的學生信息

select student.*, sc.score from student, sc
where student.sid = sc.sid
and sc.score < 60
and cid = "01"
order by sc.score desc;

13.按平均成績從高到低顯示所有學生的所有課程的成績以及平均成績

select *  from sc 
left join (
    select sid,avg(score) as avscore from sc 
    group by sid
    )r 
on sc.sid = r.sid
order by avscore desc;

14.查詢各科成績最高分、最低分和平均分:

以如下形式顯示:課程 ID,課程 name,最高分,最低分,平均分,及格率,中等率,優(yōu)良率,優(yōu)秀率;及格為>=60,中等為:70-80,優(yōu)良為:80-90,優(yōu)秀為:>=90;要求輸出課程號和選修人數,查詢結果按人數降序排列,若人數相同,按課程號升序排列

select 
sc.CId ,
max(sc.score)as 最高分,
min(sc.score)as 最低分,
AVG(sc.score)as 平均分,
count(*)as 選修人數,
sum(case when sc.score>=60 then 1 else 0 end )/count(*)as 及格率,
sum(case when sc.score>=70 and sc.score<80 then 1 else 0 end )/count(*)as 中等率,
sum(case when sc.score>=80 and sc.score<90 then 1 else 0 end )/count(*)as 優(yōu)良率,
sum(case when sc.score>=90 then 1 else 0 end )/count(*)as 優(yōu)秀率 
from sc
GROUP BY sc.CId
ORDER BY count(*)DESC, sc.CId ASC

15.按各科成績進行排序,并顯示排名, Score 重復時保留名次空缺

SELECT *,row_number() over (PARTITION BY cid ORDER BY score DESC) AS '排名'FROM sc;

15.1 按各科成績進行排序,并顯示排名, Score 重復時合并名次

select *,
case when @sco=score then @rank else @rank:=@rank+1 end as rn,
@sco:=score
from sc,(select @rank:=0,@sco:=NULL) t
order by score desc;

16.查詢學生的總成績,并進行排名,總分重復時保留名次空缺

select a.*,
@rank:=if(@sco=scos,'',@rank+1) as rn,
@sco:=scos
from
(select sid,sum(score) as scos from sc
group by sid order by scos desc) a,
(select @rank:=0,@sco:=NULL) b;

16.1 查詢學生的總成績,并進行排名,總分重復時不保留名次空缺

select a.*,
@rank:=if(@sco=scos,@rank,@rank+1) as rn,
@sco:=scos
from
(select sid,sum(score) as scos from sc
group by sid order by scos desc) a,
(select @rank:=0,@sco:=NULL) b;

17.統(tǒng)計各科成績各分數段人數:課程編號,課程名稱,[100-85],[85-70],[70-60],[60-0] 及所占百分比

select course.cname, course.cid,
sum(case when sc.score<=100 and sc.score>85 then 1 else 0 end) as "[100-85]",
sum(case when sc.score<=85 and sc.score>70 then 1 else 0 end) as "[85-70]",
sum(case when sc.score<=70 and sc.score>60 then 1 else 0 end) as "[70-60]",
sum(case when sc.score<=60 and sc.score>0 then 1 else 0 end) as "[60-0]"
from sc left join course on sc.cid = course.cid group by sc.cid;

18.查詢各科成績前三名的記錄

select * from sc
where (
select count(*) from sc as a 
where sc.cid = a.cid and sc.score<a.score 
)< 3 order by cid asc, sc.score desc;

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

select cid, count(sid) from sc  group by cid;

20.查詢出只選修兩門課程的學生學號和姓名

select student.SId,student.Sname
from sc,student
where student.SId=sc.SId  
group by sc.SId
having count(*)=2;

21.查詢男生、女生人數

select ssex, count(*) from student group by ssex;

22.查詢名字中含有「風」字的學生信息

select * from student  where student.Sname like '%風%';

23.查詢同名同性學生名單,并統(tǒng)計同名人數

select sname, count(*) from student group by sname having count(*)>1;

24.查詢 1990 年出生的學生名單

select * from student where YEAR(student.Sage)=1990;

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

select sc.cid, course.cname, AVG(SC.SCORE) as average from sc, course
where sc.cid = course.cid group by sc.cid order by average desc,cid asc;

26.查詢平均成績大于等于 85 的所有學生的學號、姓名和平均成績

select student.sid, student.sname, AVG(sc.score) as aver from student, sc
where student.sid = sc.sid group by sc.sid having aver > 85;

27.查詢課程名稱為「數學」,且分數低于 60 的學生姓名和分數

select student.sname, sc.score from student, sc, course
where student.sid = sc.sid and course.cid = sc.cid and course.cname = "數學" and sc.score < 60;

28.查詢所有學生的課程及分數情況(存在學生沒成績,沒選課的情況)

select student.sname, cid, score from student left join sc on student.sid = sc.sid;

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

select student.sname, course.cname,sc.score from student,course,sc
where sc.score>70 and student.sid = sc.sid and sc.cid = course.cid;

30.查詢不及格的課程

select distinct sc.CId from sc where sc.score <60;

31.查詢課程編號為 01 且課程成績在 80 分以上的學生的學號和姓名

select student.sid,student.sname from student,sc
where cid="01" and score>=80 and student.sid = sc.sid;

32.求每門課程的學生人數

select sc.cid,count(*) as 學生人數 from sc group by sc.cid;

33.成績不重復,查詢選修「張三」老師所授課程的學生中,成績最高的學生信息及其成績

select student.*, sc.score, sc.cid from student, teacher, course,sc 
where teacher.tid = course.tid
and sc.sid = student.sid
and sc.cid = course.cid
and teacher.tname = "張三"
order by score desc
limit 1;

34.成績有重復的情況下,查詢選修「張三」老師所授課程的學生中,成績最高的學生信息及其成績

select student.*, sc.score, sc.cid from student, teacher, course,sc 
where teacher.tid = course.tid
and sc.sid = student.sid
and sc.cid = course.cid
and teacher.tname = "張三"
and sc.score = (
    select Max(sc.score) 
    from sc,student, teacher, course
    where teacher.tid = course.tid
    and sc.sid = student.sid
    and sc.cid = course.cid
    and teacher.tname = "張三"
);

35.查詢不同課程成績相同的學生的學生編號、課程編號、學生成績

select  a.cid, a.sid,  a.score from sc as a
inner join 
sc as b
on a.sid = b.sid
and a.cid != b.cid
and a.score = b.score
group by cid, sid;

36.查詢每門功成績最好的前兩名

select a.sid,a.cid,a.score from sc as a left join sc as b 
on a.cid = b.cid and a.score<b.score
group by a.cid, a.sid having count(b.cid)<2 order by a.cid;

37.統(tǒng)計每門課程的學生選修人數(超過 5 人的課程才統(tǒng)計)。

select sc.cid, count(sid) as cc from sc group by cid having cc >5;

38.檢索至少選修兩門課程的學生學號

select sid, count(cid) as cc from sc group by sid having cc>=2;

39.查詢選修了全部課程的學生信息

select student.* from sc ,student where sc.SId=student.SId group by sc.SId having count(*) = (select distinct count(*) from course )

40.查詢各學生的年齡,只按年份來算

select *, (year(now()) - year(sage)) as age from student;

41.按照出生日期來算,當前月日 < 出生年月的月日則,年齡減一

select *, timestampdiff(YEAR,sage,NOW()) as age from student;

42.查詢本周過生日的學生

select * from student where WEEKOFYEAR(student.Sage)=WEEKOFYEAR(CURDATE());

43.查詢下周過生日的學生

select * from student where WEEKOFYEAR(student.Sage)=WEEKOFYEAR(CURDATE())+1;

44.查詢本月過生日的學生

select * from student where MONTH(student.Sage)=MONTH(CURDATE());

45.查詢下月過生日的學生

select * from student where MONTH(student.Sage)=MONTH(CURDATE())+1;

?

?

到了這里,關于MySQL45道練習題的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 數據庫系統(tǒng)原理與應用教程(014)—— 關系數據庫練習題(一)

    數據庫系統(tǒng)原理與應用教程(014)—— 關系數據庫練習題(一)

    1、試述關系模型的三要素和關系操作語言的特點。 答案: 關系模型的三要素為數據結構、關系操作和完整性約束。在關系模型中,無論是實體集還是實體集之間的聯系都是由關系表示的。 關系操作語言的特點:(1)關系操作的方式是一次一集合方式。(2)關系操作語言是

    2024年02月02日
    瀏覽(23)
  • 數據庫SQL語言實戰(zhàn)(五)(數據庫系統(tǒng)概念第三章練習題)

    數據庫SQL語言實戰(zhàn)(五)(數據庫系統(tǒng)概念第三章練習題)

    目錄 前言知識 一、 關系模式 二、 屬性域 例子 介紹 作用 三、Select常數 舉例 解釋? 四、集合差運算 本質 舉例? 結論 練習題 3.17 3.18? 3.21? 總結? 注:本文的SQL語言適用的是 Oracle數據庫 與mySQL可能存在略微不同 模式的定義 :模式則是指數據庫中 所有關系模式 的集合,它

    2024年04月22日
    瀏覽(29)
  • 數據庫系統(tǒng)概述——第六章 關系數據理論(知識點復習+練習題)

    數據庫系統(tǒng)概述——第六章 關系數據理論(知識點復習+練習題)

    ?? 博主: 命運之光 ?? 專欄: 離散數學考前復習(知識點+題) ?? 專欄: 概率論期末速成(一套卷) ?? 專欄: 數字電路考前復習 ?? 專欄: 數據庫系統(tǒng)概述 ?? 博主的其他文章: 點擊進入博主的主頁????? 前言: 身為大學生考前復習一定十分痛苦,你有沒有過

    2024年02月09日
    瀏覽(25)
  • 數據庫系統(tǒng)概述——第一章 緒論(知識點復習+練習題)

    數據庫系統(tǒng)概述——第一章 緒論(知識點復習+練習題)

    ? 博主: 命運之光 ?? 專欄: 離散數學考前復習(知識點+題) ?? 專欄: 概率論期末速成(一套卷) ?? 專欄: 數字電路考前復習 ?? 專欄: 數據庫系統(tǒng)概述 ? 博主的其他文章: 點擊進入博主的主頁????? 前言: 身為大學生考前復習一定十分痛苦,你有沒有過以

    2024年02月09日
    瀏覽(25)
  • 數據庫系統(tǒng)概述——第三章 關系數據庫標準語言SQL(知識點復習+練習題)

    數據庫系統(tǒng)概述——第三章 關系數據庫標準語言SQL(知識點復習+練習題)

    ?? 博主: 命運之光 ?? 專欄: 離散數學考前復習(知識點+題) ?? 專欄: 概率論期末速成(一套卷) ?? 專欄: 數字電路考前復習 ?? 專欄: 數據庫系統(tǒng)概述 ?? 博主的其他文章: 點擊進入博主的主頁????? 前言: 身為大學生考前復習一定十分痛苦,你有沒有過

    2024年02月10日
    瀏覽(34)
  • 2小時解不完的數據庫練習題,來挑戰(zhàn)一下吧!

    2小時解不完的數據庫練習題,來挑戰(zhàn)一下吧!

    我已經記不起來,有多久沒更新文章了。 5月中旬我還在上班,中旬以后一系列發(fā)生的事情,真的遠遠超出了可承受范圍,只能硬著頭皮面對! 我是誰,我應該是誰,又能怎樣,只能向前····· class表 course表 score表 student表 teacher表 1、查詢所有的課程的名稱以及對應的任課

    2024年02月09日
    瀏覽(22)
  • 【USTC】verilog 習題練習 41-45

    【USTC】verilog 習題練習 41-45

    題目描述 在時序邏輯電路中,敏感變量不但可以是觸發(fā)信號的上升沿( posedge ),也可以是下降沿( negedge ),試創(chuàng)建 8bit 位寬的寄存器,所有 DFF 都應該由 clk 的下降沿(負邊緣)觸發(fā)。同時采用高電平有效的同步復位方式,復位值為 0x34 而不是零。 輸入格式 輸入信號 clk,

    2024年01月24日
    瀏覽(13)
  • C基礎:45道練習題匯總(初學者加油)

    C基礎:45道練習題匯總(初學者加油)

    練習1:輸入兩個數,實現兩個數的交換 ?法1:三杯水交換 (常規(guī)的方式) 法2:如何不使用額外的內存空間,實現兩個交換(沒有空杯子了) ?三次異或實現交換? (異或: 不同為1,相同為0 ) 練習2:改變燈的狀態(tài) ?燈的編號順序 8 7 6 5 4 3 2 1,進行如下操作。 1. 有8個l

    2024年02月08日
    瀏覽(20)
  • MySQL的數據備份與還原--練習題

    MySQL的數據備份與還原--練習題

    MySQLdump是MySQL提供的一個非常有用的數據庫備份工具。MySQLdump命令執(zhí)行時,可以將數據庫備份成一個文本文件,該文件中實際上包含了多個CREATE 和 INSERT語句,使用這些語句可以重新創(chuàng)建表和插入數據。 ?看題: CREATE DATABASE booksDB; ?? ?use booksDB; ?? ?CREATE TABLE books ?? ?( ??

    2024年02月17日
    瀏覽(28)
  • MySQL綜合練習題

    MySQL綜合練習題

    CREATE TABLE dept ( ?? ?deptno INT(2) NOT NULL COMMENT \\\'部門編號\\\', ?? ?dname VARCHAR (15) COMMENT \\\'部門名稱\\\', ?? ?loc VARCHAR (20) COMMENT \\\'地理位置\\\'? ); -- 添加主鍵 ALTER TABLE dept ADD PRIMARY KEY (deptno); -- 添加數據 INSERT INTO dept (deptno,dname,loc)VALUES (10,\\\'財務部\\\',\\\'高新四路\\\'); INSERT INTO dept (deptno,dname,loc

    2024年01月22日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包