主键和外键举例_mysql 基础篇之主键和外键

前言

前面几篇 blog,主要简单介绍了在 MySQL 数据库中如何查看某张表,以及对表做一些增删改查的操作,本篇 blog 主要介绍一张表中如何设置唯一标识,以及两张表之间如何关联,即我们日常听说的主键和外键

主键

含义:关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键

举例说明:

学生表(学号,姓名,性别,班级)

其中每个学生的学号是唯一的,学号就是一个主键

创建两张表,并插入数据

1 员工表emp(student)

字段如下:

员工号(sid)

姓名(sname)

年龄(sage)

工资(sal)

部门号(deptno)

2 部门表(department)

1 部门号(deptno)

2 部门地址(address)

3 部门电话(detel)

可能遇到的问题

在给部门表插入数据的时候,address 字段插入的是中文,但最后显示为?

解决方法:在创建部门表的时候指定编码

create table department

(deptno int,address varchar(100),detel char(20)

)DEFAULT CHARSET=utf8;

添加主键约束

alter table emp

add constraint pk_emp

primary key(sid);

alter table department

add constraint pk_department

primary key(deptno);

查看主键

语句:desc 表名;

外键

含义:外键用于与另一张表的关联,是能确定另一张表记录的字段,用于保持数据的一致性

举例说明

员工表emp(员工号,姓名,性别,薪水,部门号) (主键员工号,外键部门号)

部门表department(部门号,部门地址,部门电话) (主键部门号)

添加外键约束

alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);

添加外键约束实例

小插曲:笔者昨日搞好久都无法创建外键,当时也没百度,今天才发现原来是自己的外表 department 没有插入数据。。。。

alter table emp add constraint FK_ID foreign key(deptno) REFERENCES department(deptno);

查看外键

输入命令:show create table 表名;

删除主键

命令:alter table emp drop primary key;

删除外键

命令:alter table emp drop foreign key deptno;

注意:删除外键 deptno 后,才能修改主表 emp 的数据

以上,over

原创申明:以上内容都是笔者个人经验,仅供参考,如需转载,请注明出处

你可能感兴趣的:(主键和外键举例)