MYSQL学习笔记21: 多表查询
多表查询
多表关系
- 
一对多(多对一)
 - 
多对多
 - 
一对一
 

一对多(多对一)关系

多对多关系
创建学生表
create table student(  
    id int auto_increment primary key comment '主键ID',  
    name varchar(10) comment '姓名',  
    no varchar(10) comment '学号'  
)   comment '学生表';  
插入数据
insert into student values  
    (null,'AAA','2000100101'),  
    (null,'BB','2000100102'),  
    (null,'CCC','2000100103'),  
    (null,'DDD','2000100104');  

创建课程表
create table course(  
    id int auto_increment primary key  comment '主键ID',  
    name varchar(10) comment '课程名称'  
)   comment '课程表';  
插入数据
insert into course values  
        (null,'java'),  
        (null,'php'),  
        (null,'mysql'),  
        (null,'hadoop');  

创建关联表(中间表)
外键,用studentID字段关联学生表的id
外键,用courseID字段关联课程表的id
create  table student_course(  
    id int auto_increment primary key comment '主键',  
    studentId int not null comment '学生id',  
    courseId int not null comment '课程id',  
    constraint fk_courseId foreign key (courseId) references course(id),  
    constraint fk_studentId foreign key (studentId) references student(id)  
)   comment '学生课程中间表(选课表)';  
插入数据
insert into student_course values  
    (null,1,1),  
    (null,1,2),  
    (null,1,3),  
    (null,2,2),  
    (null,2,3),  
    (null,3,4);  

在图中查看表关系


一对一关系
创建用户表
create  table tb_user(  
    id int auto_increment primary key comment '主键id',  
    name varchar(10) comment '姓名',  
    age int comment '年龄',  
    gender char(1) comment '1:男, 2:女',  
    phone char(11) comment '手机号'  
)   comment '用户基本信息';  
插入数据
insert into  tb_user(id,name,age,gender,phone) values  
        (null,'AA',45,'1','18800001111'),  
        (null,'BB',35,'2','18800001112'),  
        (null,'CC',55,'1','18800001113'),  
        (null,'DDD',50,'1','1880000114');

创建教育信息表
create table tb_user_edu(  
    id int auto_increment primary key  comment '主键id',  
    degree varchar(20) comment '学历',  
    major  varchar(50) comment '专业',  
    primarySchool varchar(50) comment '小学',  
    middleSchool varchar(50) comment '中学',  
    university varchar(50) comment '大学',  
    userid int unique  comment '用户id',  
    constraint fk_userid foreign key (userid) references tb_user(id)  
)   comment '用户教育信息表';  
插入数据
insert into tb_user_edu(id,degree,major,primarySchool,middleSchool,university,userid) values  
    (null,'本科','舞蹈','XXX第一小学','XXX第一中学','XXX舞蹈学院',1),  
    (null,'硕士','表演','XXX第一小学','XXX第一中学','XXX表演学院',2),  
    (null,'本科','英语','XXX第一小学','XXX第一中学','XXX英语学院',3),  
    (null,'本科','应用数学','XXX第一小学','XXX第一中学','XXX数学学院',4);
外键userid关联了主表tb_user的主键id

                    
                
                
            
        
浙公网安备 33010602011771号