为什么需要多表查询:
因为我们不可能把所有数据都放在一张表里
我们把不同数据存储 放在一张一张不同表 方便管理,但我们为了方便管理,把数据拆分到一张一张表去存储。
但是数据还是一个整体,数据之间是有关联关系 ,那就要把分散的数据,合并到一起进行查询
多表查询概念:
连表操作
通过连接方式,把有关系的表拼成一个整体,进行关联查询。
就是把多张表记录 合并到一张表去查询
多表查询准备 数据库 数据表
新建数据库
create database db6 charset=utf8;
use db6;
**#建表**
1create table department( 2id int, 3name varchar(20) 4); 5 6create table employee( 7id int primary key auto_increment, 8name varchar(20), 9sex enum('male','female') not null default 'male', 10age int, 11dep_id int 12);
#插入数据
1insert into department values 2(200,'技术'), 3(201,'人力资源'), 4(202,'销售'), 5(203,'运营'); 6 7insert into employee(name,sex,age,dep_id) values 8('mike','male',18,200), 9('alex','female',48,201), 10('jack','male',38,201), 11('yuanhao','female',28,202), 12('liwenzhou','male',18,200), 13('jingliyang','female',18,204) 14;
**#查看表结构和数据**
1mysql> desc department; 2+-------+-------------+------+-----+---------+-------+ 3| Field | Type | Null | Key | Default | Extra | 4+-------+-------------+------+-----+---------+-------+ 5| id | int(11) | YES | | NULL | | 6| name | varchar(20) | YES | | NULL | | 7+-------+-------------+------+-----+---------+-------+ 82 rows in set (1.30 sec) 9 10mysql> desc employee; 11+--------+-----------------------+------+-----+---------+----------------+ 12| Field | Type | Null | Key | Default | Extra | 13+--------+-----------------------+------+-----+---------+----------------+ 14| id | int(11) | NO | PRI | NULL | auto_increment | 15| name | varchar(20) | YES | | NULL | | 16| sex | enum('male','female') | NO | | male | | 17| age | int(11) | YES | | NULL | | 18| dep_id | int(11) | YES | | NULL | | 19+--------+-----------------------+------+-----+---------+----------------+ 205 rows in set (0.00 sec) 21 22mysql> select * from employee; 23+----+------------+--------+------+--------+ 24| id | name | sex | age | dep_id | 25+----+------------+--------+------+--------+ 26| 1 | mike | male | 18 | 200 | 27| 2 | alex | female | 48 | 201 | 28| 3 | jack | male | 38 | 201 | 29| 4 | yuanhao | female | 28 | 202 | 30| 5 | liwenzhou | male | 18 | 200 | 31| 6 | jingliyang | female | 18 | 204 | 32+----+------------+--------+------+--------+ 336 rows in set (0.32 sec) 34 35mysql> select * from department; 36+------+--------------+ 37| id | name | 38+------+--------------+ 39| 200 | 技术 | 40| 201 | 人力资源 | 41| 202 | 销售 | 42| 203 | 运营 | 43+------+--------------+ 444 rows in set (0.00 sec)