MySQL學習(五)
本MySQL學習系列博客共八篇,此為第五篇。
目錄:
1、實現內容
2、代碼示例
3、運行結果
1、實現內容:

圖1.1 實驗內容
2、代碼示例:
#1、求計算機學院學生的總數。select department_name, count(student_id) as student_numberfrom v_student, v_departmentwhere v_student.department_id = v_department.department_idand v_department.department_name = '計算機學院';#2、查詢年齡為工齡若干倍(可以為小數)的教師信息。select teacher_id, teacher_name,(extract(year from current_date()) - extract(year from teacher_birthday)) / (extract(year from current_date()) - extract(year from teacher_workyear)) as timesfrom v_teacher;#3、查詢任課數超過2門的教師的編號。select *from ( select teacher_id, count(teacher_id) as task_number from v_teacher_course_task group by teacher_id)twhere t.task_number > 2;#4、查詢院系為計算機學院或經濟與工商管理學院且年齡大于等于21的學生的學號、院系名稱和姓名select student_id, department_name, student_namefrom v_student, v_departmentwhere (extract(year from current_date()) - extract(year from student_birthday)) >= 21and v_department.department_id = v_student.department_idand v_department.department_name in('計算機學院', '工商管理學院');#5、查詢年齡為20或21的學生的學號、院系編號、姓名、年齡。select student_id, department_id, student_name,(extract(year from current_date()) - extract(year from student_birthday)) as age from v_studentwhere (extract(year from current_date()) - extract(year from student_birthday)) between 20 and 21;#6、查詢學號為3114005833,3114005849,3214005848,3114005847的學生的平均年齡。select avg(t.a) as avg_agefrom ( select student_id, (extract(year from current_date()) - extract(year from student_birthday)) as a from v_student where student_id in('3114005833', '3114005849', '3214005848', '3114005847'))t;#7、查詢最便宜的名字帶“教材”二字的教材的信息。select textbook_id, textbook_name, PRess, unit_price, publish_datefrom v_textbook, ( select min(unit_price) as price from v_textbook where textbook_name like '%教材%')twhere t.price = unit_price;#8、把教師表中年齡小于等于60的計算機教師的年齡提高10%。#首先根據教師表創建包含年齡項的新表create table t( select teacher_id, teacher_name, (extract(year from current_date()) - extract(year from teacher_birthday)) as age from v_teacher where (extract(year from current_date()) - extract(year from teacher_birthday))< 60);#更新年齡update tset age = age * 1.1;#查看更新后的結果select *from t;3、運行結果:
答:(1)求計算機學院學生的總數。

圖3.1 第1題執行結果
(2)查詢年齡為工齡若干倍(可以為小數)的教師信息。

圖3.2 第2題執行結果
(3)查詢任課數超過2門的教師的編號。

圖3.3 第3題執行結果
(4)查詢院系為計算機學院或經濟與工商管理學院且年齡大于等于21的學生的學號、院系名稱和姓名

圖3.4 第4題執行結果
(5)查詢年齡為20或21的學生的學號、院系編號、姓名、年齡。

圖3.5 第5題執行結果
(6)查詢學號為3114005833,3114005849,3214005848,3114005847的學生的平均年齡。

圖3.6 第6題執行結果
(7)查詢最便宜的名字帶“教材”二字的教材的信息。

圖3.7 第7題執行結果
(8)把教師表中年齡小于等于60的計算機教師的年齡提高10%。

圖3.8 第8題執行結果
新聞熱點
疑難解答