Join图:

Sql如下:

1)左外连接,以左边的表为主,左连接即左边的表独有+左边表和右边表共有数据

SELECT * FROM dept t

LEFT JOIN emp t2

ON t.`id_dept` = t2.`id_dept`;

2)右外连接,以右表的表为主,右连接即右边表独有+右边和左边共有数据

SELECT * FROM dept t

RIGHT JOIN emp t2

ON t.`id_dept` = t2.`id_dept`;

3)内连接,也叫自然连接同时也叫全等连接,即左边表和右边表共有数据的查询

SELECT * FROM dept t

INNER JOIN emp t2

ON t.`id_dept` = t2.`id_dept`;

4)左连接,即查询左边表的独有数据

SELECT * FROM dept t

LEFT JOIN emp t2

ON t.`id_dept` = t2.`id_dept`

WHERE t2.`id_dept` IS NULL;

5)右连接,即查询右边表独有数据

SELECT * FROM dept t

RIGHT JOIN emp t2

ON t.`id_dept` = t2.`id_dept`

WHERE t.`id_dept` IS NULL;

6)全连接,即左边表数据+右边表数据+左边表和右边表共有数据查询

SELECT * FROM dept t

LEFT JOIN emp t2

ON t.`id_dept` = t2.`id_dept`

UNION

SELECT * FROM dept t

RIGHT JOIN emp t2

ON t.`id_dept` = t2.`id_dept`;

UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。

UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型。

同时,每条 SELECT 语句中的列的顺序必须相同.

7)全外连接,即左右表的共有数据之外的数据查询

SELECT * FROM dept t

FULL OUTER emp t2

ON t.`id_dept` = t2.`id_dept`

WHERE t.`id_dept` IS NULL

OR t2.`id_dept` IS NULL;  --mysql不支持这种连接的语法

SELECT * FROM dept t

LEFT JOIN emp t2

ON t.`id_dept` = t2.`id_dept`

WHERE t2.`id_dept` IS NULL

UNION

SELECT * FROM dept t

RIGHT JOIN emp t2

ON t.`id_dept` = t2.`id_dept`

WHERE t.`id_dept` IS NULL;

oracle 的sql如下:

------------------自然连接  把一张表当两张表用

select  e1.ename ,e2.ename from emp e1 join emp e2 on (e1.mgr = e2.empno ) ;

select ename,dname from emp join dept on (emp.deptno=dept.deptno);

---等值连接的简洁写法:

select ename ,dname from emp join dept using (deptno);

---外连接:

--左外连接

select  e1.ename ,e2.ename from emp e1 left  join emp e2 on (e1.mgr =

e2.empno ) ;

select e1.ename ,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno(+);

--右外连接:

select  e1.ename ,e2.ename from emp e1 right  join emp e2 on (e1.mgr =

e2.empno ) ;

select  e1.ename ,e2.ename from emp e1,emp e2 where e1.mgr(+) = e2.empno;

-- 复合索引 顺序, col1 col2 col3

EXPLAIN select * from t_demo v where v.col1 = '3456dasf' and v.col2 = '1234'; -- 走索引 type:ref

EXPLAIN select * from t_demo v where v.col2 = '1234' and v.col1 = '3456dasf' ; -- 走索引 type:ref

EXPLAIN select * from t_demo v where v.col1 = '3456dasf' and v.area_col4 = 'dsafdsafdsa'; -- 走索引 type:ref

EXPLAIN select * from t_demo v where v.col4 = 'dsafdsafdsa' and v.col1 = '3456dasf'; -- 走索引 type:ref

EXPLAIN select * from t_demo v where v.col4 = 'dsafdsafdsa' and v.col2 = 'gfhfdhg'; -- 不走索引 type:all

EXPLAIN select * from t_demo v where v.col4 = 'dsafdsafdsa' and v.col5 = 'gfdd' and v.col3 = '18HB0820504'; -- 不走索引 type:all

EXPLAIN select * from t_demo v where v.col4 = 'dsafdsafdsa' and v.col1 = '3456dasf'; -- 走索引 type:ref

EXPLAIN select * from t_demo v where v.col4 = 'dsafdsafdsa' and v.col2 = '3456dasf' and v.col1 = '3456dasf' ; -- 走索引 type:ref

总结:

mysql 复合索引当中,MySQL联合索引最左原则

即,复合中的三个字段,如果查询条件当中没有 最左的字段作为查询条件,不走索引

如果有最靠左的两个字段,则走两个字段的索引

如果三个字段,只有最左和最右的,则只走一个最左字段的索引

反之都不走索引

4)type

4.1)访问类型排序

4.2)显示查询使用了何种类型

从最好的到最差的依次是:

System->const->eq_ref->ref->range->index->All

一般来说,得保证查询至少达到range级别,最好达到ref

数据库备份:

-- 备份全部数据库的数据(-t)

mysqldump -uroot -p123456 -P3306 -A -t > 0103.sql

-- 备份单个数据库的数据和结构(dbname 为数据库名)

mysqldump -uroot -p123456 -P3306 dbname > dbname_20190819.sql

-- 备份单个数据库结构(dbname 为数据库名,-d)

mysqldump -uroot -p123456 -P3306 dbname -d > 0105.sql

-- 备份单个数据库数据(sakila 为数据库名,-t)

mysqldump -uroot -p123456 -P3306 sakila -t > 0106.sql

-- 备份多个表的结构和数据 (table1,table2为表名)

mysqldump -uroot -p123456 -P3306 sakila table1 table2 > 0107.sql

-- 一次备份多个数据库

mysqldump -uroot -p123456 --databases db1 db2 > 0108.sql

show global variables like 'max_allowed_packet';

mysql左联和全等_Mysql7种join连接及mysql一些知识点-Go语言中文社区相关推荐

  1. 图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

    转载自 图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross) Join 连接在日常开发用得比较多,但大家都搞清楚了它们的使用区别吗??一文带你上车 ...

  2. golang mysql断线_MySQL的连接池、异步、断线重连-Go语言中文社区

    MySQL长连接 MySQL短连接每次请求操作数据库都需要建立与MySQL服务器建立TCP连接,这是需要时间开销的.TCP连接需要3次网络通信.这样就增加了一定的延时和额外的IO消耗.请求结束后会关闭 ...

  3. mysql 表空间监控shell_一种通过zabbix监控mysql表空间的方法

    一种通过zabbix监控mysql表空间的方法[ 技术领域: ][0001]本发明涉及计算机自动化运维与监控领域,具体地说是一种通过ZABBIX监控MYSQL表空间的方法.[ 背景技术: ][0002 ...

  4. mysql7种join连接_mysql 重新整理——七种连接join连接[六]

    前言 总结一下其中join连接. 正文 又到了盗图时刻: 上面标记好了顺序. 第一种: select * from A a left join B b on a.key=b.key 这里解释一下,这里 ...

  5. mysql床数据库的命令_3种PHP连接MYSQL数据库的常用方法

    对于PHP入门用户来说,我们只要掌握基本的数据库写入.读取.编辑.删除等基本的操作就算入门,也可以写出简单的程序出来,比如留言本.新闻文章系统等等. 在整个过程中,MySQL数据库的连接也是比较重要的 ...

  6. mac mysql 查看用户_Mac 最全 Mysql忘记用户名和密码如何处理-Go语言中文社区

    工作中一直在维护开发环境和生产环境的数据库,现在想做些小测试需要用到本地库,但忘记了账户名和密码. 还好本姑娘有点儿懒,用的是navicat工具,有记录用户名,不过无所谓,都能查出来. 第一步:关闭m ...

  7. go mysql 查询语句_01 MySQL-初识MySQL-查询语句的执行流程-Go语言中文社区

    MySQL的基础架构 我们通过一条查询语句来看看MySQL是如何执行的,同时通过这条语句的执行,了解MySQL的整体架构体系.mysql> select * from T where ID=1: ...

  8. mysql主从配置 简书_Mysql主从配置,实现读写分离-Go语言中文社区

    转载:https://www.cnblogs.com/alvin_xp/p/4162249.html 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层 ...

  9. kubernetes中mysql乱码_在kubernetes中部署tomcat与mysql集群-Go语言中文社区

    在kubernetes中部署tomcat与mysql集群之前必须要有以下这些基础: 1. 已安装.配置kubernetes 2. 集群中有tomcat与mysql容器镜像 3. 有docker基础 具 ...

  10. mysql中文乱码 go_Mysql binlog乱码问题研究-Go语言中文社区

    新9代上线后,线上数据库的binlog日志导下来,发现有很多乱码的字符.类似的 根据这篇文章,这些乱码的是通过base64位加密了. SHELL>  mysqlbinlog --base64-o ...

最新文章

  1. Blender中的Python脚本介绍学习教程
  2. 链客区块链技术问答社区
  3. HDU 3336 Count the string(KMP+DP)
  4. 【Nutch2.2.1基础教程之2.1】集成Nutch/Hbase/Solr构建搜索引擎之一:安装及运行【单机环境】...
  5. 笔记-项目进度管理-资源平衡和资源平滑
  6. html密码框不显示,密码框中密码的显示与隐藏切换(JS)
  7. JDK6 中队web service的支持
  8. 计算几何 -- 旋转坐标系
  9. 【论文研读】【医学图像分割】【BCRNN】Fine-grained Recurrent Neural Networks for Automatic Prostate Segmentation ...
  10. c++入门之类继承初步
  11. 计算机软考网络工程师中级多少分过,2019年计算机软考网络工程师中级及格分数...
  12. C语言入门之C语言开发环境搭建
  13. [转载]Wifi OKC 验证
  14. 大一上学期Python学习心得体会
  15. 欢度春节|领取你的微信专属红包封面-免费送
  16. 3.1.2随机梯度下降法
  17. 邮电通信业宣传片制作技巧
  18. 从现在,看未来---Linux Kernel 未来发展方向
  19. 1823. 找出游戏的获胜者( 约瑟夫环问题 )
  20. 高通新款高端芯片抢闸发布,小米将首发,趁机从华为手里抢夺市场

热门文章

  1. 音乐网站制作之音乐播放
  2. 共阳极管的代码_1.共阳极数码管是将发光二极管的_____连接在一起,字符5的共阳代码为_____,字符2的共阴代码为 _____。...
  3. 一阶电路实验报告心得_一阶rc电路的暂态响应实验报告分析
  4. CentOS 7 安装 nodejs 及 npm 安装模块的常见问题
  5. Oracle Data Guard官方说明
  6. 【web前端】前端性能优化指南,还不来看看?
  7. python大数据是什么_python和大数据有什么关系?
  8. js 调用 百度/腾讯/高德地图app 导航 初始位置为我的位置
  9. 90后,为什么我建议你不要老是加班?
  10. 实现搜索框(含历史搜索记录)