navicat软件

 

一、navicat 软件的用法

       navicat 支持多个数据库服务端的连接

      模型

      转存sql文件,可以给别人的数据库

      读取sql文件,读取别人的数据库

 

    -- 查询所有的课程的名称以及对应的任课老师的姓名

   -- SELECT course.cname, teacher.tname FROM course INNER JOIN teacher ON course.teacher_id = teacher.tid;

   -- 查询平均成绩大于80分的同学的姓名和平均成绩

SELECT student.sname, t1.av FROM student INNER JOIN ( SELECT score.student_id, avg( score.num ) AS av FROM score GROUP BY score.student_id HAVING avg( score.num ) > 80 ) AS t1 ON student.sid = t1.student_id;

- 查询没有同时报李平老师课的学生姓名 -- 1、查李平老师教授的课程id -- 2、去score表中查询报了李平老师课程的学生id -- 3、再去学生表中查学生的姓名

SELECT * FROM student WHERE student.sid NOT IN ( SELECT DISTINCT score.student_id FROM score WHERE score.course_id IN ( SELECT course.cid FROM course INNER JOIN teacher ON course.teacher_id = teacher.tid WHERE teacher.tname = '李平老师' )

--查询没有同时选修物理课程和体育课题的学生姓名(只能在两者间选一门) -- 1、先查询物理以及体育的id号 #2、先拿到所有报了物理、体育的学生的id

SELECT student.sname FROM student WHERE student.sid IN ( SELECT score.student_id FROM score WHERE score.course_id IN ( SELECT course.cid FROM course WHERE course.cname IN ( '物理', '体育' ) ) GROUP BY score.student_id HAVING COUNT( score.course_id ) = 1 );

-- 查询挂科超过两门(包括两门)的学生姓名和班级 # 1、先拿所有分数小于60的

SELECT student.sname, class.caption FROM student INNER JOIN class ON student.class_id = class.cid WHERE student.sid IN ( SELECT score.student_id FROM score WHERE num < 60 GROUP BY score.student_id HAVING count( score.course_id ) >= 2 );

 

 

 

 

 

 

 

 

     -- 或者 #  表示注释

posted @ 2019-12-16 19:06  薛定谔的猫66  阅读(380)  评论(0)    收藏  举报