温习mysql函数 连接查询

字符串

1、CONCAT(S1,S2,...Sn) :字符串拼接,将S1 S2 ... Sn 拼接成一个字符串】
2、LOWER(str) :将字符串str全部转为小写
3、UPPER(str) :将字符串str全部转为大写
4、LPAD(str,n,pad):  左填充,用字符串pad对 str 的左边进行填充,达到 n 个字符
串长度
5、RPAD(str,n,pad): 右填充,用字符串pad str 的右边进行填充,达到 n 个字符
串长度
6、TRIM(str): 去掉字符串头部和尾部的空格
7、SUBSTRING(str,start,len): 返回从字符串str start 位置起的 len 个长度的字符

数值函数

1、CEIL(x): 向上取整
2、FLOOR(x): 向下取整
3、MOD(x,y): 返回x/y 的模
4、RAND(): 返回0~1 内的随机数
5、ROUND(x,y): 求参数x 的四舍五入的值,保留 y 位小数

日期函数

1、CURDATE():返回当前日期
2、CURTIME():返回当前时间
3、NOW():返回当前日期和时间
4、YEAR(date):获取指定date 的年份
5、MONTH(date):获取指定date 的月份
6、DAY(date):获取指定date 的日期
7、DATE_ADD(date, INTERVAL expr type) : 返回一个日期/ 时间值加上一个时间间隔 expr 后的时间值
例: select date_add(now(), INTERVAL 70 YEAR );  //基于现在的时间增加70年
8、DATEDIFF(date1,date2):返回起始时间date1 和 结束时间 date2 之间的天数

流程函数

1、IF(value , t , f) :如果value true ,则返回 t ,否则返回 f
2、IFNULL(value1 , value2):如果value1 不为空,返回 value1 ,否则返回value2
3、CASE WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END:如果val1 true ,返回 res1 ... 否则返回default 默认值
4、CASE [ expr ] WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END:如果expr 的值等于 val 返回
res1 ... 否则返回 default 默认值
演示如下:
if
select if( false , 'Ok' , 'Error' );
 ifnull
select ifnull( 'Ok' , 'Default' );
select ifnull( '' , 'Default' );
select ifnull( null , 'Default' );
case when then else end
需求 : 查询 emp 表的员工姓名和工作地址 ( 北京 / 上海 ----> 一线城市 , 其他 ----> 二线城市 )
具体的 SQL 语句如下 :
select
name,
( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else
'二线城市' end ) as '工作地址'
from emp;create table score(
id int comment 'ID',
name varchar(20) comment '姓名',
math int comment '数学',
english int comment '英语',
chinese int comment '语文'
) comment '学员成绩表';
insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67, 88, 95
), (2, 'Rose' , 23, 66, 90),(3, 'Jack', 56, 98, 76);select
id,
name,
(case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end )
'数学',
(case when english >= 85 then '优秀' when english >=60 then '及格' else '不及格'
end ) '英语',
(case when chinese >= 85 then '优秀' when chinese >=60 then '及格' else '不及格'
end ) '语文'
from score;

 连接查询

内连接:
        相当于查询A B 交集部分数据
外连接:
        左外连接:查询左表所有数据,以及两张表交集部分数据
        右外连接:查询右表所有数据,以及两张表交集部分数据
        自连接:当前表与自身的连接查询,自连接必须使用表别名
内连接

隐式内连接
      SELECT 字段列表 FROM 1 , 2 WHERE 条件 ... ;
显示内连接
        SELECT 字段列表 FROM 1 [ INNER ] JOIN 2 ON 连接条件 ... ;
外连接
左外连接

左外连接相当于查询表1(左表)的所有数据,当然也包含表1和表2交集部分的数据。

SELECT 字段列表 FROM 1 LEFT [ OUTER ] JOIN 2 ON 条件 ... ;
右外连接
右外连接相当于查询表 2( 右表 ) 的所有数据,当然也包含表 1 和表 2 交集部分的数据。
SELECT 字段列表 FROM 1 RIGHT [ OUTER ] JOIN 2 ON 条件 ... ;
案例 :
查询 emp 表的所有数据 , 和对应的部门信息,由于需求中提到,要查询emp 的所有数据,所以是不能内连接查询的,需要考虑使用外连接查询。
表结构 : emp, dept
连接条件 : emp.dept_id = dept.id
select e.*, d.name from emp e left outer join dept d on e.dept_id = d.id;
select e.*, d.name from emp e left join dept d on e.dept_id = d.id;

 查询dept表的所有数据, 和对应的员工信息

select d.*, e.* from emp e right outer join dept d on e.dept_id = d.id;
select d.*, e.* from dept d left outer join emp e on e.dept_id = d.id;
自连接
自连接查询,顾名思义,就是自己连接自己,也就是把一张表连接查询多次。我们先来学习一下自连接
的查询语法:
SELECT 字段列表 FROM A 别名 A JOIN A 别名 B ON 条件 ... ;

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

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

相关文章

springboot 整合quartz定时任务

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pom的配置1.加注解 二、使用方法1.工程图2.创建工具类 三、controller 实现 前言 提示:这里可以添加本文要记录的大概内容: 提示&a…

实现拖动标题栏窗口恢复+窗口跟着鼠标移动

窗口跟着鼠标移动 1.重写鼠标按下事件,记录鼠标在窗口中的相对位置 2.重写鼠标移动事件,调用move方法使得窗口移动到鼠标的位置(调用globalPos方法获取鼠标的位置) 3.注意点:移动时鼠标的位置还要减去一开始的相对位…

一文带你全面了解RAID技术:从基础到进阶的全景解析

一、引言 在如今这个数据爆炸的时代,数据的存储和安全性显得尤为重要。RAID技术作为一种将多块硬盘组合成一个逻辑单元,以实现数据冗余和性能优化的技术,被广泛应用于企业级和个人数据存储中。本文将对RAID的常见级别进行详细解析&#xff0…

[C语言]第九节 函数一基础知识到高级技巧的全景探索

目录 9.1 函数的概念 9.2 库函数 9.2.1 标准库与库函数 示例:常见库函数 9.2.2 标准库与头文件的关系 参考资料和学习工具 如何使用库函数 ​编辑 9.3 ⾃定义函数 9.3.1 函数的语法形式 9.3.2函数的举例 9.4 实参与形参 9.4.1 什么是实参? 9…

影刀RPA实战:网页爬虫之CSDN博文作品数据

今天我们使用影刀来采集网页数据,影刀RPA是一款功能强大的自动化办公软件,它可以模拟人工的各种操作,帮助企业自动处理大量重复性、有逻辑规则的工作。影刀RPA在网页数据采集方面表现出色,能够实现对任何桌面软件、Web程序的自动化…

NeMo Curator 整理用于 LLM 参数高效微调的自定义数据集

目录 概述 预备知识 定义自定义文档构建器 下载数据集 解析和迭代数据集 将数据集写入 JSONL 格式 使用文档构建器加载数据集 使用现有工具统一 Unicode 格式 设计自定义数据集过滤器 编辑所有个人识别信息 添加指令提示 整合管线 概述 出于演示目的,本…

6芯7芯可旋转电连接器航空插头

概述 可旋转电航空插头是一种能够在旋转或相对运动的部件间稳定传输电气信号或电源的装置,广泛应用于航空航天、自动化设备、医疗设备等多个领域。它的核心在于精密的接触系统,由旋转端和固定端两部分组成,通过金属触点或导电环实现电气连接。…

哪些网站用python开发

国内的话,知乎,网易,腾讯,搜狐,金山,豆瓣这些属于用Python比较知名的。大型的项目的话,网易的许多游戏,腾讯的某些网站,搜狐的邮箱,金山的测试框架等等都是或…

实习期间git的分枝管理以及最常用的命令

各位找工作实习的友友在工作之前一定要把git的相关知识掌握呀,我实现期间被leader说过关于git规范的相关问题了 目前已更新系列: 当前::实习期间git的分枝管理以及最常用的命令 Redis高级-----持久化AOF、RDB原理 Redis高级---面试总结5种…

【JavaEE初阶】多线程(4)

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 线程安全的 第四个原因 代码举例: 分析原因 解决方法 方法1 方法2 wait(等待)和notify(通知) wait和sleep区别 线程安全的 第四个原因 内存可见性,引起的线程安全问…

springboot3.X版本集成mybatis遇到的问题

由于我本地springboot为3.x版本,如下图所示,最新版本 当我参照如下搜索的内容去集成mybatis的时候,会出现各种各样的报错 最根本的原因是搜出来的配置是参照springboot2.X版本,当我们使用springboot3.x版本之后,需要配…

JVM 垃圾回收机制和GC案例分析

1. 引言 Java 虚拟机(JVM)的垃圾回收(Garbage Collection, GC)机制,是自动内存管理的重要组成部分。它通过回收不再使用的对象,避免手动释放内存的麻烦。然而,随着系统复杂性的增加&#xff0c…

4.C_数据结构_队列

概述 什么是队列: 队列是限定在两端进行插入操作和删除操作的线性表。具有先入先出(FIFO)的特点 相关名词: 队尾:写入数据的一段队头:读取数据的一段空队:队列中没有数据,队头指针 队尾指针满队&#…

劳特巴赫ICD调试器CMM调用烧录框架固件研究之C语言版本

接到客户一个项目是基本GD32F301C8XX的,尝试用手上的劳特巴赫仿真器对它进行开发操作,发现总是提示“FLASH algorithm did not execute completely” 怀疑是底层调用用烧录固件“~~/demo/arm/flash/word/stm32f300.bin”与芯片不兼容造成的,于是有了这编研究文档,多的不说直…

Spring4-IoC2-基于注解管理bean

目录 开启组件扫描 使用注解定义bean Autowired注入 场景一:属性注入 场景二:set注入 场景三:构造方法注入 场景四:形参注入 场景五:只有一个构造函数,无注解 场景六:Autowired和Quali…

Tcl lnit error: Can’t find a usable init.tcl in the following directories 问题解决

这个问题出现在我用py2exe打包了一个包含tkinter的图形化界面,在当前电脑上运行无问题,在移动到新电脑上后提示报错、 这里吐槽一下,新电脑上报错信息一闪而过,我用的土法子解决的,就是录视频然后0.25倍速度暂定找到报…

Acrobat 9 安装教程

软件介绍 Adobe Acrobat 是由Adobe公司开发的一款PDF(Portable Document Format,便携式文档格式)编辑软件。借助它,可以以PDF格式制作和保存文档,以便于浏览和打印,同时还可以使用一些高级工具来创建、编辑…

Qt 菜单栏、工具栏、状态栏、标签、铆接部件(浮动窗口) 设置窗口核心部件(文本编辑控件)的基本使用

效果 代码 #include "mainwindow.h" #include "ui_mainwindow.h" #include<QToolBar> #include<QDebug> #include<QPushButton> #include<QStatusBar> #include<QLabel> #include<QDockWidget> #include<QTextEdi…

将事物分为三教九流?不妨通过logistic回归

和多元线性回归一样&#xff0c;逻辑回归也是建立“多对一”型变量之间的线性关系——也即找出线性方程的近似解。有所不同的是&#xff0c;逻辑回归的解只能出现0~1之间&#xff08;亦或就是0/1两种结果&#xff09;&#xff0c;这倒是有点像bool型和int型之间的区别了。实际上…

S32K3 工具篇7:如何使用VScode编译EB MCAL工程

S32K3 工具篇7&#xff1a;如何使用VScode编译EB MCAL工程 1. VScode工具与配置2. 使用VScode编译RTD MCAL工程2.1 使用EB tresos生成配置2.2 VScode 打开工程2.3 修改mk文件2.4 编译文件2.5 debug生成好的elf文件 对于EB配置的MCAL代码&#xff0c;通常是基于RTD去做&#xff…