位置: 编程技术 - 正文

MySQL中join语句的基本使用教程及其字段对性能的影响(mysql中join的用法)

编辑:rootadmin

推荐整理分享MySQL中join语句的基本使用教程及其字段对性能的影响(mysql中join的用法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql中的join有几种,mysql的join on,mysql中join的用法,mysql7种join,mysql join语法,mysqlinner join,mysql中join的用法,mysql join语法,内容如对您有帮助,希望把文章链接给更多的朋友!

join语句的基本使用

SQL(MySQL) JOIN 用于根据两个或多个表中的字段之间的关系,从这些表中得到数据。

JOIN 通常与 ON 关键字搭配使用,基本语法如下:

... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditionatable1 通常称为左表,table2 称为右表。ON 关键字用于设定匹配条件,用于限定在结果集合中想要哪些行。如果需要指定其他条件,后面可以加上 WHERE 条件 或者 LIMIT 以限制记录返回数目等。

下面以最常见的两表连接来说明 MySQL JOIN 的用法,关于多表 JOIN 请参见《MySQL JOIN 多表》。

MySQL JOIN 分类

JOIN 按照功能大致分为如下三类:

INNER JOIN(内连接):取得两个表中存在连接匹配关系的记录。 LEFT JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录。 RIGHT JOIN(右连接):与 LEFT JOIN 相反,取得右表(table2)完全记录,即是左表(table1)并无匹配对应记录。

关于 MySQL FULL JOIN 全连接

MySQL 没有提供 SQL 标准中的 FULL JOIN(全连接):两个表记录都取出,而不管彼此是否有对应记录。要解决此问题,可以使用 UNION 关键字来合并 LEFT JOIN 与 RIGHT JOIN,达到模拟 FULL JOIN 的目的。

MySQL INNER JOIN

INNER JOIN 用于取得两个表中存在连接匹配关系的记录。下面是两个原始数据表:

article 表中文章的所属用户是通过 uid 这个字段与 user 表关联起来的。通过观察数据不难发现,对于 uid=3 的用户,并没有发表任何文章;而文章中 aid=4 却无法在 uid 表中找到对应记录(可能是该用户被删除而其所属的文章却被保留了下来)。

我们列出所用文章与用户一一对应的数据。

SELECT … INNER JOIN … ON 语句如下:

返回查询结果如下:

对于 INNER JOIN,等同与下面的 SQL 语句:

CROSS JOIN

MySQL中join语句的基本使用教程及其字段对性能的影响(mysql中join的用法)

CROSS JOIN 即交叉连接,在不指定 ON 条件下:

得到的结果是被连接的两个数据表的乘积,即笛卡尔积。

实际上,在 MySQL 中(仅限于 MySQL) CROSS JOIN 与 INNER JOIN 的表现是一样的,在不指定 ON 条件得到的结果都是笛卡尔积,反之取得两个表完全匹配的结果。

INNER JOIN 与 CROSS JOIN 可以省略 INNER 或 CROSS 关键字,因此下面的 SQL 效果是一样的:

平板视图打印?

join的字段字符集编码对性能的影响

先来看一下示例代码:

建utf-8编码的表 t1:

随便插入些数据,数量大一点,后面实验结果更清晰,偷个懒,构造随机字符串插入语句

每次执行插入一条记录,用你熟悉的脚本(python,php,shell等都行)写个循环,执行一万次以上。

将该表复制成一个新表t2,删除一部分数据,条左右即可。(推荐使用phpMyAdmin)

再将t2复制为t3,并将字段改为gb编码。

使用一个left join语句,写一个语句,查出t2/t3比t1少了哪些记录。

语句很简单,如下:

注意加入 SQL_NO_CACHE ,禁用mysql缓存。

先看编码一致的t2表,phpMyAdmin里执行结果:

显示行 0 - ( 1, 总计, 查询花费 0. 秒)平均耗时大概为0.秒

phpMyAdmin执行结果:

显示行 0 - ( 总计, 查询花费 0. 秒)差两个数量级!

查询语句解释:

MySQL中union和join语句使用区别的辨析教程 union和join是需要联合多张表时常见的关联词,具体概念我就不说了,想知道上网查就行,因为我也记不准确。先说差别:union对两张表的操作是合并数据

在阿里云的CentOS环境中安装配置MySQL的教程 1常规错误的yum安装方法:在前文中记述了CentOS6.5系统中通过yum方式快速地搭建了LNMP环境,那么是否也能在CentOS7或CentOS7.1系统中依葫芦画瓢安装MySql5.6.

MySQL中UPDATE与DELETE语句的使用教程 UPDATE更新UPDATESET语法用于修改更新数据表中的数据。语法:UPDATEtb_nameSETcolumn1=new_value1,column2=new_value2,…WHEREdefinition该语法将数据表中符合WHERE条件的记录

标签: mysql中join的用法

本文链接地址:https://www.jiuchutong.com/biancheng/312432.html 转载请保留说明!

上一篇:mysql允许远程连接的方法(mysql5.6允许远程连接)

下一篇:MySQL中union和join语句使用区别的辨析教程(mysql union和join)

  • 个人所得税专项附加扣除子女教育
  • 未认证发票有时间限制吗
  • 房地产按揭是什么意思
  • 进项税发票认证期限多长时间
  • 小企业会计准则调整以前年度费用分录
  • 小企业以前年度损益调整科目编码
  • 房地产企业取得净地的税收筹划
  • 企业弥补亏损的三个途径
  • 小规模纳税人费用发票怎么做账
  • 出口货款收不回来怎么办
  • 回拨工费经费怎么做会计分录?
  • 外购材料运输费怎么入账
  • 冬虫夏草开票什么税率
  • 国家税务总局2011年第25号公告
  • 个税前几个月没有工资,累计减除费用会累计吗
  • 小公司发工资怎么做账
  • 增值税5%的税率怎么算
  • 税率16降到13什么时候实施
  • 利润转增资本交什么税
  • 应收账款账龄怎么查
  • 财务做哪些工作
  • 地价计入房产
  • 计算内含报酬率所使用的年金现值系数
  • 超市购销和联营有什么区别
  • 一般纳税人进项税额转出会计分录
  • 华为手机如何用有线耳机
  • linux root没有权限
  • 现金结算起点包括1000元吗
  • 企业的支付宝
  • 搬迁补偿费如何做账
  • 花卉绿萝的养殖方法
  • php imagettftext
  • 住房公积金领出来用了影响以后买房贷款吗
  • 如何用php操作mysql
  • ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly
  • 企业所得税可以结转以后年度扣除的费用
  • 银行对账单附在记账凭证中吗
  • swift 协议扩展
  • 对数前面有符号怎么计算
  • uniapp零基础小白到项目实战
  • 针对多用户实现什么功能
  • 为什么没缴税
  • 城镇土地使用税减免税政策2023年
  • 增值税专票和普票的区别图片
  • 报销职工福利
  • mysql中的外键的作用
  • mysql外键约束的基本语法结构
  • 长期股权投资核算的权益法包括哪些内容
  • html元素一般分为哪几类
  • 电脑自学网
  • 担保公司的风险准备金在报表中如何反应
  • sql server如何进行安全设置
  • 不是公司员工可以报销费用吗
  • 社保里面的住房公积金买房可以便宜多少
  • 其他应收款在现金流量表怎么填
  • 短期理财会计处理
  • 对于在某一时点履行的履约义务,企业应当在客户
  • 建行E信通贴现需要发票吗
  • 预提成本和冲回成本金额不一致情况说明
  • 产品质量问题扣款账务处理
  • 在会计中,结转材料实际采购成本时什么意思
  • 投资性房地产账面价值大于公允价值计入什么
  • 企业间贴现手续怎么办理
  • 固定资产盘点基本情况
  • 什么叫残保金减免
  • 物联网 iot
  • surveyor.exe - surveyor是什么进程
  • 你不知道的关于现代主义的故事
  • windows下打开注册表的命令是什么
  • unity集训
  • node用mongodb还是mysql好
  • 安卓仿平板
  • Android 自定义view炫酷动画
  • Android4.4 wpa_supplicant深入分析之wpa_supplicant初始化流程
  • jQuery UI Bootstrap是什么?
  • ios反编译源代码
  • 广西地方税务网站官网
  • 投诉政府平台在哪里投诉
  • 电子税务局申领的发票怎么读入
  • 深圳龙华区税务局大浪税务所电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设