mysql 联合主键和复合主键的区别
2018-03-20 11:55
696 查看
联合主键:
当两个数据表形成的是多对多的关系,那么需要通过两个数据表的主键来组成联合主键,就可以确定每个数据表的其中一条记录了例:
学生表:student
create table student( id mediumint auto_increment comment '主键id', name varchar(30) comment '姓名', age smallint comment '年龄', primary key(id) ) engine = myisam, charset = utf8, comment = '学生'
课程表:course
create table course( id mediumint auto_increment comment '主键id', name varchar(30) comment '课程名称', primary key(id) ) engine = myisam, charset = utf8, comment = '课程'
学生课程表:stu_cour
create table IF NOT EXISTS stu_cour( id mediumint auto_increment comment '主键id', stu_id mediumint comment '学生表id', cour_id mediumint comment '课程表id', primary key(id) ) engine = myisam, charset = utf8, comment = '学生课程表'
此时,就可以通过学生课程表的id来获取对应的学生表和课程表的一条记录信息,此时,
学生课程表的id就是联合主键的结果
复合主键:
在一个数据表中通过多个字段作为主键来确定一条记录,那么,多个字段组成的就是复合主键例:
create table student( name varchar(30) comment '姓名', age smallint comment '年龄', sex enum('男','女') comment '性别', primary key(name,age) ) engine = myisam, charset = utf8, comment = '学生'
分析:
以上信息如果用姓名或年龄来确定都可能出现同名和同龄的情况,但是加入把他们都设置成主键的话,意味着既要同龄也要同名,这张情况就很少了,所以以这两个字段作为复合主键来使用。
相关文章推荐
- 联合主键和复合主键区别
- 联合主键和复合主键区别
- mysql中,索引,主键,唯一索引,联合索引的区别
- 联合主键和复合主键区别
- 简单描述mysql中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两个方面)(新浪)
- 简单描述mysql中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响。从读写两方面分析
- Mysql索引介绍及常见索引(主键索引、唯一索引、普通索引、全文索引、组合索引)的区别
- MySQL如何创建主键,外键和复合主键
- mysql设置联合主键
- Mysql复合主键中自增长字段
- MySQL中myisam和innodb的主键索引有什么区别?
- MySQL中,主键与普通索引的区别是什么
- MySQL 主键与索引的联系与区别分析
- MySQL 创建主键,外键和复合主键的语句
- mysql中主键和唯一键的区别
- 13、复合主键映射(联合主键)
- MySQL 创建主键,外键和复合主键的语句
- Mysql索引介绍及常见索引(主键索引、唯一索引、普通索引、全文索引、组合索引)的区别
- MySQL 主键与索引的联系与区别分析
- Mysql索引介绍及常见索引(主键索引、唯一索引、普通索引、全文索引、组合索引)的区别