From 0f9d5d827c426c8c0282e2bcdcb7306bbced53e5 Mon Sep 17 00:00:00 2001
From: tu <2843180578@qq.com>
Date: Wed, 29 May 2024 10:18:35 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=20=E7=AC=AC=E4=B8=89?=
=?UTF-8?q?=E7=AB=A0=EF=BC=9A=E6=95=B0=E6=8D=AE=E5=BA=93=E6=9F=A5=E8=AF=A2?=
=?UTF-8?q?.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
第三章:数据库查询.md | 975 ------------------------------------------
1 file changed, 975 deletions(-)
delete mode 100644 第三章:数据库查询.md
diff --git a/第三章:数据库查询.md b/第三章:数据库查询.md
deleted file mode 100644
index d8b834a..0000000
--- a/第三章:数据库查询.md
+++ /dev/null
@@ -1,975 +0,0 @@
-
数据库查询
-
-**作者:行癫(盗版必究)**
-
-------
-
-## 一:基本查询
-
-#### 1.简介
-
- 单表查询
-
- 简单查询
-
- 通过条件查询
-
- 查询排序
-
- 限制查询记录数
-
- 使用集合函数查询
-
- 分组查询
-
- 使用正则表达式查询
-
-#### 2.案例
-
-创建案例所需表:company.employee5
-
-```shell
- 雇员编号 id int
- 雇员姓名 name varchar(30)
- 雇员性别 sex enum
- 雇用时期 hire_date date
- 职位 post varchar(50)
- 职位描述 job_description varchar(100)
- 薪水 salary double(15,2)
- 办公室 office int
- 部门编号 dep_id int
-```
-
-```shell
-MySQL [(none)]> CREATE TABLE company.employee5(
- id int primary key AUTO_INCREMENT not null,
- name varchar(30) not null,
- sex enum('male','female') default 'male' not null,
- hire_date date not null,
- post varchar(50) not null,
- job_description varchar(100),
- salary double(15,2) not null,
- office int,
- dep_id int
- );
-```
-
-插入模拟数据:
-
-```shell
-MySQL [(none)]> insert into company.employee5(name,sex,hire_date,post,job_description,salary,office,dep_id) values
- ('jack','male','20180202','instructor','teach',5000,501,100),
- ('tom','male','20180203','instructor','teach',5500,501,100),
- ('robin','male','20180202','instructor','teach',8000,501,100),
- ('alice','female','20180202','instructor','teach',7200,501,100),
- ('','male','20180202','hr','hrcc',600,502,101),
- ('harry','male','20180202','hr',NULL,6000,502,101),
- ('emma','female','20180206','sale','salecc',20000,503,102),
- ('christine','female','20180205','sale','salecc',2200,503,102),
- ('zhuzhu','male','20180205','sale',NULL,2200,503,102),
- ('gougou','male','20180205','sale','',2200,503,102);
-```
-
-语法格式:
-
- select 字段名称,字段名称2...... from 表名 [条件]
-
-##### a.简单查询
-
-```shell
-MySQL [company]> select * from employee5;
-+----+-----------+--------+------------+------------+-----------------+----------+--------+--------+
-| id | name | sex | hire_date | post | job_description | salary | office | dep_id |
-+----+-----------+--------+------------+------------+-----------------+----------+--------+--------+
-| 1 | jack | male | 2018-02-02 | instructor | teach | 5000.00 | 501 | 100 |
-| 2 | tom | male | 2018-02-03 | instructor | teach | 5500.00 | 501 | 100 |
-| 3 | robin | male | 2018-02-02 | instructor | teach | 8000.00 | 501 | 100 |
-| 4 | alice | female | 2018-02-02 | instructor | teach | 7200.00 | 501 | 100 |
-| 5 | | male | 2018-02-02 | hr | hrcc | 600.00 | 502 | 101 |
-| 6 | harry | male | 2018-02-02 | hr | NULL | 6000.00 | 502 | 101 |
-| 7 | emma | female | 2018-02-06 | sale | salecc | 20000.00 | 503 | 102 |
-| 8 | christine | female | 2018-02-05 | sale | salecc | 2200.00 | 503 | 102 |
-| 9 | zhuzhu | male | 2018-02-05 | sale | NULL | 2200.00 | 503 | 102 |
-| 10 | gougou | male | 2018-02-05 | sale | | 2200.00 | 503 | 102 |
-+----+-----------+--------+------------+------------+-----------------+----------+--------+--------+
-10 rows in set (0.00 sec)
-
-MySQL [company]> select name, salary, dep_id from employee5 where id <=5;
-+-------+---------+--------+
-| name | salary | dep_id |
-+-------+---------+--------+
-| jack | 5000.00 | 100 |
-| tom | 5500.00 | 100 |
-| robin | 8000.00 | 100 |
-| alice | 7200.00 | 100 |
-| | 600.00 | 101 |
-+-------+---------+--------+
-5 rows in set (0.00 sec)
-```
-
-##### b.避免重复
-
- 不能部分使用DISTINCT,通常仅用于某一字段
-
-```shell
-MySQL [company]> SELECT post FROM employee5;
-+------------+
-| post |
-+------------+
-| instructor |
-| instructor |
-| instructor |
-| instructor |
-| hr |
-| hr |
-| sale |
-| sale |
-| sale |
-| sale |
-+------------+
-10 rows in set (0.00 sec)
-
-MySQL [company]> SELECT distinct post FROM employee5;
-+------------+
-| post |
-+------------+
-| instructor |
-| hr |
-| sale |
-+------------+
-3 rows in set (0.00 sec)
-```
-
-##### c.四则运算查询
-
-```shell
-MySQL [company]> SELECT name, salary, salary*14 FROM employee5;
-+-----------+----------+-----------+
-| name | salary | salary*14 |
-+-----------+----------+-----------+
-| jack | 5000.00 | 70000.00 |
-| tom | 5500.00 | 77000.00 |
-| robin | 8000.00 | 112000.00 |
-| alice | 7200.00 | 100800.00 |
-| | 600.00 | 8400.00 |
-| harry | 6000.00 | 84000.00 |
-| emma | 20000.00 | 280000.00 |
-| christine | 2200.00 | 30800.00 |
-| zhuzhu | 2200.00 | 30800.00 |
-| gougou | 2200.00 | 30800.00 |
-+-----------+----------+-----------+
-10 rows in set (0.01 sec)
-
-MySQL [company]> SELECT name, salary, salary*14 AS Annual_salary FROM employee5;
-+-----------+----------+---------------+
-| name | salary | Annual_salary |
-+-----------+----------+---------------+
-| jack | 5000.00 | 70000.00 |
-| tom | 5500.00 | 77000.00 |
-| robin | 8000.00 | 112000.00 |
-| alice | 7200.00 | 100800.00 |
-| | 600.00 | 8400.00 |
-| harry | 6000.00 | 84000.00 |
-| emma | 20000.00 | 280000.00 |
-| christine | 2200.00 | 30800.00 |
-| zhuzhu | 2200.00 | 30800.00 |
-| gougou | 2200.00 | 30800.00 |
-+-----------+----------+---------------+
-10 rows in set (0.00 sec)
-
-MySQL [company]> SELECT name, salary, salary*14 Annual_salary FROM employee5;
-+-----------+----------+---------------+
-| name | salary | Annual_salary |
-+-----------+----------+---------------+
-| jack | 5000.00 | 70000.00 |
-| tom | 5500.00 | 77000.00 |
-| robin | 8000.00 | 112000.00 |
-| alice | 7200.00 | 100800.00 |
-| | 600.00 | 8400.00 |
-| harry | 6000.00 | 84000.00 |
-| emma | 20000.00 | 280000.00 |
-| christine | 2200.00 | 30800.00 |
-| zhuzhu | 2200.00 | 30800.00 |
-| gougou | 2200.00 | 30800.00 |
-+-----------+----------+---------------+
-10 rows in set (0.00 sec)
-```
-
-##### d.定义显示格式
-
- CONCAT() 函数用于连接字符串
-
-```shell
-MySQL [company]> SELECT concat(name, 's annual salary: ', salary*14) AS Annual_salary FROM employee5;
-+------------------------------------+
-| Annual_salary |
-+------------------------------------+
-| jacks annual salary: 70000.00 |
-| toms annual salary: 77000.00 |
-| robins annual salary: 112000.00 |
-| alices annual salary: 100800.00 |
-| s annual salary: 8400.00 |
-| harrys annual salary: 84000.00 |
-| emmas annual salary: 280000.00 |
-| christines annual salary: 30800.00 |
-| zhuzhus annual salary: 30800.00 |
-| gougous annual salary: 30800.00 |
-+------------------------------------+
-10 rows in set (0.00 sec)
-```
-
-##### e.单条件查询
-
-```shell
-MySQL [company]> SELECT name,post FROM employee5 WHERE post='hr';
-+-------+------+
-| name | post |
-+-------+------+
-| | hr |
-| harry | hr |
-+-------+------+
-2 rows in set (0.00 sec)
-```
-
-##### f.多条件查询
-
-```shell
-MySQL [company]> SELECT name,salary FROM employee5 WHERE post='hr' AND salary>10000;
-Empty set (0.00 sec)
-
-MySQL [company]> select * from employee5 where salary>5000 and salary<10000 or dep_id=102;
-+----+-----------+--------+------------+------------+-----------------+----------+--------+--------+
-| id | name | sex | hire_date | post | job_description | salary | office | dep_id |
-+----+-----------+--------+------------+------------+-----------------+----------+--------+--------+
-| 2 | tom | male | 2018-02-03 | instructor | teach | 5500.00 | 501 | 100 |
-| 3 | robin | male | 2018-02-02 | instructor | teach | 8000.00 | 501 | 100 |
-| 4 | alice | female | 2018-02-02 | instructor | teach | 7200.00 | 501 | 100 |
-| 6 | harry | male | 2018-02-02 | hr | NULL | 6000.00 | 502 | 101 |
-| 7 | emma | female | 2018-02-06 | sale | salecc | 20000.00 | 503 | 102 |
-| 8 | christine | female | 2018-02-05 | sale | salecc | 2200.00 | 503 | 102 |
-| 9 | zhuzhu | male | 2018-02-05 | sale | NULL | 2200.00 | 503 | 102 |
-| 10 | gougou | male | 2018-02-05 | sale | | 2200.00 | 503 | 102 |
-+----+-----------+--------+------------+------------+-----------------+----------+--------+--------+
-8 rows in set (0.00 sec)
-```
-
-##### g.关键字
-
- BETWEEN AND
-
-```shell
-MySQL [company]> SELECT name,salary FROM employee5 WHERE salary BETWEEN 5000 AND 15000;
-+-------+---------+
-| name | salary |
-+-------+---------+
-| jack | 5000.00 |
-| tom | 5500.00 |
-| robin | 8000.00 |
-| alice | 7200.00 |
-| harry | 6000.00 |
-+-------+---------+
-5 rows in set (0.00 sec)
-
-MySQL [company]> SELECT name,salary FROM employee5 WHERE salary NOT BETWEEN 5000 AND 15000;
-+-----------+----------+
-| name | salary |
-+-----------+----------+
-| | 600.00 |
-| emma | 20000.00 |
-| christine | 2200.00 |
-| zhuzhu | 2200.00 |
-| gougou | 2200.00 |
-+-----------+----------+
-5 rows in set (0.00 sec)
-```
-
- IS NULL
-
-```shell
-MySQL [company]> SELECT name,job_description FROM employee5 WHERE job_description IS NULL;
-+--------+-----------------+
-| name | job_description |
-+--------+-----------------+
-| harry | NULL |
-| zhuzhu | NULL |
-+--------+-----------------+
-2 rows in set (0.00 sec)
-
-MySQL [company]> SELECT name,job_description FROM employee5 WHERE job_description IS NOT NULL;
-+-----------+-----------------+
-| name | job_description |
-+-----------+-----------------+
-| jack | teach |
-| tom | teach |
-| robin | teach |
-| alice | teach |
-| | hrcc |
-| emma | salecc |
-| christine | salecc |
-| gougou | |
-+-----------+-----------------+
-8 rows in set (0.00 sec)
-
-MySQL [company]> SELECT name,job_description FROM employee5 WHERE job_description='';
-+--------+-----------------+
-| name | job_description |
-+--------+-----------------+
-| gougou | |
-+--------+-----------------+
-1 row in set (0.00 sec)
-```
-
-注意:(NULL说明)
-
- 等价于没有任何值、是未知数
-
- NULL与0、空字符串、空格都不同,NULL没有分配存储空间
-
- 对空值做加、减、乘、除等运算操作,结果仍为空
-
- 比较时使用关键字用“is null”和“is not null”
-
- 排序时比其他数据都小(索引默认是降序排列,小→大),所以NULL值总是排在最前
-
-IN集合查询
-
-```shell
-MySQL [company]> SELECT name, salary FROM employee5 WHERE salary=4000 OR salary=5000 OR salary=6000 OR salary=9000 ;
-+-------+---------+
-| name | salary |
-+-------+---------+
-| jack | 5000.00 |
-| harry | 6000.00 |
-+-------+---------+
-2 rows in set (0.00 sec)
-
-MySQL [company]> SELECT name, salary FROM employee5 WHERE salary IN (4000,5000,6000,9000) ;
-+-------+---------+
-| name | salary |
-+-------+---------+
-| jack | 5000.00 |
-| harry | 6000.00 |
-+-------+---------+
-2 rows in set (0.00 sec)
-
-MySQL [company]> SELECT name, salary FROM employee5 WHERE salary NOT IN (4000,5000,6000,9000) ;
-+-----------+----------+
-| name | salary |
-+-----------+----------+
-| tom | 5500.00 |
-| robin | 8000.00 |
-| alice | 7200.00 |
-| | 600.00 |
-| emma | 20000.00 |
-| christine | 2200.00 |
-| zhuzhu | 2200.00 |
-| gougou | 2200.00 |
-+-----------+----------+
-8 rows in set (0.01 sec)
-```
-
-##### h.模糊查询
-
- 关键字LIKE
-
- 通配符%:所有字符
-
- 通配符_: 一个字符
-
-```shell
-MySQL [company]> SELECT * FROM employee5 WHERE name LIKE 'al%';
-+----+-------+--------+------------+------------+-----------------+---------+--------+--------+
-| id | name | sex | hire_date | post | job_description | salary | office | dep_id |
-+----+-------+--------+------------+------------+-----------------+---------+--------+--------+
-| 4 | alice | female | 2018-02-02 | instructor | teach | 7200.00 | 501 | 100 |
-+----+-------+--------+------------+------------+-----------------+---------+--------+--------+
-1 row in set (0.00 sec)
-
-MySQL [company]> SELECT * FROM employee5 WHERE name LIKE 'al___';
-+----+-------+--------+------------+------------+-----------------+---------+--------+--------+
-| id | name | sex | hire_date | post | job_description | salary | office | dep_id |
-+----+-------+--------+------------+------------+-----------------+---------+--------+--------+
-| 4 | alice | female | 2018-02-02 | instructor | teach | 7200.00 | 501 | 100 |
-+----+-------+--------+------------+------------+-----------------+---------+--------+--------+
-1 row in set (0.00 sec)
-```
-
-##### i.排序查询
-
-```shell
-MySQL [company]> select name,salary from employee5 order by salary;
-+-----------+----------+
-| name | salary |
-+-----------+----------+
-| | 600.00 |
-| christine | 2200.00 |
-| zhuzhu | 2200.00 |
-| gougou | 2200.00 |
-| jack | 5000.00 |
-| tom | 5500.00 |
-| harry | 6000.00 |
-| alice | 7200.00 |
-| robin | 8000.00 |
-| emma | 20000.00 |
-+-----------+----------+
-10 rows in set (0.01 sec)
-
-MySQL [company]> select name,salary from employee5 order by salary desc;
-+-----------+----------+
-| name | salary |
-+-----------+----------+
-| emma | 20000.00 |
-| robin | 8000.00 |
-| alice | 7200.00 |
-| harry | 6000.00 |
-| tom | 5500.00 |
-| jack | 5000.00 |
-| christine | 2200.00 |
-| zhuzhu | 2200.00 |
-| gougou | 2200.00 |
-| | 600.00 |
-+-----------+----------+
-
-MySQL [company]> select name,salary from employee5 order by salary desc limit 3; //控制显示前3行
-+-------+----------+
-| name | salary |
-+-------+----------+
-| emma | 20000.00 |
-| robin | 8000.00 |
-| alice | 7200.00 |
-+-------+----------+
-3 rows in set (0.00 sec)
-
-MySQL [company]> select name,salary from employee5 order by salary desc limit 1,3; //从序号1开始显示三行的内容
-+-------+---------+
-| name | salary |
-+-------+---------+
-| robin | 8000.00 |
-| alice | 7200.00 |
-| harry | 6000.00 |
-+-------+---------+
-3 rows in set (0.00 sec)
-```
-
-注意:
-
- ascending 美音 /ə'sɛndɪŋ/ 升序
-
- descending 美音 /dɪ'sɛndɪŋ/ 降序
-
-##### j.集合函数查询
-
- count:可以查看共有多少条记录
-
-```shell
-MySQL [company]> select count(*) from employee5;
-+----------+
-| count(*) |
-+----------+
-| 10 |
-+----------+
-1 row in set (0.00 sec)
-
-MySQL [company]> select count(name) from employee5;
-+-------------+
-| count(name) |
-+-------------+
-| 10 |
-+-------------+
-1 row in set (0.00 sec)
-
-```
-
- max:查看最大值
-
-```shell
-MySQL [company]> select max(salary) from employee5;
-+-------------+
-| max(salary) |
-+-------------+
-| 20000.00 |
-+-------------+
-1 row in set (0.00 sec)
-```
-
- min:查看最小值
-
-```shell
-MySQL [company]> select min(salary) from employee5;
-+-------------+
-| min(salary) |
-+-------------+
-| 600.00 |
-+-------------+
-1 row in set (0.00 sec)
-```
-
- avg:查看平均值
-
-```shell
-MySQL [company]> select avg(salary) from employee5;
-+-------------+
-| avg(salary) |
-+-------------+
-| 5890.000000 |
-+-------------+
-1 row in set (0.00 sec)
-```
-
- sum:求和
-
- sale这个部门的总工资
-
-```shell
-MySQL [company]> select concat("Total Department Wages:",sum(salary)) from employee5 where post='sale';
-+-------------------------------------------------+
-| concat("Total Department Wages:",sum(salary)) |
-+-------------------------------------------------+
-| Total Department Wages:26600.00 |
-+-------------------------------------------------+
-1 row in set (0.00 sec)
-```
-
- 获取薪水最高的这个人的详细信息
-
-```shell
-MySQL [company]> select * from employee5 where salary = (select max(salary) from employee5);
-+----+------+--------+------------+------+-----------------+----------+--------+--------+
-| id | name | sex | hire_date | post | job_description | salary | office | dep_id |
-+----+------+--------+------------+------+-----------------+----------+--------+--------+
-| 7 | emma | female | 2018-02-06 | sale | salecc | 20000.00 | 503 | 102 |
-+----+------+--------+------------+------+-----------------+----------+--------+--------+
-1 row in set (0.00 sec)
-```
-
-##### k.分组查询
-
- GROUP BY和GROUP_CONCAT()函数一起使用
-
- 获取部门ID相同的员工并把名字拼接到一起
-
-```shell
-MySQL [company]> SELECT dep_id,GROUP_CONCAT(name) FROM employee5 GROUP BY dep_id;
-+--------+------------------------------+
-| dep_id | GROUP_CONCAT(name) |
-+--------+------------------------------+
-| 100 | jack,tom,robin,alice |
-| 101 | ,harry |
-| 102 | emma,christine,zhuzhu,gougou |
-+--------+------------------------------+
-3 rows in set (0.01 sec)
-```
-
- GROUP BY和集合函数一起使用
-
- 获取部门最高薪资
-
-```shell
-MySQL [company]> SELECT post,max(salary) FROM employee5 GROUP BY post;
-+------------+-------------+
-| post | max(salary) |
-+------------+-------------+
-| hr | 6000.00 |
-| instructor | 8000.00 |
-| sale | 20000.00 |
-+------------+-------------+
-3 rows in set (0.00 sec)
-```
-
-##### l.正则查询
-
-```shell
-以什么开头
-MySQL [company]> SELECT * FROM employee5 WHERE name REGEXP '^ali';
-+----+-------+--------+------------+------------+-----------------+---------+--------+--------+
-| id | name | sex | hire_date | post | job_description | salary | office | dep_id |
-+----+-------+--------+------------+------------+-----------------+---------+--------+--------+
-| 4 | alice | female | 2018-02-02 | instructor | teach | 7200.00 | 501 | 100 |
-+----+-------+--------+------------+------------+-----------------+---------+--------+--------+
-1 row in set (0.00 sec)
-
-以什么结尾
-MySQL [company]> SELECT * FROM employee5 WHERE name REGEXP 'ce$';
-+----+-------+--------+------------+------------+-----------------+---------+--------+--------+
-| id | name | sex | hire_date | post | job_description | salary | office | dep_id |
-+----+-------+--------+------------+------------+-----------------+---------+--------+--------+
-| 4 | alice | female | 2018-02-02 | instructor | teach | 7200.00 | 501 | 100 |
-+----+-------+--------+------------+------------+-----------------+---------+--------+--------+
-1 row in set (0.01 sec)
-
-连续出现n次
-MySQL [company]> SELECT * FROM employee5 WHERE name REGEXP 'm{2}';
-+----+------+--------+------------+------+-----------------+----------+--------+--------+
-| id | name | sex | hire_date | post | job_description | salary | office | dep_id |
-+----+------+--------+------------+------+-----------------+----------+--------+--------+
-| 7 | emma | female | 2018-02-06 | sale | salecc | 20000.00 | 503 | 102 |
-+----+------+--------+------------+------+-----------------+----------+--------+--------+
-1 row in set (0.00 sec)
-```
-
-## 二:多表联合查询
-
-【扩展了解】
-
-#### 1.数据准备
-
-##### 表:company.employee6
-
-创建表:
-
-```shell
-MySQL [company]> create table employee6(
- emp_id int auto_increment primary key not null,
- emp_name varchar(50),
- age int,
- dept_id int);
-Query OK, 0 rows affected (0.65 sec)
-```
-
-查看表结构:
-
-```shell
-MySQL [company]> desc employee6;
-+----------+-------------+------+-----+---------+----------------+
-| Field | Type | Null | Key | Default | Extra |
-+----------+-------------+------+-----+---------+----------------+
-| emp_id | int(11) | NO | PRI | NULL | auto_increment |
-| emp_name | varchar(50) | YES | | NULL | |
-| age | int(11) | YES | | NULL | |
-| dept_id | int(11) | YES | | NULL | |
-+----------+-------------+------+-----+---------+----------------+
-4 rows in set (0.00 sec)
-```
-
-插入模拟数据:
-
-```shell
-MySQL [company]> insert into employee6(emp_name,age,dept_id) values
- ('',19,200),
- ('tom',26,201),
- ('jack',30,201),
- ('alice',24,202),
- ('robin',40,200),
- ('xingdian',16,200),
- ('natasha',28,204);
-```
-
-查看数据:
-
-```shell
-MySQL [company]> select * from employee6;
-+--------+----------+------+---------+
-| emp_id | emp_name | age | dept_id |
-+--------+----------+------+---------+
-| 1 | | 19 | 200 |
-| 2 | tom | 26 | 201 |
-| 3 | jack | 30 | 201 |
-| 4 | alice | 24 | 202 |
-| 5 | robin | 40 | 200 |
-| 6 | xingdian | 16 | 200 |
-| 7 | natasha | 28 | 204 |
-+--------+----------+------+---------+
-7 rows in set (0.00 sec)
-```
-
-##### 表:company.department6
-
-创建表:
-
-```shell
-MySQL [company]> create table department6(
- dept_id int,
- dept_name varchar(100)
- );
-Query OK, 0 rows affected (0.33 sec)
-```
-
-查看表结构:
-
-```shell
-MySQL [company]> desc department6;
-+-----------+--------------+------+-----+---------+-------+
-| Field | Type | Null | Key | Default | Extra |
-+-----------+--------------+------+-----+---------+-------+
-| dept_id | int(11) | YES | | NULL | |
-| dept_name | varchar(100) | YES | | NULL | |
-+-----------+--------------+------+-----+---------+-------+
-2 rows in set (0.00 sec)
-```
-
-模拟插入数据:
-
-```shell
-MySQL [company]> insert into department6 values
- (200,'hr'),
- (201,'it'),
- (202,'sale'),
- (203,'fd');
-```
-
-查看数据:
-
-```shell
-MySQL [company]> select * from department6;
-+---------+-----------+
-| dept_id | dept_name |
-+---------+-----------+
-| 200 | hr |
-| 201 | it |
-| 202 | sale |
-| 203 | fd |
-+---------+-----------+
-4 rows in set (0.01 sec)
-```
-
-#### 2.多表的连接查询
-
- 交叉连接:生成笛卡尔积,它不使用任何匹配条件;交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合
-
- 内连接:只连接匹配的行
-
- 外连接
-
- 左连接:会显示左边表内所有的值,不论在右边表内匹不匹配
-
- 右连接:会显示右边表内所有的值,不论在左边表内匹不匹配
-
- 全外连接:包含左、右两个表的全部行
-
-##### 交叉连接
-
-```shell
-MySQL [company]> select employee6.emp_name,employee6.age,employee6.dept_id,department6.dept_name from employee6,department6;
-+----------+------+---------+-----------+
-| emp_name | age | dept_id | dept_name |
-+----------+------+---------+-----------+
-| | 19 | 200 | hr |
-| | 19 | 200 | it |
-| | 19 | 200 | sale |
-| | 19 | 200 | fd |
-| tom | 26 | 201 | hr |
-| tom | 26 | 201 | it |
-| tom | 26 | 201 | sale |
-| tom | 26 | 201 | fd |
-| jack | 30 | 201 | hr |
-| jack | 30 | 201 | it |
-| jack | 30 | 201 | sale |
-| jack | 30 | 201 | fd |
-| alice | 24 | 202 | hr |
-| alice | 24 | 202 | it |
-| alice | 24 | 202 | sale |
-| alice | 24 | 202 | fd |
-| robin | 40 | 200 | hr |
-| robin | 40 | 200 | it |
-| robin | 40 | 200 | sale |
-| robin | 40 | 200 | fd |
-| xingdian | 16 | 200 | hr |
-| xingdian | 16 | 200 | it |
-| xingdian | 16 | 200 | sale |
-| xingdian | 16 | 200 | fd |
-| natasha | 28 | 204 | hr |
-| natasha | 28 | 204 | it |
-| natasha | 28 | 204 | sale |
-| natasha | 28 | 204 | fd |
-+----------+------+---------+-----------+
-28 rows in set (0.00 sec)
-```
-
-##### 内连接
-
- 获取有部门的员工 (部门表中没有natasha所在的部门)
-
-```shell
-MySQL [company]> select employee6.emp_name,employee6.age,employee6.dept_id,department6.dept_name from employee6,department6 where employee6.dept_id=department6.dept_id;
-+----------+------+---------+-----------+
-| emp_name | age | dept_id | dept_name |
-+----------+------+---------+-----------+
-| | 19 | 200 | hr |
-| tom | 26 | 201 | it |
-| jack | 30 | 201 | it |
-| alice | 24 | 202 | sale |
-| robin | 40 | 200 | hr |
-| xingdian | 16 | 200 | hr |
-+----------+------+---------+-----------+
-6 rows in set (0.00 sec)
-
-MySQL [company]> select employee6.emp_name,department6.dept_name from employee6 inner join department6 on employee6.dept_id=department6.dept_id;
-+----------+-----------+
-| emp_name | dept_name |
-+----------+-----------+
-| | hr |
-| tom | it |
-| jack | it |
-| alice | sale |
-| robin | hr |
-| xingdian | hr |
-+----------+-----------+
-6 rows in set (0.01 sec)
-```
-
-##### 外连接
-
-语法:
-
- SELECT 字段列表 FROM 表1 LEFT|RIGHT JOIN 表2 ON 表1.字段 = 表2.字段;
-
-注意:
-
- 先用谁谁就是左
-
-###### 左连接 left join
-
-```shell
-找出所有员工及所属的部门,包括没有部门的员工
-MySQL [company]> select emp_id,emp_name,dept_name from employee6 left join department6 on employee6.dept_id = department6.dept_id;
-+--------+----------+-----------+
-| emp_id | emp_name | dept_name |
-+--------+----------+-----------+
-| 1 | | hr |
-| 5 | robin | hr |
-| 6 | xingdian | hr |
-| 2 | tom | it |
-| 3 | jack | it |
-| 4 | alice | sale |
-| 7 | natasha | NULL |
-+--------+----------+-----------+
-7 rows in set (0.00 sec)
-```
-
-###### 右连接right join
-
-```
-找出所有部门包含的员工,包括空部门
-MySQL [company]> select emp_id,emp_name,dept_name from employee6 right join department6 on employee6.dept_id = department6.dept_id;
-+--------+----------+-----------+
-| emp_id | emp_name | dept_name |
-+--------+----------+-----------+
-| 1 | | hr |
-| 2 | tom | it |
-| 3 | jack | it |
-| 4 | alice | sale |
-| 5 | robin | hr |
-| 6 | xingdian | hr |
-| NULL | NULL | fd |
-+--------+----------+-----------+
-7 rows in set (0.00 sec)
-```
-
-##### 全外连接
-
-```shell
-MySQL [company]> select * from employee6 full join department6;
-+--------+----------+------+---------+---------+-----------+
-| emp_id | emp_name | age | dept_id | dept_id | dept_name |
-+--------+----------+------+---------+---------+-----------+
-| 1 | | 19 | 200 | 200 | hr |
-| 1 | | 19 | 200 | 201 | it |
-| 1 | | 19 | 200 | 202 | sale |
-| 1 | | 19 | 200 | 203 | fd |
-| 2 | tom | 26 | 201 | 200 | hr |
-| 2 | tom | 26 | 201 | 201 | it |
-| 2 | tom | 26 | 201 | 202 | sale |
-| 2 | tom | 26 | 201 | 203 | fd |
-| 3 | jack | 30 | 201 | 200 | hr |
-| 3 | jack | 30 | 201 | 201 | it |
-| 3 | jack | 30 | 201 | 202 | sale |
-| 3 | jack | 30 | 201 | 203 | fd |
-| 4 | alice | 24 | 202 | 200 | hr |
-| 4 | alice | 24 | 202 | 201 | it |
-| 4 | alice | 24 | 202 | 202 | sale |
-| 4 | alice | 24 | 202 | 203 | fd |
-| 5 | robin | 40 | 200 | 200 | hr |
-| 5 | robin | 40 | 200 | 201 | it |
-| 5 | robin | 40 | 200 | 202 | sale |
-| 5 | robin | 40 | 200 | 203 | fd |
-| 6 | xingdian | 16 | 200 | 200 | hr |
-| 6 | xingdian | 16 | 200 | 201 | it |
-| 6 | xingdian | 16 | 200 | 202 | sale |
-| 6 | xingdian | 16 | 200 | 203 | fd |
-| 7 | natasha | 28 | 204 | 200 | hr |
-| 7 | natasha | 28 | 204 | 201 | it |
-| 7 | natasha | 28 | 204 | 202 | sale |
-| 7 | natasha | 28 | 204 | 203 | fd |
-+--------+----------+------+---------+---------+-----------+
-28 rows in set (0.00 sec)
-```
-
-#### 3.复合条件连接查询
-
-##### 案例一
-
- 找出公司所有部门中年龄大于25岁的员工
-
- 以内连接的方式查询employee6和department6表,并且employee6表中的age字段值必须大于25
-
-```shell
-MySQL [company]> select emp_id,emp_name,dept_name FROM employee6,department6 WHERE employee6.dept_id = department6.dept_id AND age > 25;
-+--------+----------+-----------+
-| emp_id | emp_name | dept_name |
-+--------+----------+-----------+
-| 5 | robin | hr |
-| 2 | tom | it |
-| 3 | jack | it |
-+--------+----------+-----------+
-3 rows in set (0.01 sec)
-```
-
-##### 案例二
-
- 以内连接的方式查询employee6和department6表,并且以age字段的升序方式显示
-
-```shell
-MySQL [company]> select emp_id,emp_name,dept_name FROM employee6,department6 WHERE employee6.dept_id = department6.dept_id ORDER BY age asc;
-+--------+----------+-----------+
-| emp_id | emp_name | dept_name |
-+--------+----------+-----------+
-| 6 | xingdian | hr |
-| 1 | | hr |
-| 4 | alice | sale |
-| 2 | tom | it |
-| 3 | jack | it |
-| 5 | robin | hr |
-+--------+----------+-----------+
-```
-
-#### 4.子查询
-
- 子查询是将一个查询语句嵌套在另一个查询语句中
-
- 内层查询语句的查询结果,可以为外层查询语句提供查询条件
-
- 子查询中可以包含:IN、NOT IN等关键字;还可以包含比较运算符:= 、 !=、> 、<等
-
-##### 案例一
-
- 带IN关键字的子查询;查询employee表,但dept_id必须在department表中出现过
-
-```shell
-MySQL [company]> select * from employee6 WHERE dept_id IN (select dept_id FROM department6);
-+--------+----------+------+---------+
-| emp_id | emp_name | age | dept_id |
-+--------+----------+------+---------+
-| 1 | | 19 | 200 |
-| 2 | tom | 26 | 201 |
-| 3 | jack | 30 | 201 |
-| 4 | alice | 24 | 202 |
-| 5 | robin | 40 | 200 |
-| 6 | xingdian | 16 | 200 |
-+--------+----------+------+---------+
-6 rows in set (0.00 sec)
-```
-
-##### 案例二
-
- 带比较运算符的子查询;查询年龄大于等于25岁员工所在部门(查询老龄化的部门)
-
-```shell
-MySQL [company]> select dept_id,dept_name FROM department6 WHERE dept_id IN (SELECT DISTINCT dept_id FROM employee6 WHERE age >=25);
-+---------+-----------+
-| dept_id | dept_name |
-+---------+-----------+
-| 201 | it |
-| 200 | hr |
-+---------+-----------+
-2 rows in set (0.00 sec)
-```
\ No newline at end of file