数据库关联查询【练习题】

数据库关联查询【练习题】
      数据库关联查询【练习题】_第1张图片
     
     关键词:
         状态:condition 
         学员:student
         专业:major
         课程:course
         成绩:result
         考勤:check_in
         宿舍:dormitory
         教师:teacher
         班级:class
  注意
      先理清逻辑,再通过逻辑创建数据库及表
      创建表:通过逻辑关系创建一表再创建多表

          因为要设置主键和外键,所以我们应该从和谁都没关系的表开始创建
      学员
        和老师 多对多
        和班级 多对一
        和专业 多对一
        和宿舍 多对一
      老师
        和学生 多对多
        和班级 多对多 多字段 now 当前任课的班级 now 1 否则 0
        和专业 多对一
      班级
        和老师 多对多
        和专业 多对一
      专业
        和课程 多对多
      课程
        和专业 多对多
      成绩
        和课程 多对一
        和学员 多对一
      考勤
        和学员 多对一

从没有多关系的表开始创建
      在这里插入图片描述
      创建宿舍
      create table dormitory(id int primary key auto_increment,name char(32));
      在这里插入图片描述
      创建专业和课程表,并搭建多对多关系
      创建课程
      create table course like dormitory;
      在这里插入图片描述
      create table major like dormitory;
      在这里插入图片描述
      create table major_course(id int primary key auto_increment,major_id int,
      course_id int,foreign key(major_id) references major(id),foreign key(course_id)
      references course(id));
      在这里插入图片描述
      创建老师和班级表,并搭建多对多关系
      create table teacher(id int primary key auto_increment,name char(32),major_id
      int,foreign key(major_id) references major(id));
      在这里插入图片描述
      create table class like teacher;
      在这里插入图片描述
      create table teacher_class(id int primary key auto_increment,teacher_id int,
      class_id int,now int,foreign key(teacher_id) references teacher(id),foreign key
      (class_id) references class(id));
      在这里插入图片描述
      创建学生表
      create table student(id int primary key auto_increment,name char(32),gender
      char(32), age int, phone char(11),room_id int,major_id int,class_id int,foreign
      key(room_id) references dormitory(id),foreign key(major_id) references major
      (id), foreign key(class_id) references class(id));
      在这里插入图片描述
      创建成绩表
      mysql> create table result(id int primary key auto_increment,student_id int,course_id int,score int,
      foreign key (student_id) references student(id),foreign key(course_id) references course(id));
      在这里插入图片描述
      创建考勤表
      mysql> create table check_in(id int primary key auto_increment,student_id int,date char(32),
      state char(32),foreign key (student_id) references student(id));
      在这里插入图片描述
      
    练习
      1、查询所有学员
      2、查询所有男生
      3、查询所有女生
      4、查询所有缺勤学员
      5、查询所有python专业的学员
      6、查询所有python专业上过python基础的学员
      7、查询所有python 0506班所有学员
      8、查询所有python 0506班所有学员python基础课成绩
      9、查询python 0506班任课老师
      10、查询边老师教过的学员
      11、查询边老师教过的班级
      12、查询小王同学python基础课程的成绩
      13、查询所有python基础课程的学员成绩
      14、查询python 0506班所有的宿舍
      15、查询python 0506班 102宿舍的所有学生的成绩
      数据库关联查询【练习题】_第2张图片
      数据库关联查询【练习题】_第3张图片
      数据库关联查询【练习题】_第4张图片
      数据库关联查询【练习题】_第5张图片
      数据库关联查询【练习题】_第6张图片
      数据库关联查询【练习题】_第7张图片

你可能感兴趣的:(数据库关联查询【练习题】)