前言
前面几篇 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
原创申明:以上内容都是笔者个人经验,仅供参考,如需转载,请注明出处
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于