20道m(xù)ysql

表名和字段

–1.學生表

Student(s_id,s_name,s_birth,s_sex) –學生編號,學生姓名, 出生年月,學生性別

–2.課程表

Course(c_id,c_name,t_id) – –課程編號, 課程名稱, 教師編號

–3.教師表

Teacher(t_id,t_name) –教師編號,教師姓名

–4.成績表

Score(s_id,c_id,s_score) –學生編號,課程編號,分數(shù)

測試數(shù)據

--建表

--學生表

CREATE TABLE `Student`(

? ? `s_id` VARCHAR(20),

? ? `s_name` VARCHAR(20) NOT NULL DEFAULT '',

? ? `s_birth` VARCHAR(20) NOT NULL DEFAULT '',

? ? `s_sex` VARCHAR(10) NOT NULL DEFAULT '',

? ? PRIMARY KEY(`s_id`)

);

--課程表

CREATE TABLE `Course`(

? ? `c_id`? VARCHAR(20),

? ? `c_name` VARCHAR(20) NOT NULL DEFAULT '',

? ? `t_id` VARCHAR(20) NOT NULL,

? ? PRIMARY KEY(`c_id`)

);

--教師表

CREATE TABLE `Teacher`(

? ? `t_id` VARCHAR(20),

? ? `t_name` VARCHAR(20) NOT NULL DEFAULT '',

? ? PRIMARY KEY(`t_id`)

);

--成績表

CREATE TABLE `Score`(

? ? `s_id` VARCHAR(20),

? ? `c_id`? VARCHAR(20),

? ? `s_score` INT(3),

? ? PRIMARY KEY(`s_id`,`c_id`)

);

--插入學生表測試數(shù)據

insert into Student values('01' , '趙雷' , '1990-01-01' , '男');

insert into Student values('02' , '錢電' , '1990-12-21' , '男');

insert into Student values('03' , '孫風' , '1990-05-20' , '男');

insert into Student values('04' , '李云' , '1990-08-06' , '男');

insert into Student values('05' , '周梅' , '1991-12-01' , '女');

insert into Student values('06' , '吳蘭' , '1992-03-01' , '女');

insert into Student values('07' , '鄭竹' , '1989-07-01' , '女');

insert into Student values('08' , '王菊' , '1990-01-20' , '女');

--課程表測試數(shù)據

insert into Course values('01' , '語文' , '02');

insert into Course values('02' , '數(shù)學' , '01');

insert into Course values('03' , '英語' , '03');

--教師表測試數(shù)據

insert into Teacher values('01' , '張三');

insert into Teacher values('02' , '李四');

insert into Teacher values('03' , '王五');

--成績表測試數(shù)據

insert into Score values('01' , '01' , 80);

insert into Score values('01' , '02' , 90);

insert into Score values('01' , '03' , 99);

insert into Score values('02' , '01' , 70);

insert into Score values('02' , '02' , 60);

insert into Score values('02' , '03' , 80);

insert into Score values('03' , '01' , 80);

insert into Score values('03' , '02' , 80);

insert into Score values('03' , '03' , 80);

insert into Score values('04' , '01' , 50);

insert into Score values('04' , '02' , 30);

insert into Score values('04' , '03' , 20);

insert into Score values('05' , '01' , 76);

insert into Score values('05' , '02' , 87);

insert into Score values('06' , '01' , 31);

insert into Score values('06' , '03' , 34);

insert into Score values('07' , '02' , 89);

insert into Score values('07' , '03' , 98);

SELECT * from course; -- 2.課程表 Course(c_id,c_name,t_id) – –課程編號, 課程名稱, 教師編號

SELECT * from score; -- 4.成績表Score(s_id,c_id,s_score) –學生編號,課程編號,分數(shù)

SELECT * from student;-- –1.學生表 Student(s_id,s_name,s_birth,s_sex) –學生編號,學生姓名, 出生年月,學生性別

SELECT * from teacher; -- 教師表? Teacher(t_id,t_name) –教師編號,教師姓名

select 查詢條件 from 表名 where 表1,2之間相同的聯(lián)系 group by(分組)...having (對沒有的加一起的列名提出的條件)order by (排序)

-- 1、查詢"01"課程比"02"課程成績高的學生的信息及課程分數(shù)

select? e.score,s.*? from score e ,student s

where?

select s.*,e.s_score,a.s_score from student s ,score e,score a

where e.s_id = s.s_id and a.s_id=s.s_id and e.c_id='01' and a.c_id='02' and a.s_score<e.s_score

-- 2、查詢"01"課程比"02"課程成績低的學生的信息及課程分數(shù)

select s.*,e.s_score,a.s_score from student s ,score e,score a

where e.s_id = s.s_id and a.s_id=s.s_id and e.c_id='01' and a.c_id='02' and a.s_score>e.s_score

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

SELECT s.s_id,s.s_name,avg(e.s_score)? FROM student s,score e

WHERE e.s_id=s.s_id HAVING AVG(e. s_score)>=60

-- 4、查詢所有同學的學生編號、學生姓名、選課總數(shù)、所有課程的總成績

SELECT? s.s_id,s.s_name,COUNT(c_id),SUM(e.s_score)? FROM? student s ,score e

where s.s_id=e.s_id group by s.s_id,s.s_name

-- 5、查詢"李"姓老師的數(shù)量

SELECT * from course; -- 2.課程表 Course(c_id,c_name,t_id) – –課程編號, 課程名稱, 教師編號

SELECT * from score; -- 4.成績表Score(s_id,c_id,s_score) –學生編號,課程編號,分數(shù)

SELECT * from student;-- –1.學生表 Student(s_id,s_name,s_birth,s_sex) –學生編號,學生姓名, 出生年月,學生性別

SELECT * from teacher; -- 教師表? Teacher(t_id,t_name) –教師編號,教師姓名

select count(t_name) from teacher where t_name like '李%'

-- 6、查詢學過編號為"01"并且也學過編號為"02"的課程的同學的信息

select s.* from student s, score e, score a

WHERE s.s_id=e.s_id and s.s_id=a.s_id

and? e.s_id='01' and a.s_id= '02'

-- 7、檢索"01"課程分數(shù)小于60,按分數(shù)降序排列的學生信息

select s.*,e.s_score from student s,score e where s.s_id=e.s_id and e.c_id='01' and e.s_score<60 ORDER BY e.s_score DESC

-- 8、查詢不同老師所教不同課程平均分從高到低顯示

select t.t_name,AVG( e.s_score),c.c_name from teacher t,score e ,course c

where c.c_id=e.c_id and c.t_id=t.t_id? GROUP BY t.t_name

ORDER BY avg(e.s_score) DESC

-- 9、查詢每門課程被選修的學生數(shù)

SELECT e.c_id,COUNT( *) from score e group by e.c_id

-- 10、查詢男生、女生人數(shù)

select s_sex,COUNT(*) from student group by s_sex

-- 11、查詢名字中含有"風"字的學生信息

SELECT * from course; -- 2.課程表 Course(c_id,c_name,t_id) – –課程編號, 課程名稱, 教師編號

SELECT * from score; -- 4.成績表Score(s_id,c_id,s_score) –學生編號,課程編號,分數(shù)

SELECT * from student;-- –1.學生表 Student(s_id,s_name,s_birth,s_sex) –學生編號,學生姓名, 出生年月,學生性別

SELECT * from teacher; -- 教師表? Teacher(t_id,t_name) –教師編號,教師姓名

SELECT * from student? where s_name like '風'

-- 12、查詢同名同性學生名單,并統(tǒng)計同名人數(shù)

SELECT s_name,COUNT( *) from student GROUP by s_name HAVING COUNT(*)>1

-- 13、查詢1990年出生的學生名單

SELECT * from student where s_birth=1990

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

select AVG(e.s_score),c.c_name from score e, course c WHERE e.c_id=c.c_id? GROUP BY c.c_name ORDER BY AVG( e.s_score) DESC , e.c_ID ASC

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

select s.s_id,s.s_name,AVG(e.s_score) FROM student s,score e where s.s_id=e.s_id GROUP BY e.s_id HAVING AVG( e.s_score)>85

-- 16、查詢不及格的課程

select c.c_name,s.s_name,e.s_score? from student s,course c, score e where c.c_id=e.c_id and s.s_id=e.s_id? and e.s_score<60

-- 17、查詢課程編號為01且課程成績在80分以上的學生的學號和姓名;

select s.s_id,s.s_name from student s, score e where e.s_score>80 and e.s_id='01' GROUP BY s.s_id

-- 18、求每門課程的學生人數(shù)

SELECT * from course; -- 2.課程表 Course(c_id,c_name,t_id) – –課程編號, 課程名稱, 教師編號

SELECT * from score; -- 4.成績表Score(s_id,c_id,s_score) –學生編號,課程編號,分數(shù)

SELECT * from student;-- –1.學生表 Student(s_id,s_name,s_birth,s_sex) –學生編號,學生姓名, 出生年月,學生性別

SELECT * from teacher; -- 教師表? Teacher(t_id,t_name) –教師編號,教師姓名

select c_id,count(*) as "學生人數(shù)"

from score

GROUP BY C_Id

-- 19、統(tǒng)計每門課程的學生選修人數(shù)(超過5人的課程才統(tǒng)計)。要求輸出課程號和選修人數(shù),查詢結果按人數(shù)降序排列,若人數(shù)相同,按課程號升序排列

select C_Id,count(*) as "學生人數(shù)"

from score

GROUP BY "學生人數(shù)",c_id ORDER BY "學生人數(shù)" DESC ,s_score ASC

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

select s_id from score GROUP BY s_score HAVING COUNT( *)>1

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容