1、将所有的数据都放在一张表内产生的弊端:
1.表的组织结构不清晰
2.浪费存储空间
3.可扩展性极差(修改某一个部门的信息的时候~)
2、如何查找表与表之间的关系
书籍和作者
一本书可不可以被多个作者写 可以
一个作者可不可以写多本书 可以
多对多关系
书籍和出版社
一本书可不可以被多个出版社出版 不可以
一个出版社可不可以出版多本书 可以
一对多关系
作者与作者详情表
两个不可以就是
一对一
① 一对多关系:
![]()
外键(foreign key)
1.必选要先建被关联表
create table dep(
id int primary key auto_increment,
dep_name char(16),
dep_desc char(64)
);
create table emp(
id int primary key auto_increment,
name char(16),
gender enum('male','female','others') not null default 'male',
# default后面的默认值空格直接书写即可
dep_id int,
foreign key(dep_id) references dep(id)
);
2.插入数据
2.新增数据的时候,要先增被关联表中的数据
insert into dep(dep_name,dep_desc) values
('外交部','形象代言人'),
('教学部','教书育人'),
('技术部','技术能力有限部门');
insert into emp(
name,gender,dep_id) values
('jason','male',1),
('egon','male',2),
('kevin','male',2),
('tank','male',2),
('jerry','female',3);
3.修改emp表中的dep_id字段
update emp set dep_id=100 where id=1;
update dep set id=100 where id=1;
delete from dep where id=2;
delete from emp where id>1 and id<5;
delete from dep where id=2;
一对多