设置主外键关系的第一种方案:图形化的操作
首先创建员工表“employee”

在表里填信息:

再创建部门表“dept”

再删除表“employee”里面的三个字段depeNO、deptName、deptLeader ,并保存


外键:就是把一张表的主键拿到另一张表中作为一个普通的字段,通过外键可以把两张表连接起来
在表“employee”里加入字段“deptNo”

填入外键信息:

所以在这里,就是把表“dept”里的“id”作为主键拿到表“employee”中作为外键“deptNo”
在表“depth”里面填入信息:

再填好表“employee”中字段“deptNo”的信息

设置主外键关系的第二种方案:写sql语句
先删除表“employee”和“dept”。
写sql语句创建表的时候,应该先创建部门表“dept”,再创建员工表“employee”,因为员工表“employee”的“deptNo”需要部门表“dept”的“id”的支持。
sql语法:constraint 约束名 foreign key(列名) references 对方表(列名)
创建部门表“dept”的sql语句:
create table dept(
id int(10) not null primary key auto_increment,
deptName varchar(50),
deptLeader varchar(50)
);
创建员工表“employee”的sql语句:
create table emp(
id int(10) not null primary key auto_increment,
name varchar(50),
salary decimal(10,2),
deptNo int(10),
constraint foreign_key_deptNo foreign key(deptNo) REFERENCES dept(id)
);

然后在表“dept”和“emp”里写入信息


现在主表和副表建立完了,现在看如何做多表关联查询。
方法一:子查询
方法二:关联查询(下面的博客会写这部分内容)
方法一:子查询
第一题:通过部门的名称查询出该部门所有的员工信息,比如查询明教的员工信息
两步走,
第一步:查询明教的部门信息,
select id from dept where deptName = '明教'
第二步:根据id查询员工信息
select * from emp where deptNo = 3
结合这两步可以得出:
select * from emp where deptNo = (select id from dept where deptName = '明教')

第二题:查询出各个部门的平均工资
select avg(salary) from emp group by deptNo

第三题:把部门和员工放在一起,查询出各个部门的平均工资
select dept.deptName,avg(emp.salary) from emp,dept where emp.deptNo = dept.id group by dept.deptName
