MySQL创建关联表的方法

数据库 MySQL
MySQL创建关联表可以理解为是两个表之间有个外键关系,下面就为您详细介绍MySQL创建关联表的方法,供您参考学习。

MySQL创建关联表是非常基础的知识,下面就为您举例说明MySQL创建关联表的方法,如果您对MySQL创建关联表方面感兴趣的话,不妨一看。

MySQL创建关联表可以理解为是两个表之间有个外键关系,但这两个表必须满足三个条件
1.两个表必须是InnoDB数据引擎
2.使用在外键关系的域必须为索引型(Index)
3.使用在外键关系的域必须与数据类型相似
下面分别建两个表来说明一下:

Create TABLE IF NOT EXISTS `books` (   
  `book_id` smallint(6) NOT NULL auto_increment COMMENT '书籍编号',   
  `book_name` char(20) NOT NULL COMMENT '书名',   
  `book_pic` varchar(200) NOT NULL COMMENT '封面',   
  `book_author` char(20) NOT NULL COMMENT '作者',   
  `book_pub` char(40) NOT NULL COMMENT '出版社',   
  `book_sort` char(6) NOT NULL COMMENT '分类',   
  `book_owner` char(6) default NULL COMMENT '所有者',   
  `book_borrower` char(7) default NULL COMMENT '借阅者',   
  `book_borrower_time` date default NULL COMMENT '借阅时间',   
  PRIMARY KEY  (`book_id`),   
  INDEX (book_borrower))   
ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci AUTO_INCREMENT=5 ;  
 
Create TABLE IF NOT EXISTS `parts` (   
  `part_id` smallint(6) NOT NULL COMMENT '成员编号',   
  `part_name` varchar(6) NOT NULL COMMENT '成员名',   
  `part_mail` varchar(50) NOT NULL COMMENT '邮箱',   
  `part_pass` varchar(20) NOT NULL COMMENT '密码',   
  PRIMARY KEY  (`part_id`),   
FOREIGN KEY(part_name) REFERENCES books(book_borrower) on delete cascade on update cascade)   
ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;  
 分析一下books表和parts表,创建他们的关联,我用了books表的book_borrower字段 创建表时索引并选择InnoDB为表引擎。而parts表即part_name字段为外键,关联到books表的book_borrower字段.注意两 个字段分别是char和varchar都是字符串类型。on delete cascade意思为当books表有相关记录删除时,那parts表也会跟着删除相关联的记录. 理论上parts表的part_name字段也应该要创建索引才对,但实验证创建关联后自动索引了。

 

 

 

【编辑推荐】

几个常见的MySQL性能测试工具

MySQL随机查询的优化实例

MySQL排序使用情况

MySQL查询缓存变量

QL慢查询的启用方法

责任编辑:段燃 来源: 互联网
相关推荐

2010-11-23 11:36:15

MySQL创建关联表

2024-04-01 08:00:00

MySQL关联设计数据库

2010-06-12 10:10:55

2010-11-24 10:05:20

mysql创建临时表

2010-06-03 14:08:56

Hadoop创建Hba

2010-11-23 09:57:36

MYSQL表信息

2010-10-15 10:58:13

Mysql清空表

2010-11-24 09:37:01

mysql快速建表

2010-09-09 15:23:16

SQL更新数据

2010-09-30 14:48:26

DB2查询

2010-10-14 13:55:58

MySQL创建函数

2010-11-23 15:33:17

MySQL分表处理

2010-11-23 09:13:47

mysql修改表结构

2010-10-15 11:05:31

MYSQL查询结果

2010-10-14 14:43:45

MySQL联表查询

2010-09-30 10:04:06

DB2创建表空间

2009-09-25 15:34:42

Hibernate关联

2010-10-14 13:45:44

MySQL函数不能创建

2010-11-23 16:21:07

MySQL大表备份

2010-06-10 14:14:18

个MySQL表索引
点赞
收藏

51CTO技术栈公众号