#合併查詢//select *from…union all select *from …
#原有表
>>>
man: woman:
+-----+--------+ +-----+--------+
| mid | mname | | wid | wname |
+-----+--------+ +-----+--------+
| 1 | 東尼 | | 1 | 波多 |
| 2 | 加藤 | | 2 | 早川 |
| 3 | 山形 | | 3 | 稚名 |
| 4 | 鈴木 | +-----+--------+
+-----+--------+
select *from man union all select *from woman;
>>>
+-----+--------+
| mid | mname |
+-----+--------+
| 1 | 東尼 |
| 2 | 加藤 |
| 3 | 山形 |
| 4 | 鈴木 |
| 1 | 波多 |
| 2 | 早川 |
| 3 | 稚名 |
+-----+--------+
#內連結查詢
#先創建兩張表
create table emp(
id int primary key auto_increment,#編號
name varchar(32),#姓名
job varchar(32),#職位
mgr int,#上級編號
hiredate date, #入職時間
sal double, #薪水
comm double, #獎金
deptno int #所屬部門
);
#emp:
>>>
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(32) | YES | | NULL | |
| job | varchar(32) | YES | | NULL | |
| mgr | int(11) | YES | | NULL | |
| hiredate | date | YES | | NULL | |
| sal | double | YES | | NULL | |
| comm | double | YES | | NULL | |
| deptno | int(11) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
create table dept(
deptno int primary key auto_increment, #部門編號
dname varchar(32), #部門名稱
loc varchar(32) #部門地址
);
#dept:
>>>
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| deptno | int(11) | NO | PRI | NULL | auto_increment |
| dname | varchar(32) | YES | | NULL | |
| loc | varchar(32) | YES | | NULL | |
+--------+-------------+------+-----+---------+----------------+
#對dept 進行添加 //由於deptno 為自增長所以在此不做添加
insert into dept (dname,loc) values ('人力部','北京');
insert into dept (dname,loc) values ('市場部','上海');
insert into dept (dname,loc) values ('銷售部','廣州');
>>>
+--------+-----------+--------+
| deptno | dname | loc |
+--------+-----------+--------+
| 1 | 人力部 | 北京 |
| 2 | 市場部 | 上海 |
| 3 | 銷售部 | 廣州 |
+--------+-----------+--------+
#對emp 進行添加 //由於id 為自增長所以在此不做添加
insert into emp (name,job,hiredate,sal,comm,deptno) values ('伊澤','經理','2011-06-17',52000,2000,1);
#mgr記得添加
insert into emp (name,job,mgr,hiredate,sal,comm,deptno) values ('蔡八','實習生',3,'2018-06-2',11000,0,3);
#依序添加後
>>>
+----+--------+-----------+------+------------+-------+------+--------+
| id | name | job | mgr | hiredate | sal | comm | deptno |
+----+--------+-----------+------+------------+-------+------+--------+
| 1 | 伊澤 | 經理 | NULL | 2011-06-17 | 52000 | 2000 | 1 |
| 2 | 大澤 | 副理 | 1 | 2011-06-17 | 42000 | 1000 | 1 |
| 3 | 吉澤 | 職員 | 2 | 2011-06-17 | 22000 | 100 | 1 |
| 4 | 未央 | 職員 | 2 | 2013-06-02 | 21000 | 50 | 2 |
| 5 | 蔡八 | 實習生 | 3 | 2018-06-02 | 11000 | 0 | 3 |
+----+--------+-----------+------+------------+-------+------+--------+
#對emp表與dept表連結此時會依據兩張表中所擁有的deptno類進行匹配//select *from...inner join...
select *from emp inner join dept;
>>>
#產生數據冗餘顯示列相加 行相乘 (8+3,5*3)11,15
#使用連接條件解決問題
select *from emp inner join dept on emp.deptno=dept.deptno;
>>>