一. 表關係 1. 創建如下表,並創建相關約束. # 創建班級表 create table class ( cid int primary key not null auto_increment, caption varchar(20) not null ); # 創建老師表 create tabl ...
一. 表關係
1. 創建如下表,並創建相關約束.
# 創建班級表 create table class ( cid int primary key not null auto_increment, caption varchar(20) not null ); # 創建老師表 create table teacher ( tid int primary key not null auto_increment, tname varchar(20) not null ); # 創建學生表 create table student ( sid int primary key not null auto_increment, sname varchar(20) not null, gender enum("男", "女"), class_id int not null, constraint fk_student_class foreign key(class_id) references class(cid) on delete cascade on update cascade ); # 創建課程表 create table course ( cid int primary key not null auto_increment, cname varchar(20) not null, teach_id int not null, constraint fk_course_teacher foreign key(teach_id) references teacher(tid) on delete cascade on update cascade ); # 創建成績表 create table score( sid int primary key not null auto_increment, student_id int not null, course_id int not null, number int not null, constraint fk_score_student foreign key(student_id) references student(sid) on delete cascade on update cascade, constraint fk_score_course foreign key(course_id) references course(cid) on delete cascade on update cascade );創建表 -- 參考
二. 操作表
1、自行創建測試數據;
2、查詢“生物”課程比“物理”課程成績高的所有學生的學號;
3、查詢平均成績大於60分的同學的學號和平均成績;
4、查詢所有同學的學號、姓名、選課數、總成績;
5、查詢姓“李”的老師的個數;
6、查詢沒學過“葉平”老師課的同學的學號、姓名;
7、查詢學過“001”並且也學過編號“002”課程的同學的學號、姓名;
8、查詢學過“葉平”老師所教的所有課的同學的學號、姓名;
9、查詢課程編號“002”的成績比課程編號“001”課程低的所有同學的學號、姓名;
10、查詢有課程成績小於60分的同學的學號、姓名;
11、查詢沒有學全所有課的同學的學號、姓名;
12、查詢至少有一門課與學號為“001”的同學所學相同的同學的學號和姓名;
13、查詢至少學過學號為“001”同學所選課程中任意一門課的其他同學學號和姓名;
14、查詢和“002”號的同學學習的課程完全相同的其他同學學號和姓名;
15、刪除學習“葉平”老師課的SC表記錄;
16、向SC表中插入一些記錄,這些記錄要求符合以下條件:①沒有上過編號“002”課程的同學學號;②插入“002”號課程的平均成績;
17、按平均成績從低到高顯示所有學生的“語文”、“數學”、“英語”三門的課程成績,按如下形式顯示: 學生ID,語文,數學,英語,有效課程數,有效平均分;
18、查詢各科成績最高和最低的分:以如下形式顯示:課程ID,最高分,最低分;
19、按各科平均成績從低到高和及格率的百分數從高到低順序;
20、課程平均分從高到低顯示(現實任課老師);
21、查詢各科成績前三名的記錄:(不考慮成績併列情況)
22、查詢每門課程被選修的學生數;
23、查詢出只選修了一門課程的全部學生的學號和姓名;
24、查詢男生、女生的人數;
25、查詢姓“張”的學生名單;
26、查詢同名同姓學生名單,並統計同名人數;
27、查詢每門課程的平均成績,結果按平均成績升序排列,平均成績相同時,按課程號降序排列;
28、查詢平均成績大於85的所有學生的學號、姓名和平均成績;
29、查詢課程名稱為“數學”,且分數低於60的學生姓名和分數;
30、查詢課程編號為003且課程成績在80分以上的學生的學號和姓名;
31、求選了課程的學生人數
32、查詢選修“楊艷”老師所授課程的學生中,成績最高的學生姓名及其成績;
33、查詢各個課程及相應的選修人數;
34、查詢不同課程但成績相同的學生的學號、課程號、學生成績;
35、查詢每門課程成績最好的前兩名;
36、檢索至少選修兩門課程的學生學號;
37、查詢全部學生都選修的課程的課程號和課程名;
38、查詢沒學過“葉平”老師講授的任一門課程的學生姓名;
39、查詢兩門以上不及格課程的同學的學號及其平均成績;
40、檢索“004”課程分數小於60,按分數降序排列的同學學號;
41、刪除“002”同學的“001”課程的成績;