日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库-DQL练习(附答案)

發布時間:2024/2/28 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库-DQL练习(附答案) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DQL語句練習(附上自編答案)

數據源:
沒法導入腳本文件,下面附上建表語句可以自己把語句粘貼在記事本上 改為.sql后綴名使用

show variables like'character_set_%'; set character_set_server=utf8; set character_set_database=utf8;create database exp; use exp;create table 教師 (教師號 char(8) primary key,教師名 char(8) not null,學院代碼 char(10)) default char set ='utf8';create table 課程 ( 課程號 char(8) primary key,課程名 char(20) not null,學時 int) default char set ='utf8';create table 學生( 學號 char(8) primary key,姓名 char(10) not null,性別 char(4) not null,學院代碼 char(10)) default char set ='utf8';create table 授課 ( 教師號 char(8) references 教師(教師號),課程號 char(8) references 課程(課程號),primary key (教師號, 課程號)) default char set ='utf8';create table 學院 ( 學院代碼 char(10) primary key,學院名稱 char(30) not null) default char set ='utf8';create table 學習 ( 學號 char(8) references 學生(學號),課程號 char(8) references 課程(課程號),教師號 char(8) references 教師(教師號),成績 int ,primary key (學號,課程號,教師號)) default char set ='utf8';insert into 教師 values('1','李夢','100'); insert into 教師 values('2','張亮','101'); insert into 教師 values('3','王剛','102'); insert into 教師 values('4','趙廣','103'); insert into 教師 values('5','孫露','104');insert into 課程 values('C1','數據庫','40'); insert into 課程 values('C2','軟件工程','32'); insert into 課程 values('C3','經濟學','32'); insert into 課程 values('C4','古代漢語','64'); insert into 課程 values('C5','信號與系統','72'); insert into 課程 values('C6','材料力學','56'); insert into 課程 values('C7','通信原理','72');insert into 學生 values('T01','王娜','女','100'); insert into 學生 values('T02','李倩','女','100'); insert into 學生 values('T03','張皓','男','100'); insert into 學生 values('T04','李靜','女','101'); insert into 學生 values('T05','周小米','女','101'); insert into 學生 values('T06','王石','男','102'); insert into 學生 values('T07','謝楠','女','102'); insert into 學生 values('T08','蔣明','男','102'); insert into 學生 values('T09','陳沖','男','102'); insert into 學生 values('T10','趙琳','女','102'); insert into 學生 values('T11','韓寒','女','103'); insert into 學生 values('T12','吳亮','男','103'); insert into 學生 values('T13','劉波','男','103'); insert into 學生 values('T14','張斌','男','104'); insert into 學生 values('T15','周通','男','104'); insert into 學生 values('T16','張航','男','100');insert into 學習 values('T01','C1','1',88); insert into 學習 values('T01','C3','3',54); insert into 學習 values('T01','C4','3',69); insert into 學習 values('T01','C5','3',85); insert into 學習 values('T02','C3','3',74); insert into 學習 values('T02','C4','3',63); insert into 學習 values('T02','C5','3',66); insert into 學習 values('T02','C6','4',77); insert into 學習 values('T03','C1','1',95); insert into 學習 values('T03','C2','2',92); insert into 學習 values('T03','C3','3',92); insert into 學習 values('T03','C4','3',91); insert into 學習 values('T03','C5','3',87); insert into 學習 values('T04','C1','1',83); insert into 學習 values('T04','C3','3',64); insert into 學習 values('T04','C5','3',62); insert into 學習 values('T05','C3','3',83); insert into 學習 values('T05','C4','3',78); insert into 學習 values('T05','C6','4',78); insert into 學習 values('T06','C3','3',66); insert into 學習 values('T06','C5','5',33); insert into 學習 values('T07','C3','3',69); insert into 學習 values('T07','C4','3',56); insert into 學習 values('T08','C3','3',64); insert into 學習 values('T08','C5','5',65); insert into 學習 values('T09','C2','2',64); insert into 學習 values('T09','C3','3',45); insert into 學習 values('T10','C3','3',46); insert into 學習 values('T10','C4','3',56); insert into 學習 values('T11','C3','3',75); insert into 學習 values('T12','C3','3',86); insert into 學習 values('T13','C3','3',67); insert into 學習 values('T14','C3','3',65); insert into 學習 values('T15','C3','3',68); insert into 學習 values('T15','C5','3',56); insert into 學習 values('T16','C1','1',91); insert into 學習 values('T16','C2','2',89); insert into 學習 values('T16','C3','3',94); insert into 學習 values('T16','C4','3',76); insert into 學習 values('T16','C5','5',81); insert into 學習 values('T16','C6','4',82);insert into 學院 values('100','計算機'); insert into 學院 values('101','機電'); insert into 學院 values('102','管理'); insert into 學院 values('103','材料'); insert into 學院 values('104','文法');insert into 授課 values('1','C1'); insert into 授課 values('2','C2'); insert into 授課 values('3','C3'); insert into 授課 values('3','C4'); insert into 授課 values('3','C5'); insert into 授課 values('4','C6'); insert into 授課 values('5','C5'); insert into 授課 values('5','C6'); insert into 授課 values('5','C7');

1.求選修了老師“王剛”開課課程且成績在90分以上的學生姓名、課程名稱和成績;(姓名,課程名,成績)

select e.姓名,e1.課程名,e2.成績 from 學生 e,課程 e1,學習 e2,教師 e3 where e.學號=e2.學號 and e1.課程號=e2.課程號 and e2.成績>90 and e3.教師號=e2.教師號 and e3.教師名="王剛";

2.求選修了“王剛”老師所授全部課程的學生姓名和學院名稱;(姓名,學院名稱)

select e.姓名,e1.學院名 from 學生 e,學院 e1 where e.學院編碼=e1.學院編碼 and not exists (select *from 授課 e2,教師 e3 where e2.教師號= e3.教師號 and e3.教師名="王剛" and not exists(select *from 學習 where 學習.學號=e.學號 and 學習.課程號=e2.課程號));

3.求沒有選修課程“軟件工程”的學生學號和姓名;(學生學號,姓名)

select distinct e.學號,e.姓名 from 學生 e,學習 e1,課程 e2 where e.學號=e1.學號 and e1.課程號=e2.課程號 and not exists(select e5.學號 from 課程 e4,學習 e5 where e5.課程號=e4.課程號 and e4.課程名="軟件工程"and e5.學號=e.學號);

4.求至少選修了兩門課程的學生學號;(學號)

select distinct e1.學號 from 學習 e1 join (select e2.學號,count(e2.學號) p from 學習 e2 group by e2.學號) t on t.學號=e1.學號 where t.p>=2;

5.求課程“經濟學”不及格學生姓名和考試成績;(姓名,成績)

select e1.姓名,e3.成績 from 學生 e1,課程 e2,學習 e3 where e1.學號=e3.學號 and e2.課程號=e3.課程號 and e2.課程名="經濟學" and e3.成績<60;

6.求至少選修了與學號“T06” 同學選修的課程相同的學生學號;(學號)

select e.學號 from 學生 e where not exists (select *from 學習 e1 where e1.學號="T06" and not exists(select *from 學習 e2 where e2.學號=e.學號 and e2.課程號=e1.課程號));

7.求至少選修了“C3,C4”兩門課程的學生姓名和學院名稱;(姓名,學院名稱)

select distinct e.姓名,e1.學院名 from 學生 e,學院 e1,學習 e2 where e.學號=e2.學號 and e.學院編碼=e1.學院編碼 and e2.課程號="C3” and e.學號 in (select e3.學號 from 學習 e3 where e3.課程號=”C4”);

8.查詢“王石”同學沒有選修的課程號和課程名; (課程號,課程名)

select distinct e6.課程號,e6.課程名 from 課程 e6 where e6.課程號 not in ( select e1.課程號 from 學生 x ,課程 e1,學習 e where x.學號=e.學號 and e.課程號=e1.課程號 and x.姓名="王石");

9.查詢沒有被任何學生選修的課程的課程號;(課程號)

select distinct e5.課程號 from 課程 e5 where e5.課程號 not in( select distinct e.課程號 from 學習 e);

10.求選修了全部課程的學生姓名;(姓名)

select e.姓名 from 學生 e where not exists(select *from 課程 e1 where not exists(select *from 學習 e2 where e2.課程號=e1.課程號 and e2.學號=e.學號));

11.查詢各學院課程“經濟學”的平均分,并按照成績從高到低的順序排列;(學院名稱,平均分)

select e3.學院名 ,avg(e.成績) 成績 from 學習 e,課程 e1,學生 e2,學院 e3 where e.學號=e2.學號 and e.課程號=e1.課程號 and e2.學院編碼=e3.學院編碼 and e1.課程名=”經濟學” group by e2.學院編碼 order by 成績 desc;

12.查詢選修課程“經濟學”的學生姓名和所在院系,結果按各院系排列,同時成績從高到低排列;(姓名,學院名稱,成績)

select e2.姓名 ,e3.學院名, e.成績 from 學習 e,課程 e1,學生 e2,學院 e3 where e.學號=e2.學號 and e.課程號=e1.課程號 and e2.學院編碼=e3.學院編碼 and e1.課程名=”經濟學” order by e3.學院名 desc,e.成績 desc;

13.求學時在30-45之間(含30和45)的課程的課程號和課程名稱及授課教師;(課程號,課程名,教師姓名)

select e.課程號,e.課程名,e1.教師名 from 課程 e,教師 e1,授課 e2 where e.課程號=e2.課程號 and e2.教師號=e1.教師號 and e.學時 between 30 and 45;

14.檢索選修課程“經濟學”的最高分學生的姓名;(姓名)

select e1.姓名 from 學生 e1 ,學習 e2,課程 e3 where e1.學號=e2.學號 and e2.課程號=e3.課程號 and e3.課程名=”經濟學” and e2.成績=(select max(e.成績) from 學習 e,課程 e0 where e.課程號=e0.課程號 and e0.課程名=”經濟學”);

15.查詢選課人數超過5人的課程的課程號及課程名;(課程號,課程名)

select e.課程號,e.課程名 from 課程 e join(select e1.課程號,count(e1.課程號) number from 學習 e1 group by e1.課程號) t on e.課程號=t.課程號 where number>5;

有錯誤/好的建議可以評論回復,謝謝觀看.

總結

以上是生活随笔為你收集整理的数据库-DQL练习(附答案)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。