MySQL编程技巧_MySQL学习笔记---MySQL开发技巧

SQL语句分类

DDL:数据定义语言 --- CREATE、ALTER、DROP、TRUNCATE

TPL:事务处理语言 --- COMMIT、ROLLBACK、SAVEPOINT、SET TRANSACTION

DCL:数据控制语言 --- GRANT、REVOKE

DML:数据操作语言 --- SELECT、UPDATE、INSERT、DELETE

join从句—内连接

join从句:: inner | full outer | left outer | right outer | cross

内连接inner join:

select a.user_name,a.over,b.over from user1 a join user2 b on a.user_name=b.user_name;

LEFT OUTER JOIN:包含左表中的所有数据,当某个连接谓词不在右表中时,新生成的表的右表字段为NULL。对左表数据的信息进行扩展,增加右表中的字段,当某个连接谓词不在右表中时,新生成的表的右表字段为NULL。

使用LEFT OUTER JOIN对NOT IN 进行优化。

SELECT select_sxpressions

FROM TABLE A LEFT OUTER JOIN TABLE B ON A.key=B.key

WHERE B.key IS NULL;

表A中不包含表B中的数据。

SELECT select_sxpressions

FROM TABLE A LEFT OUTER JOIN TABLE B ON A.key=B.key

WHERE B.key IS NOT NULL;

表A与表B的交集,相当于INNER JOIN。

忽然想起来有次面试问我如何用left join实现not in的功能

select A.内容,B.内容 from A left join B ON a.key=b.key where b.key is null

RIGHT OUTER JOIN:包含右表中的所有数据,当某个连接谓词不在左表中时,新生成的表的左表字段为NULL。对右表数据的信息进行扩展,增加左表中的字段,当某个连接谓词不在左表中时,新生成的表的左表字段为NULL。

使用RIGHT OUTER JOIN对NOT IN 进行优化。

SELECT select_sxpressions

FROM TABLE A RIGHT OUTER JOIN TABLE B ON A.key=B.key

WHERE A.key IS NULL;

表B中不包含表A中的数据。

SELECT select_sxpressions

FROM TABLE A RIGHT OUTER JOIN TABLE B ON A.key=B.key

WHERE A.key IS NOT NULL;

表A与表B的交集,相当于INNER JOIN。

MySQL 中 不会支持 full join

解决方法:采用左连接和右连接结合+ union all 方法来取得两表的合集

select a.user_name , a.over , b.over

from user1 a

left join user2 b on a.user_name = b.user_name

union all

select b.user_name , b.over, a.over

from user1 a

right join user2 b on a.user_name = b.user_name

join优化子查询技巧:

一般子查询写法:(数据小时,没有多大影响,如果数据量大时,则要消耗大量的查询)

select a.user_name , a.voer , (select over from user2 where a.user_name = b,user_name) as over2

from user1 a;

如果这两张表的记录相当多 那么这个子查询相当于对A标的每一条记录都要进行一次子查询。

join优化(左连接)后的写法:

select a.user_name , a.over , b.over from user1 a

left join user2 b on a.user_name = b.user_name

使用join + having优化聚合子查询:

select a.user_name,b.timestr,b.kills from user1 a

join user_kills b on a.id = b.user_id

join user_kills c on c.user_id = b.user_id

group by a.user_name,btimestr,b.kills

having b.kills = max(c.kills);

分类聚合方式查询每一个用户某一个字段数据最大的两条数据:

select d.user_name ,c.ctimestr,kills from

(select user_id ,timestr ,kills ,(select count(*) from user_kills b where b.user_id = a.user_id and a.kills <= b.kills) as cnt

from user_kills a group by user_id,timestr,kills) c join user1 d on c.user_id = d.id where cnt <= 2

如何进行行列转换

如何进行行列转换

需要进行行转列的场景:汇总显示

0e230f303d09

Paste_Image.png

0e230f303d09

Paste_Image.png

未完待续...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kafka topic 目录存放在哪_Kafka系列文章之安装测试-第2篇

前言上篇文章讲解了 Kafka 的基础概念和架构&#xff0c;了解了基本概念之后&#xff0c;必须得实践一波了&#xff0c;所谓“实践才是检验真理的唯一办法”&#xff0c;后续系列关于 Kafka 的文章都以 kafka_2.11-0.9.0.0 为例&#xff1b;另外为了让大家快速入门&#xff0c;…

mysql的操作语句_Mysql最常用的操作语句收集

Mysql中常用语句简单易学springboot微服务是现在流行的框架&#xff0c;目前大多数做java的人都在使用&#xff0c;java的生态一直很好&#xff0c;各种插件各种第三方jar包推动着java的运行。Mysql是Springboot最常用的数据库&#xff0c;主要原因是Mysql免费而且轻量。考虑性…

stlink 升级固件以后失败_ST-Link不能下载程序的几种解决办法

一直在用J-LINK&#xff0c;最近改用ST-Link&#xff0c;出现了不少无法下载程序的情况&#xff0c;这里列出几种解决的办法(针对STM32F103系列)&#xff1a;1#是不是你没有选择Flash算法&#xff1f;什么都没有加的话&#xff0c;会提示“找不到Flash算法”的哦2#是不是你JTAG…

java获取b站动态列表地址_爬虫入门(三)爬取b站搜索页视频分析(动态页面,DBUtils存储)...

这一次终于到了分析b站视频了。开始体会到写博客非常占用学技术的时间&#xff0c;但是还是希望能总结&#xff0c;沉淀下来。工具&#xff1a;使用Webmaigc框架&#xff0c;DBUtils&#xff0c;C3P0连接池。分析过程&#xff1a;b站的搜索页面是这样的。如果浏览器右键查看源代…

python a和b字符串和占位符输出_Python占位符的使用与format函数字符串格式化详解...

Python字符串格式化01字符串的格式化分类字符串的格式化方法共两种&#xff1a;占位符(%)与format方式。占位符方式在Python2比较常见&#xff0c;随着Python3到来&#xff0c;format方式变得广泛起来&#xff0c;format函数常与print()函数结合使用&#xff0c;具备很强的格式…

18135usm_佳能PZ-E1+EF-S 18-135mm f/3.5-5.6 IS USM镜头 小型工作室的利器

EF-S 18-135mm f/3.5-5.6 IS USM 在大神眼里据对是属于狗头系列的 哈哈哈 但是这货如果搭配佳能的 PZ-E1 在配合佳能80D 那绝对是小型视频工作室的首选 &#xff01;&#xff01;&#xff01;mxcpTB2rqUOg80kpuFjSsppXXcGTXXa_!!104284319.jpg (156.5 KB, 下载次数: 1)2017-3-…

java服务器要二次编译,ecology项目二次开发环境搭建

ecology项目二次开发环境搭建Submitted By Weaver文档版本控制文档简要信息&#xff1a;文档主题(Title)ecology项目二次开发环境搭建作者(Author)审批者 (To Be Approved By)说明 (Comments)ecology项目二次开发环境搭建文件名称 (File Name)文档版本历史&#xff1a;序号日期…

列车matlab模型,【国家级精品课程】-中南大学-数学建模-lingo-matlab-优化建模-数模培训-全国赛论文-京沪线列车调度模型(B题)...

【国家级精品课程】-中南大学-数学建模-lingo-matlab-优化建模-数模培训-全国赛论文-京沪线列车调度模型(B题) 答卷编号&#xff1a; 答卷编号&#xff1a; 论文题目&#xff1a; 京沪线列车调度模型(B题) 参赛队员&#xff1a; 1. 唐欢 电话&#xff1a;13100251389 2. 任礼秋…

如何学习matlab 知乎,知乎日报

利用记忆软件 Anki 进行复习&#xff1a;先看一下效果&#xff1a;通过编程(Matlab 程序 main.m)把一集美剧中的每一句话的中英文和语音都分离出来&#xff0c;输入 Anki 进行复习。制作每一集的学习包的大概流程如下&#xff1a;下面是详细步骤&#xff1a;* 流程只适用于装了…

php javascript对象,JavaScript 对象

JavaScript 对象JavaScript 对象是拥有属性和方法的数据。真实生活中的对象&#xff0c;属性和方法真实生活中&#xff0c;一辆汽车是一个对象。对象有它的属性&#xff0c;如重量和颜色等&#xff0c;方法有启动停止等:对象属性方法car.name Fiatcar.model 500car.weight 8…

getlasterror返回57怎么解决_王者荣耀:用时最短职业比赛?3分57秒结束,解说都看呆了!...

原标题&#xff1a;王者荣耀&#xff1a;用时最短职业比赛&#xff1f;3分57秒结束&#xff0c;解说都看呆了&#xff01;相信很多人都知道&#xff0c;王者荣耀作为一款手机游戏&#xff0c;虽然节奏比英雄联盟这种端游快得多&#xff0c;但一局比赛也要十分钟左右&#xff0c…

35岁学嵌入式合适吗_什么是嵌入式技术?

物联网应用技术中&#xff0c;嵌入式技术是至关重要的。但是&#xff0c;至少有60%的人不了解什么是嵌入式技术。物联网时代的到来&#xff0c;不管是从行业应用&#xff0c;还是智能硬件的爆发&#xff0c;亦或是大数据等等嵌入式技术都得到了史无前例的发展。简单来说&#x…

cvpr2020 人脸检测与识别_投石科技温度检测人脸识别设备装置

投石科技温度检测人脸识别设备装置内容共分为五大块&#xff0c;包括&#xff1a;行业概况、产品简介、核心功能、产品优势、应用场景。行业概况&#xff1a;人工智能安防即“人工智能安防”&#xff0c;以人工智能技术为核心&#xff0c;形成一系列产品和系统解决方案。近两年…

arrays合并两个数组_每天一道力扣题: 88. 合并两个有序数组

题目给你两个有序整数数组 nums1和nums2&#xff0c;请你将nums2合并到 nums1 中&#xff0c;使nums1成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间&#xff08;空间大小大于或等于 m n&#xff09;来保存 nums2 中…

dbsync for oracle ms sql,DBSync for Firebird and MSSQL

DBSync for Firebird and MSSQL简介DBSync for Firebird and MSSQL简介一&#xff1a;DBSync for Firebird and MSSQL是款专业的数据库同步软件。能够将MS SQL版完美的迁移到Firebird&#xff0c;支持从Firebird到MSSQL数据库的双向同步以及相反方向的精确同步&#xff0c;支持…

arthas 查看哪个方法调用最耗时_阿里巴巴问题排查神器Arthas使用实践

Apache Dubbo是Alibaba开源的高性能RPC框架&#xff0c;在国内有非常多的用户。Github:https://github.com/apache/incubator-dubbo文档:http://dubbo.incubator.apache.org/zh-cn/Arthas是Alibaba开源的应用诊断利器&#xff0c;9月份开源以来&#xff0c;Github Star数三个月…

及cp含义_新媒体运营炒CP,既好用,又好玩(第327回)

点击上方蓝色字关注我们&#xff0c;获得724小时新媒体运营协助炒CP这个词大家应该都听说过&#xff0c;英文是Coupling&#xff0c;是配对的意思&#xff0c;源自同人圈。比如&#xff0c;金晨与张继科出现在同一节目里&#xff0c;观众看两个人同框时感觉像一对&#xff0c;就…

c++输入错误重新输入_C程序-根据时长和时薪计算工资1.3(解决输入非数字选项退出的bug)...

程序内容&#xff1a;提供五种工资菜单&#xff0c;用户自行选择&#xff0c;读取用户输入的工作时长&#xff0c;计算工资和净收入&#xff0c;及其缴纳的税金。&#xff08;C Primer Plus 第7章 第8题&#xff09;程序更新&#xff1a;解决输入非数字选项后退出程序的bug。这…

linux 安装 交换分区大小,给已安装的Linux新增Swap交换分区

跟了我5年多的本本已步入花甲&#xff0c;CPU严重老化&#xff0c;运行Windows异常吃力&#xff0c;于是考虑换成Linux试试。忙活了一天&#xff0c;测试了2个“家用”Linux发行版,一个是深度的Linux Deepin 2013,另一个是雨林木风的StartOS 5.1。在测试过程中也遇到一些有用的…

linux音频驱动修复工具,Linux声卡驱动(4)——音频驱动实战

一、应用测试工具的使用1.在external/tinyalsa下有以C语言实现的alsa的测试程序&#xff0c;编译后生成tinypcminfo tinyplay tinycap tinymix 四个elf格式的测试工具(1) tinypcminfo &#xff1a;获取PCM In和PCM# tinypcminfo -D /dev/snd/controlC0# tinypcminfo -D /dev/sn…