MySQL 数值函数,字符串函数与多表查询

news2024/11/27 21:48:03

MySQL像其他语言一样,也提供了很多库函数,分为单行函数和分组函数(聚合函数),我们这里先简易介绍一些函数,熟悉就行,知道怎么使用即可.

数值函数

三角函数

 

指数与对数函数

进制间的转换函数

 

字符串函数

注:LPAD函数是右对齐,RPAD函数是左对齐

多表查询

注:如果为表起了别名,就不能使用表的原名了

多表查询的实现一共有SQL92和SQL99两种语法方式.至于为什么需要多表查询呢?

由于我们在实现业务的时候将不同的表分开会提高我们的查询效率,

我们这里用七张来描述两张表的关系

其中最下面两张表是由上面的表组合产生的

内连接

中图是表示内连接的图,只包含两张图的数据都不为空的情况

eg:在两张表中查询员工姓名和奖金  使用内连接查询就不会查到没有姓名的奖金或没有奖金的员工

//SQL92语法
SELECT 字段  FROM 表a,表b WHERE 连接条件;



//SQL99语法
SELECT 字段 FROM 表a JOIN 表b ON 连接条件; 

外连接

左外连接(左上图)

需求: 假设我需要查询到所有员工的奖金情况,包含没有奖金的也需要显示记录,此时就可以使用左外连接

注:MySQL不支持SQL92语法中左外连接

//SQL92语法
SELECT 字段  FROM 表a,表b WHERE a.id = b.id(+);
数据少的那一方放一个+即可


//SQL99语法
SELECT 字段 FROM 表a(员工表) LEFT JOIN 表b ON 连接条件; 

右外连接(右上图)

和上面类似

//SQL92语法
SELECT 字段  FROM 表a,表b WHERE a.id(+) = b.id;
数据少的那一方放一个+即可


//SQL99语法
SELECT 字段 FROM 表a(员工表) RIGHT JOIN 表b ON 连接条件; 

左中图

SELECT 字段 FROM 表a(员工表) RIGHT JOIN 表b ON 连接条件 WHERE b.data IS NULL;

右中图

SELECT 字段 FROM 表a(员工表) RIGHT JOIN 表b ON 连接条件 WHERE a.data IS NULL;

UNION关键字的使用

作用:将两个查询到的结果集结合到一起,要求是对应列的数据类型相同.

SQL中的UNION操作符告诉数据库将通过单独的SELECT查询检索到的两个单独的结果集合并为一个结果集,其中包含两个查询返回的行。

注意:数据库不会限制UNION中SELECT查询的复杂性。数据检索查询可以包括JOIN语句、聚合或子查询。通常,UNION用于合并复杂语句的结果。
 

注:不建议使用 union ,因为 union操作设计去重操作,会加大开销,建议使用 union all 操作

满外连接(左下图)


//SQL99
SELECT 字段 FROM 表a(员工表) FULL JOIN 表b ON 连接条件; 

//SQL92 

LEFT JOIN 的语句 UNION ALL b.data IS NULL;

下面几个图都是一样的,不做过多赘述

SQL99新特性

自然连接

(natural join) 可以自动识别两个表相同字段的列做连接

自动识别连接条件

SELECT 字段 FROM 表a(员工表) NATURAL JOIN 表b ;

using(和join配合使用)

SELECT 字段 FROM 表a(员工表) FULL JOIN 表b USING(连接条件);

 

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

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

相关文章

微服务(11)

目录 51.pod的重启策略是什么? 52.描述一下pod的生命周期有哪些状态? 53.创建一个pod的流程是什么? 54.删除一个Pod会发生什么事情? 55.k8s的Service是什么? 51.pod的重启策略是什么? 可以通过命令kub…

47、激活函数 - sigmoid

今天在看一个比较常见的激活函数,叫作 sigmoid 激活函数,它的数学表达式为: 其中,x 为输入,画出图来看更直观一些。 Sigmoid 函数的图像看起来像一个 S 形曲线,我们先分析一下这个函数的特点。 Sigmoid 函数的输出范围在 (0, 1) 之间,并且不等于0或1。 Sigmoid 很明显是…

每日算法打卡:递归实现指数型枚举 day 1

文章目录 原题链接题目描述输入格式输出格式数据范围输入样例:输出样例: 题目分析 原题链接 92. 递归实现指数型枚举 题目难度:简单 题目描述 从 1 ∼ n 1 \sim n 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案…

字节高级Java面试真题

今年IT寒冬,大厂都裁员或者准备裁员,作为开猿节流主要目标之一,我们更应该时刻保持竞争力。为了抱团取暖,林老师开通了《知识星球》,并邀请我阿里、快手、腾讯等的朋友加入,分享八股文、项目经验、管理经验…

240101-5步MacOS自带软件无损快速导出iPhone照片

硬件准备: iphone手机Mac电脑数据线 操作步骤: Step 1: 找到并打开MacOS自带的图像捕捉 Step 2: 通过数据线将iphone与电脑连接Step 3:iphone与电脑提示“是否授权“? >>> “是“Step 4:左上角选择自己的设…

C++程序编译

GCC编译器 文章目录 GCC编译器 源文件 为 Main.cpp 注意cpp文件 一定要用g命令 否则没办法执行 预处理(Pre-Processing):首先会经过预处理器将程序中的预编译指令进行处理,然后把源文件中的注释这些没用的东西都给扬了。 g -E Mai…

数据结构期末复习(3)栈和队列

堆栈(stack) 堆栈(stack)是一种基于后进先出(LIFO,Last In First Out)原则的数据结构。它模拟了现实生活中的堆栈,类似于一摞盘子或一堆书。 堆栈有两个基本操作:入栈&a…

StratifiedKFold解释和代码实现

StratifiedKFold解释和代码实现 文章目录 一、StratifiedKFold是什么?二、 实验数据设置2.1 实验数据生成代码2.2 代码结果 三、实验代码3.1 实验代码3.2 实验结果3.3 结果解释3.4 数据打乱对这种交叉验证的影响。 四、总结 一、StratifiedKFold是什么? …

Serverless Framework:开发无服务器应用的最佳工具 | 开源日报 No.133

serverless/serverless Stars: 45.6k License: MIT 该项目是 Serverless Framework,它是一个命令行工具,使用简单易懂的 YAML 语法部署代码和云基础设施以满足各种无服务器应用程序需求。支持 Node.js、Typescript、Python、Go 等多种编程语言&#xff…

Mysql体系结构一次讲清

Mysql进阶 Mysql体系结构 大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server层 主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内 置函数(如日期、时间、数…

我的512天创作者纪念日总结:高效、高现

文章目录 512天创作者纪念日:2023年的12月31日CSDN的512天消息提醒第一篇文章,最后一篇文章总计847篇文章,每月发文分布512天,各专栏文章统计512天,互动总成绩 512天创作者纪念日:2023年的12月31日 2023年…

概念解析 | Shapley值及其在深度学习中的应用

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:Shapley值及其在深度学习中的应用。 1 背景介绍 在机器学习和数据分析中,理解模型的预测是非常重要的。尤其是在深度学习黑盒模型中,我们往往难以直观地理解模型的预测行为。为…

Filezilla使用

服务端 点击安装包 点击我接受 点击下一步 点击下一步 点击下一步 点击安装即可 配置用户组,点击编辑,出现组点击 点击添加,点击确定即可 配置用户,点击编辑点击用户 点击添加,设置用户名&#xff…

deepfacelive实时换脸教程(2024最新版)

deepfacelive其实操作用法很简单,难的是模型的制作。本帖主要讲deepfacelive(下文简称dflive)软件本身的操作,以及模型怎么从dfl转格式过来,至于模型如何训练才能效果好,请移步教程区,看deepfac…

uniapp 新建组件

1. 新建文件夹 components 文件夹名称必须是 components &#xff0c;否则组件无法自动导入 2. 新建组件 3. 编辑组件 components/logo/logo.vue <template><img src"https://img.alicdn.com/imgextra/i1/O1CN01EI93PS1xWbnJ87dXX_!!6000000006451-2-tps-150-15…

全局异常和自定义异常处理

全局异常GlobalException.java&#xff0c;basePackages&#xff1a;controller层所在的包全路径 import com.guet.score_management_system.common.domian.AjaxResult; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bi…

软件测试/测试开发丨Python 封装 学习笔记

封装的概念 封装&#xff08;Encapsulation&#xff09; 隐藏&#xff1a;属性和实现细节&#xff0c;不允许外部直接访问暴露&#xff1a;公开方法&#xff0c;实现对内部信息的操作和访问 封装的作用 限制安全的访问和操作&#xff0c;提高数据安全性可进行数据检查&#x…

进程互斥的软件实现方法-第二十六天

目录 前言 单标志法&#xff08;谦让&#xff09; 双标志先检查法&#xff08;表达意愿&#xff09; 双标志后检查法&#xff08;表达意愿&#xff09; Peterson算法&#xff08;集大成者&#xff09; 本节思维导图 前言 单标志法、双标志的先后检查法中&#xff0c;如果…

服务器的TCP连接限制:如何优化并提高服务器的并发连接数?

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff09;&#xff0c;发送【资料】可领取 深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景、中间件系列…

Unity坦克大战开发全流程——1)需求分析

实践项目&#xff1a;需求分析 该游戏共有三个主要部分&#xff1a;UI、数据储存、核心游戏逻辑&#xff0c;下面我们将从开始场景、游戏场景、结束场景三个角度切入进行分析。