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

MySQL学习(六)

2019-11-08 20:28:53
字体:
来源:转载
供稿:网友
MySQL学习(六)本MySQL学习系列博客共八篇,此为第六篇。目录:1、实现内容2、代码示例3、运行结果1、实现内容:图1.1 实现内容2、代码示例:
#1、查询计算机学院学生的最高年龄、最低年龄及之间相差的年龄数。select max(t.age) as max_age, min(t.age) as min_age, max(t.age) - min(t.age) as D_valuefrom (	select student_id, v_student.department_id,	(extract(year from current_date()) - extract(year from student_birthday)) as age	from v_student, v_department	where v_student.department_id = v_department.department_id	and department_name = '计算机学院')t;#2、查询总成绩在200分以上(含200分)的学生编号和总成绩。select student_id, sum(grade) as sum_gradefrom v_student_scoregroup by student_idhaving sum(grade) >= 200;#3、查询选修两门以上的课程的学生学号和选课门数。select student_id, count(student_id) as numfrom v_student_scoregroup by student_idhaving count(*) > 2;#4、求选课在2门以上且各门课程均及格的学生的学号及其总成绩,查询结果按总成绩降序列出。select student_id, sum(grade) as sum_grade from v_student_scorewhere grade >= 60group by student_idhaving count(*) >= 2order by sum(grade) desc;#5、查询至少有一门课程在80分以上的学生。select v_student_score.student_id, student_namefrom v_student, v_student_scorewhere grade > 80and v_student.student_id = v_student_score.student_idgroup by v_student_score.student_idhaving count(*) >= 1;#6、查询教材名称中不包含“Database”、“SQL”、“数据库”等字样的教材信息。select * from v_textbookwhere textbook_name not like '%Database%'and textbook_name not like '%SQL%'and textbook_name not like '%数据库%';#7、为院系表的院系负责人增加外键约束。#首先根据院系表创建一个新表v_admincreate table v_admin(	select department_administrator, department_phone	from v_department);alter table v_adminadd PRimary key(department_administrator);#增加外键约束alter table v_department	add constraint fk_admin	foreign key(department_administrator)	references v_admin(department_administrator);#查看外键select * from information_schema.TABLE_CONSTRAINTS as twhere t.table_name = 'v_department';#8、把讲授数据库的教师的工龄增加1年。update v_teacherleft join (	select v_teacher_course_task.teacher_id	from v_teacher_course_task, v_course	where v_course.course_id = v_teacher_course_task.course_id	and v_course.course_name = '数据库')ton v_teacher.teacher_id = t.teacher_idset teacher_workyear = date_add(teacher_workyear, interval -1 year)where v_teacher.teacher_id = t.teacher_id;select * from v_teacher;#9、将课程名称为“数据库”的成绩增加1分。update v_student_scoreleft join(	select v_student_score.course_id	from v_student_score, v_course	where v_course.course_name = '数据库'	and v_course.course_id = v_student_score.course_id)ton v_student_score.course_id = t.course_idset grade = grade + 1where v_student_score.course_id = t.course_id;3、运行结果:(1)查询计算机学院学生的最高年龄、最低年龄及之间相差的年龄数。图3.1 第1题执行结果(2)查询总成绩在200分以上(含200分)的学生编号和总成绩。图3.2 第2题执行结果(3)查询选修两门以上的课程的学生学号和选课门数。图3.3 第3题执行结果(4)求选课在2门以上且各门课程均及格的学生的学号及其总成绩,查询结果按总成绩降序列出。图3.4 第4题执行结果(5)查询至少有一门课程在80分以上的学生。图3.5  第5题执行结果(6)查询教材名称中不包含“Database”、“SQL”、“数据库”等字样的教材信息。图3.6 第6题执行结果(7)为院系表的院系负责人增加外键约束。图3.7 第7题执行结果(8)把讲授数据库的教师的工龄增加1年。图3.8 第8题执行结果(9)将课程名称为“数据库”的成绩增加1分。图3.9 第9题执行结果
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表