使用Navicat多对多关系SQL语句在MySQL中实现

 

/**

*@author blovedr

*功能:模拟两张表关系及添加两个主键和外键详细过程

*日期: 2018年7月26日   18:45

*注释: 学习数据库MySQL的点点记录, 谢谢网上各位大神分享经验与资料, 欢迎各位大神批评指导与交流。

*/

 

 

在Navicat 新建一个数据库cc, 在cc新建“查询中”输入下列sql语句:

 

 

第一张表---班级表 (ok)

create table banji

(

    banji_id int primary key,

    banji_num int not null,

    banji_name nvarchar(150)

)

 

 

第二张表---教师表 (ok)

create table jiaoshi

(

    jiaoshi_id int primary key,

    jiaoshi_name nvarchar(150)

)

 

 

第三张表---用来模拟班级和教师的关系1  mapping---映射   ---(ok此时没有外键)

create table banji_jiaoshi_mapping

(

    banji_id int,

    jiaoshi_id int,

    kecheng nvarchar(60),

    constraint pk_banji_id_jiaoshi_id primary key (banji_id,  jiaoshi_id)

)

 

drop table banji_jiaoshi_mapping;

 

 

 

第三张表---用来模拟班级和教师的关系2   mapping---映射   ---(error此时sql语句使用NavicatMySQL运行报错)

create table banji_jiaoshi_mapping2

(

    banji_id int constraint fk_banji_id foreign key references banji (banji_id),

    jiaoshi_id int foreign key references jiaoshi (jiaoshi_id),

    kecheng nvarchar(60),

    constraint pk_banji_id_jiaoshi_id primary key (banji_id,  jiaoshi_id)

)

 

 

第三张表---用来模拟班级和教师的关系3   mapping---映射  ---(ok此时有两个主键和外键)

create table banji_jiaoshi_mapping3

(

    banji_id int,

    jiaoshi_id int,

    constraint fk_banji_id foreign key (banji_id) references banji (banji_id),

    constraint fk_jiaoshi_id foreign key (jiaoshi_id) references jiaoshi (jiaoshi_id),

    kecheng nvarchar(60),

    constraint pk_banji_id_jiaoshi_id primary key (banji_id,  jiaoshi_id, kecheng)

)

 

---删除表banji_jiaoshi_mapping3的sql语句

drop table banji_jiaoshi_mapping3;

 

posted @ 2018-07-26 19:08  blovedr  阅读(460)  评论(0编辑  收藏  举报