mysql考試總結

USE school;
-- 班級表
CREATE TABLE class(cid TINYINT PRIMARY KEY AUTO_INCREMENT,caption VARCHAR(20)
);INSERT INTO class(caption) VALUES("三年二班"),("一年三班"),("三年一班");SELECT * FROM class;-- 老師表
CREATE TABLE teacher(tid TINYINT PRIMARY KEY AUTO_INCREMENT,tname VARCHAR(20)
);INSERT INTO teacher(tname) VALUES("波多"),("蒼空"),("飯島");SELECT * FROM teacher;-- 學生表
CREATE TABLE student(sid TINYINT PRIMARY KEY AUTO_INCREMENT,sname VARCHAR(20),gender VARCHAR(10),class_id TINYINT,FOREIGN KEY (class_id) REFERENCES class(cid)
);INSERT INTO student(sname,gender,class_id) VALUES("鋼蛋","女",1),("鐵錘","女",1),("山炮","男",2);SELECT * FROM student;-- 課程表
CREATE TABLE course(cid TINYINT PRIMARY KEY AUTO_INCREMENT,cname VARCHAR(20),teacher_id TINYINT,FOREIGN KEY (teacher_id) REFERENCES teacher(tid)
);
ALTER TABLE course MODIFY cid TINYINT, DROP PRIMARY KEY;
ALTER TABLE course ADD CONSTRAINT xx FOREIGN KEY (cid) REFERENCES class(cid);
DESC course;
SHOW CREATE TABLE course;
INSERT INTO course(cname,teacher_id) VALUES("生物",1),("體育",1),("物理",2);SELECT * FROM course;
-- 成績表
CREATE TABLE score(sid TINYINT PRIMARY KEY AUTO_INCREMENT,student_id TINYINT,course_id TINYINT,number INT,FOREIGN KEY (student_id) REFERENCES student(sid),FOREIGN KEY (course_id) REFERENCES course(cid)
);INSERT INTO score(student_id, course_id, number) VALUES(1,1,60),(1,2,59),(2,2,100);SELECT * FROM score;DELETE FROM score WHERE sid=6;# 二、操作表
#
# 1、自行創建測試數據
#
# 2、查詢“生物”課程比“物理”課程成績高的所有學生的學號;
SELECT B.student_id FROM
(SELECT score.student_id,score.number FROM score INNER JOIN course ON score.course_id = course.cid WHERE course.cname="生物") as AINNER JOIN
(SELECT score.student_id,score.number FROM score INNER JOIN course ON score.course_id = course.cid WHERE course.cname="物理") as BON A.student_id=B.student_id AND A.number>B.number;# 3、查詢平均成績大于60分的同學的學號和平均成績;
INSERT INTO score(student_id, course_id, number) VALUES(2,3,56),(3,1,46),(3,2,59),(3,3,71),(4,1,90),(4,2,27);
SELECT student_id,avg(number) 平均成績 FROM score GROUP BY student_id HAVING avg(number)>60;
# 4、查詢所有同學的學號、姓名、選課數、總成績;
SELECT student.sid,student.sname,count(student.class_id) 選課數,sum(number) 總成績FROM student INNER JOIN score ON student.sid = score.student_id GROUP BY sname ORDER BY 總成績;# 5、查詢姓“波”的老師的個數;
SELECT count(*) 波老師個數 FROM teacher WHERE tname LIKE "波%";
INSERT INTO teacher(tname) VALUES ("波大");
# 6、查詢沒學過“葉平”老師課的同學的學號、姓名;-- 得到所有同學學過的課程及其對應的老師,然后對應篩選
INSERT INTO teacher(tname) VALUES("葉平");
INSERT INTO course(cname, teacher_id) VALUES("歷史",5);
INSERT INTO score(student_id, course_id, number) VALUES(1,5,81);SELECT student.sid,student.sname,A.tname FROM scoreINNER JOIN student ON score.student_id = student.sidINNER JOIN (SELECT DISTINCT course.cid,course.teacher_id,course.cname,teacher.tname FROMcourse INNER JOIN teacher ON course.teacher_id = teacher.tid) AS A ON score.course_id = A.cidGROUP BY A.tname HAVING A.tname!="葉平";# 7、查詢學過“1”并且也學過編號“2”課程的同學的學號、姓名;
INSERT INTO student(sname,gender,class_id) VALUES("張三","男",3);
INSERT INTO score(student_id, course_id, number) VALUES(5,2,63);SELECT B.sid 學號,B.sname 姓名 FROM(SELECT student.sid,student.sname FROM score INNER JOIN student ON score.student_id = student.sid
WHERE course_id=1) AS AINNER JOIN(SELECT student.sid,student.sname FROM score INNER JOIN student ON score.student_id = student.sid
WHERE course_id=2) AS B ON A.sid = B.sid;# 8、查詢學過“葉平”老師所教的所有課的同學的學號、姓名;
SELECT * FROM student;    SELECT * FROM score;
INSERT INTO student(sname, gender, class_id) VALUES("王五","男",3);
INSERT INTO score(student_id, course_id, number) VALUES(8,5,93);SELECT student.sid 學號,student.sname 姓名 FROM score INNER JOIN studentON score.student_id = student.sid AND course_id=5;# 9、查詢課程編號“2”的成績比課程編號“1”課程低的所有同學的學號、姓名;
INSERT INTO student(sname, gender, class_id) VALUES("趙六","女",2);
INSERT INTO score(student_id, course_id, number) VALUES(9,2,65),(9,1,70);
UPDATE score SET number = 65 WHERE sid=21;SELECT * FROM student WHERE(SELECT number FROM score WHERE student.sid=score.student_id AND score.course_id=2)<(SELECT number FROM score WHERE student.sid=score.student_id AND score.course_id=1);# 10、查詢有課程成績小于60分的同學的學號、姓名;
SELECT student.sid,student.sname FROM studentINNER JOIN score ON student.sid = score.student_id WHERE score.number<60 GROUP BY student.sname;
INSERT INTO student(sname, gender, class_id) VALUES("鋼镚","男",2);
INSERT INTO score(student_id, course_id, number) VALUES(4,3,48);
# 11、查詢沒有學全所有課的同學的學號、姓名;
-- 測試
SELECT count(cid) 總課程數 FROM course;
SELECT count(course_id) study_course FROM score GROUP BY student_id;
SELECT * FROM (SELECT count(cid) 總課程數 FROM course) AS AINNER JOIN(SELECT count(course_id) study_course FROM score GROUP BY student_id) AS BON A.總課程數 = B.study_course;-- 正確答案
SELECT student.sid,student.sname,count(course_id) 學習課程數 FROM score INNER JOIN studentON score.student_id = student.sid GROUP BY student_idHAVING count(course_id)=(SELECT count(cid) FROM course);# 12、查詢至少有一門課與學號為“001”的同學所學相同的同學的學號和姓名;
#
# 13、查詢至少學過學號為“001”同學所有一門課的其他同學學號和姓名;
#
# 14、查詢和“2”號的同學學習的課程完全相同的其他同學學號和姓名;# 15、刪除學習“葉平”老師課的SC表記錄;
#
# 16、向SC表中插入一些記錄,這些記錄要求符合以下條件:①沒有上過編號“002”課程的同學學號;②插入“002”號課程的平均成績;
#
# 17、按平均成績從低到高顯示所有學生的“語文”、“數學”、“英語”三門的課程成績,按如下形式顯示: 學生ID,語文,數學,英語,有效課程數,有效平均分;
#
# 18、查詢各科成績最高和最低的分:以如下形式顯示:課程ID,最高分,最低分;
SELECT course_id,max(number) 最高分,min(number) 最低分 FROM score GROUP BY course_id;INSERT INTO score(student_id, course_id, number) VALUES(2,1,76);
# 19、按各科平均成績從低到高和及格率的百分數從高到低順序;-- 分析求出平均成績并計算及格率
SELECT avg(number) 課程平均成績 FROM score GROUP BY course_id;
SELECT count(student_id) 各科不及格人數 FROM score WHERE number>60 GROUP BY course_id;
SELECT count(student_id) 各科總人數 FROM score GROUP BY course_id;-- 答案如下
SELECT A.課程平均成績,B.各科不及格人數/C.各科總人數 AS 及格率 FROM(SELECT course_id,avg(number) 課程平均成績 FROM score GROUP BY course_id) AS AINNER JOIN(SELECT course_id,count(student_id) 各科不及格人數 FROM score WHERE number>60 GROUP BY course_id) AS BINNER JOIN(SELECT course_id,count(student_id) 各科總人數 FROM score GROUP BY course_id) AS CON A.course_id = B.course_id AND A.course_id = C.course_id ORDER BY A.課程平均成績;# 20、課程平均分從高到低顯示(顯示任課老師);
SELECT teacher.tname,course.cname FROM teacher,course WHERE course.teacher_id = teacher.tid;
SELECT avg(number) 課程平均分 FROM teacher,score GROUP BY course_id;
-- 答案如下
SELECT A.tname 任課老師,B.課程平均分 FROM(SELECT teacher.tname,course.cname,course.cid FROM teacher,course WHERE course.teacher_id = teacher.tid) AS AINNER JOIN(SELECT avg(number) 課程平均分,teacher.tname,score.course_id FROM teacher,score GROUP BY course_id) AS BON A.cid=B.course_id ORDER BY B.課程平均分 DESC;# 21、查詢各科成績前三名的記錄:(不考慮成績并列情況)
SELECT * FROM score ORDER BY course_id;# 22、查詢每門課程被選修的學生數;-- 分析  根據成績根據課程進行分類,按照學生ID統計次數
SELECT score.course_id 課程ID,count(student_id) 課程人次 FROM score GROUP BY course_id;# 23、查詢出只選修了一門課程的全部學生的學號和姓名;
SELECT student.sid,student.sname FROM(SELECT * FROM score GROUP BY student_id HAVING count(student_id)=1) AS AINNER JOIN student ON A.student_id = student.sid;
# 24、查詢男生、女生的人數;
SELECT boy.男,girl.女 FROM(SELECT count(gender) 男 FROM student WHERE gender="男") as boy,(SELECT count(gender) 女 FROM student WHERE gender="女") as girl;# 25、查詢姓“張”的學生名單;
SELECT sid,sname FROM student WHERE sname LIKE "張%";
# 26、查詢同名同姓學生名單,并統計同名人數;
SELECT sname 姓名,count(sname) 同名人數 FROM student GROUP BY sname;
# 27、查詢每門課程的平均成績,結果按平均成績升序排列,平均成績相同時,按課程號降序排列;
SELECT A.cid 課程號,B.課程平均分 FROM(SELECT teacher.tname,course.cname,course.cid FROM teacher,course WHERE course.teacher_id = teacher.tid) AS AINNER JOIN(SELECT avg(number) 課程平均分,teacher.tname,score.course_id FROM teacher,score GROUP BY course_id) AS BON A.cid=B.course_id ORDER BY B.課程平均分 DESC;# 28、查詢平均成績大于85的所有學生的學號、姓名和平均成績;
SELECT student.sid 學號,student.sname 姓名,avg(score.number) 平均成績 FROMstudent INNER JOIN score ON student.sid = score.student_id GROUP BY sname;# 29、查詢課程名稱為“生物”,且分數低于60的學生姓名和分數;
SELECT course.cname 課程,student.sname 姓名,score.number 分數 FROM score INNER JOIN student INNER JOIN courseON score.student_id = student.sid AND score.course_id=course.cidWHERE course.cname="生物" AND score.number<60;# 30、查詢課程編號為3且課程成績在80分以上的學生的學號和姓名;
SELECT student.sid 學號,student.sname 姓名 FROM score INNER JOIN studentON score.student_id = student.sid AND score.course_id=3 AND score.number>80;# 31、求選了課程的學生人數
INSERT INTO student(sname, gender, class_id) VALUES("李四","男",3);
INSERT INTO student(sname, gender, class_id) VALUES("勝七","女",2);
INSERT INTO score(student_id, course_id, number) VALUES(7,1,74);
-- 答案如下
SELECT count(A.student_id) 選課人數 FROM (SELECT DISTINCT student_id FROM score) AS A;# 32、查詢選修“蒼空”老師所授課程的學生中,成績最高的學生姓名及其成績;
SELECT student.sname 姓名,max(number) 成績 FROM score INNER JOIN student INNER JOIN course INNER JOIN teacherON score.student_id=student.sid AND score.course_id=course.cid AND course.teacher_id=teacher.tidWHERE teacher.tname="蒼空";# 33、查詢各個課程及相應的選修人數;
SELECT score.course_id 課程ID,count(student_id) 課程人次 FROM score GROUP BY course_id;
# 34、查詢不同課程但成績相同的學生的學號、課程號、學生成績;
#
# 35、查詢每門課程成績最好的前兩名;
#
# 36、檢索至少選修兩門課程的學生學號;-- 分析 根據學生ID進行分組,統計課程出現次數,篩選課程次數大于等于2的學生
SELECT student_id FROM score GROUP BY student_id HAVING count(course_id)>=2;
# 37、查詢全部學生都選修的課程的課程號和課程名;
SELECT score.student_id 學生ID,course.cname 所選課程,course.cid 課程ID FROM score INNER JOIN courseON score.course_id = course.cid ORDER BY 學生ID;# 38、查詢沒學過“葉平”老師講授的任一門課程的學生姓名;
#
# 39、查詢兩門以上不及格課程的同學的學號及其平均成績;
SELECT A.student_id 學號,B.平均成績 FROM(SELECT student_id FROM score WHERE number<60 GROUP BY student_id HAVING count(number)>=2) AS A
INNER JOIN(SELECT student_id,avg(number) 平均成績 FROM score GROUP BY student_id) AS B ON A.student_id=B.student_id;# 40、檢索“1”課程分數小于60,按分數降序排列的同學學號;
SELECT student_id FROM score WHERE course_id=1 AND number<60;
# 41、刪除“2”同學的“1”課程的成績;-- 此題已答

  

轉載于:https://www.cnblogs.com/nulige/p/6544052.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255143.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255143.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255143.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

反思

1.說明一下ArrayList和數組的區別&#xff0c;并且分別寫出初始化的語句&#xff1a; ArrayList:可以放不同的類型&#xff0c;長度不固定 數組&#xff1a;放同一類型&#xff0c;長度固定 數組的初始化語句&#xff1a;int []anew int []{}; ArrayList初始化語句&#xff1a;…

HALCON示例程序high.hdev使用不同方法提取區域

HALCON示例程序high.hdev使用不同方法提取區域 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_close_window () read_image (Mreut, ‘mreut_y’) get_image_size (Mreut, Width, Height) dev_open_window (0, 0, Width, Height, ‘black’, WindowHan…

閱讀好書依然是提升自己的高效方法:兼以作者的身份告訴大家如何選擇書,以及高效學習的方法...

國內技術網站多如牛毛&#xff0c;質量高的網站也不少&#xff0c;博客園也算一個&#xff0c;各類文章數以百萬計&#xff0c;我隨便輸入一個關鍵字&#xff0c;比如Spring Cloud&#xff0c;都能看到大量的技術文章和教學視頻&#xff0c;我無意貶低技術文章和教學視頻的作用…

TCP/IP 協議簇的逐層封裝

在使用 TCP 協議的網絡程序中&#xff0c;用戶數據從產生到從網卡發出去一般要經過如下的逐層封裝過程&#xff1a; 從下往上看&#xff1a; 1&#xff09;鏈路層通過加固定長度的首部、尾部來封裝 IP 數據報(Datagram) 產生以太網幀(Frame)。 其中首部存在對封裝數據的…

【開源程序(C++)】獲取bing圖片并自動設置為電腦桌面背景

眾所周知&#xff0c;bing搜索網站首頁每日會更新一張圖片&#xff0c;張張漂亮&#xff08;額&#xff0c;也有一些不合我口味的&#xff09;&#xff0c;特別適合用來做電腦壁紙。 我們想要將bing網站背景圖片設置為電腦桌面背景的通常做法是&#xff1a; 上網&#xff0c;搜…

UIProgressView 圓角

里面外面都變成圓角 不用圖片 直接改變layer 重點是里面外面都是圓角哦 for (UIImageView * imageview in self.progress.subviews) { imageview.layer.cornerRadius 5; imageview.clipsToBounds YES; } 轉載于:https://www.cnblogs.com/huoran1120/p/5563991.html

HALCON示例程序holes.hdev孔洞提取

HALCON示例程序holes.hdev孔洞提取 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 read_image (Image, ‘progres’) get_image_size (Image, Width, Height) dev_close_window () dev_open_window (0, 0, Width, Height, ‘white’, WindowID) dev_set_co…

給實例動態增加方法VS給類動態增加方法

一、給實例綁定方法 object.method MethodType(method,object) >>>class Badbrains(): pass >>>def mocking(self): print(Brain\s Mocking) >>>b Badbrains() >>>from types import MethodType >>>b.mocking MethodType(moc…

一句DOS命令搞定文件合并

用Dos的copy命令實現&#xff1a; copy a.jsb.jsc.js abc.js /b 將 a.js b.js c.js 合并為一個 abc.js&#xff0c;最后的 /b 表示文件為二進位文件&#xff0c;copy 命令的其它參數可以在 cmd 里輸入 copy /? 學習 舉例&#xff1a;如果想要合并多個js文件到某個目錄下&#…

DataTables warning: Requested unknown parameter '0' from the data source for row '0'

問題&#xff1a;DataTables warning: Requested unknown parameter 0 from the data source for row 0 代碼&#xff1a; <script type"text/javascript">var data [{"Name":"UpdateBootProfile","Result":"PASS",&…

HALCON示例程序hull.hdev區域提取與凸度篩選

HALCON示例程序hull.hdev區域提取與凸度篩選 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 read_image (Hull, ‘hull’) get_image_size (Hull, Width, Height) dev_close_window () dev_open_window (0, 0, Width, Height, ‘black’, WindowID) dev_di…

我與Linux系統的交集

2019獨角獸企業重金招聘Python工程師標準>>> 一、初識Linux 第一次知道Linux還是在我剛進大學的時候&#xff0c;從開始聊QQ、玩斗地主的時候起我就是用的Windows&#xff0c;從Windows2000一直到Windows7&#xff0c;當時我已經完全習慣了使用Windows&#xff0c;而…

squid白名單

http_access deny all #取消注釋 http_access allow all --> http_access allow xxx_custom_ip#添加系統服務器IP白名單 acl xdaili_custom_ip src 60.191.4.xxx/32 acl xdaili_custom_ip src 139.196.210.xxx/32 acl xdaili_custom_ip src 139.196.172.xxx/32 acl xdail…

HALCON示例程序IC.hdev通過電路板元器件定位識別

HALCON示例程序IC.hdev通過電路板元器件定位識別 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_close_window () read_image (Image, ‘ic’) get_image_size (Image, Width, Height) dev_open_window (0, 0, Width, Height, ‘black’, WindowID) de…

IP頭、TCP頭、UDP頭詳解以及定義

一、MAC幀頭定義 /*數據幀定義&#xff0c;頭14個字節&#xff0c;尾4個字節*/ typedef struct _MAC_FRAME_HEADER { char m_cDstMacAddress[6]; //目的mac地址 char m_cSrcMacAddress[6]; //源mac地址 short m_cType;      //上一層協議類型&#xff0c;如…

關于iOS 3D touch 指紋驗證的隨筆

file:///Users/OWen/Desktop/3DTouch.png 隨著iOS系統不斷的更新迭代&#xff0c;蘋果總會推出一些新的功能&#xff0c;今天就研究了一下iOS8之后推出的指紋驗證的功能&#xff0c;然后寫了一個小demo&#xff0c;與君分享。。 上demo&#xff1a; 1&#xff1a;首先導入一個…

HALCON示例程序inner_rectangle1.hdev木板有效區域提取

HALCON示例程序inner_rectangle1.hdev木板有效區域提取 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_window (‘off’) dev_update_var (‘off’) dev_update_pc (‘off’) read_image (Image, ‘wood_knots’) get_image_size (Image, Width…

vsCode ext install 不工作

vsCode 擴展商店 不可用 ext 不可用 ext install eamodio.gitlens 1、搜索離線插件https://marketplace.visualstudio.com/vscode 2、插件離線插件模板https://marketplace.gallery.vsassets.io/_apis/public/gallery/publisher/marketplace/extension/${extension name}/${ver…

遞歸實現 十進制轉換其他進制(2-16)

1 def to_str(n, base): 2 convert_string "0123456789ABCDEF" 3 if n < base: 4 return convert_string[n] 5 else: 6 return to_str(n / base, base) convert_string[n % base] 7 8 print to_str(168, 8) 轉載于:https://www.cn…

在UltraEdit的查找和替換中使用正則表達式 (轉)

很多朋友都用過或者正在用UltraEdit&#xff0c;這個編輯器陪伴我也好幾年了&#xff0c;從很多地方影響著我寫代碼的快捷鍵習慣&#xff0c;Ultraedit提供了非常豐富的編輯功能&#xff0c;其中非常重要的查找和替換功能一定大家都用過&#xff0c;Ultraedit提供的查找替換功能…