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题执行结果
新闻热点
疑难解答