这里是文章模块栏目内容页
MYSQL表关联建表语句(mysql中数据表的关联关系有哪三种?)

导读:在MYSQL数据库中,表关联是非常重要的概念。通过建立表之间的关联,可以实现多个表之间的数据交互和查询。本文将为大家介绍MYSQL表关联的建表语句,希望能够对大家有所帮助。

一、创建主表

CREATE TABLE `user` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',

`username` varchar(50) NOT NULL COMMENT '用户名',

`password` varchar(50) NOT NULL COMMENT '密码',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

二、创建从表

CREATE TABLE `order` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '订单ID',

`user_id` int(11) NOT NULL COMMENT '用户ID',

`order_no` varchar(50) NOT NULL COMMENT '订单编号',

PRIMARY KEY (`id`),

KEY `user_id` (`user_id`),

CONSTRAINT `order_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单表';

三、创建中间表

CREATE TABLE `user_role` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',

`role_id` int(11) NOT NULL COMMENT '角色ID',

KEY `role_id` (`role_id`),

CONSTRAINT `user_role_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT `user_role_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户角色关联表';

四、创建关联表

CREATE TABLE `role` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色ID',

`name` varchar(50) NOT NULL COMMENT '角色名称',

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色表';

总结:通过以上建表语句,我们可以实现多个表之间的关联。在MYSQL数据库中,表关联是非常重要的概念,它能够为我们提供更加高效和便捷的数据查询方式。希望本文能够对大家有所帮助。