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

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.mfbz.cn/a/278994.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

听GPT 讲Rust源代码--src/tools(34)

File: rust/src/tools/clippy/clippy_lints/src/collection_is_never_read.rs 文件"collection_is_never_read.rs"位于Rust源代码中的clippy_lints工具中,其作用是检查在集合类型(如Vec、HashMap等)的实例上执行的操作是否被忽略了…

大模型系列:OpenAI使用技巧_使用OpenAI进行K-means聚类

文章目录 1. 使用K-means算法找到聚类2. 聚类中的文本样本和聚类的命名让我们展示每个聚类中的随机样本。 我们使用一个简单的k-means算法来演示如何进行聚类。聚类可以帮助发现数据中有价值的隐藏分组。数据集是在 Get_embeddings_from_dataset Notebook中创建的。 # 导入必要…

共享单车之数据分析

文章目录 第1关:统计共享单车每天的平均使用时间第2关:统计共享单车在指定地点的每天平均次数第3关:统计共享单车指定车辆每次使用的空闲平均时间第4关:统计指定时间共享单车使用次数第5关:统计共享单车线路流量 第1关…

RO-NeRF论文笔记

RO-NeRF论文笔记 文章目录 RO-NeRF论文笔记论文概述Abstract1 Introduction2 Related Work3 Method3.1 RGB and depth inpainting network3.2 Background on NeRFs3.3 Confidence-based view selection3.4 Implementation details 4 Experiments4.1 DatasetsReal ObjectsSynthe…

kafka实现延迟消息

背景 我们知道消息中间件mq是支持延迟消息的发送功能的,但是kafka不支持这种直接的用法,所以我们需要独立实现这个功能,以下是在kafka中实现消息延时投递功能的一种方案 kafka实现延时消息 主要的思路是增加一个检测服务,这个检…

2011年AMC8数学竞赛中英文真题典型考题、考点分析和答案解析

今天是2023年12月30日,距离2024年元旦新年还有2天时间,先预祝所有的读者和小读者想今年工作、学习进步!幸福平安! 今天距离2024年1月19日的AMC8正式比赛只有20天的时间,我们继续来看AMC8竞赛的历年真题典型考题和解析…

Stable Diffusion WebUI安装合成面部说话插件SadTalker

SadTalker可以根据一张图片、一段音频,合成面部说这段语音的视频。图片需要真人或者接近真人。 安装ffmpeg 下载地址: https://www.gyan.dev/ffmpeg/builds/ 下载ffmpeg-git-full.7z 后解压,将解压后的目录\bin添加到环境变量的Path中。 在…

MR实战:统计总分与平均分

文章目录 一、实战概述二、提出任务三、完成任务(一)准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录 (二)实现步骤1、创建Maven项目2、添加相关依赖3、创建日志属性文件4、创建成绩映射器类5、创建成绩驱动器类6、启…

计算每个月的天数

大家好呀,今天的每日一题来喽。准备好了吗亲。上车上车!!! 文章目录 目录 文章目录 题目重现 输⼊y和m两个整数,y表⽰年份,m表⽰⽉份,计算y年m⽉有多少天,并输出天数。 一、解法思路…

LLM之RAG实战(十一)| 使用Mistral-7B和Langchain搭建基于PDF文件的聊天机器人

在本文中,使用LangChain、HuggingFaceEmbeddings和HuggingFace的Mistral-7B LLM创建一个简单的Python程序,可以从任何pdf文件中回答问题。 一、LangChain简介 LangChain是一个在语言模型之上开发上下文感知应用程序的框架。LangChain使用带prompt和few-…

Transformer(seq2seq、self-attention)学习笔记

在self-attention 基础上记录一篇Transformer学习笔记 Transformer的网络结构EncoderDecoder 模型训练与评估 Transformer的网络结构 Transformer是一种seq2seq 模型。输入一个序列,经过encoder、decoder输出结果也是一个序列,输出序列的长度由模型决定…

基于MINIST的手写数字体识别

一、算法简述 网络结构设计 通过创建MnistNet类,定义了包含两个卷积层和两个全连接层的深度神经网络。这个网络的设计灵感来自于经典的CNN结构,其中卷积层用于提取图像特征,而全连接层则用于将这些特征映射到最终的类别。 卷积与池化 卷…

在 Golang 应用程序中管理多个数据库

掌握在 Golang 项目中处理多个数据库的艺术 在当前软件开发领域中,处理单个应用程序内的多个数据库的需求越来越普遍。具有强大功能的 Golang 是处理此类任务的绝佳解决方案,无论您是与多个数据源合作还是仅为增强组织和可扩展性而分隔数据。在本文中&a…

网络安全应急响应工具之-流量安全取证NetworkMiner

在前面的一些文章中,用了很多的章节介绍流量分析和捕获工具wireshark。Wireshark是一款通用的网络协议分析工具,非常强大,关于wireshark的更多介绍,请关注专栏,wireshark从入门到精通。本文将介绍一个专注于网络流量取…

JavaEE - 网络编程之回显服务器

目录 一.什么是回显服务器? 二.UDP是什么? 1.TCP 是有链接的, UDP 是无连接的 2.TCP是可靠传输的,UDP是不可靠传输的 3.TCP是面向字节流的,UDP是面向数据报 4.TCP和UDP是全双工的 三.UDP的 socket api 四. 具体代码实现 …

NModbus-一个C#的Modbus协议库实现

NModbus-一个基于C#实现的Modbus通信协议库 最近在学习C#的时候,因为之前做过环保设备时使用C做过环保设备采集使用到了Modbus协议,当时看了一下基于C语言开发的libmodbus库。所以特意搜索看了一下C#下有什么Modbus协议库,在Github上面找了一…

Spring Boot学习随笔- 集成MyBatis-Plus,第一个MP程序(环境搭建、@TableName、@TableId、@TableField示例)

学习视频:【编程不良人】Mybatis-Plus整合SpringBoot实战教程,提高的你开发效率,后端人员必备! 引言 MyBatis-Plus是一个基于MyBatis的增强工具,旨在简化开发,提高效率。它扩展了MyBatis的功能,提供了许多实用的特性,…

数据缓存(Redis, Spring Cache)——后端

场景:给用户端展示的数据都是通过查询数据库所得,因此数据库访问压力会随着用户访问量增大而增加,从而导致系统响应慢、用户体验差。 方法:通过Redis缓存数据,减少查询数据库操作。(Redis的数据是存储在内存…

vue中常见的指令

简单介绍一下常见的vue中用到的指令 v-on 指定当前的事件&#xff0c;语法糖为&#xff0c;如例子所示&#xff0c;指定按钮的事件为addCounter&#xff0c;点击会使变量counter 1 <!DOCTYPE html> <html><head><meta charset"utf-8" />…
最新文章