首页 > 学院 > 开发设计 > 正文

MySQL学习(五)

2019-11-08 20:29:48
字体:
来源:转载
供稿:网友

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题执行结果


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表