Mysql内置函数、复合查询和内外连笔记

目录

一、mysql内置函数

1.1.日期函数

1.2.字符串函数

1.3.数学函数

1.4.其他函数

二、复合查询

2.2 自连接

2.3 子查询

2.3.1单行自查询

2.3.2 多行子查询

 2.3.3 多列子查询

2.3.4在from子句中使用子查询

2.3.5合并查询

三、表的内连和外连

3.1内连接

3.2外连接

3.2.1 左外连接

3.2.2右外连接

一、mysql内置函数

1.1.日期函数

 获得时间:

🖊获得年月日:select current_date();

🖊获得时分秒:select current_time();

🖊获得时间戳:select current_timestamp();

🖊在日期的基础上加日期:

🖊在日期的基础上减去时间:

 

🖊计算两个日期之间相差多少天:

 

案例:

创建一个留言表:

插入数据:

显示所有留言信息,发布日期只显示日期,不用显示时间:

 

查询在五分钟内发布的贴子:

 🖊:select *from msg where date_add(sendtime,interval 5 minute)>now();

或🖊:select *from msg where date_sub(now(),interval 5 minute)<sendtime;

理解:

1.2.字符串函数

 案例:

sql获取:码云

案例:

获取emp表的ename列的字符集:

要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”

求学生表中学生姓名占用的字节数:

注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节(与字符集编码有关)。

将emp表中所有名字中有S的替换为‘北京’

截取emp表中ename字段的第二个到第三个字符

 

以首字母小写的方式显示所有员工的姓名:

select concat(lcase(substring(ename,1,1)),substring(ename,2)) from emp;

1.3.数学函数

绝对值:select abs();

向上取整:select ceiling();

向下取整: select floor();

理解:

向上取整简单来说,就是向大的整数方向取整,舍弃小数部分。比如23.04向上取整就是24,-5.9向上取整就是-5.

同理,向下取整是朝着小的整数取整,舍弃小数部分。3.7向下取整是3.-1.3向下取整是-2.

向0取整,是朝0靠拢,5.6向零取整是5,-6.6向0取整是-6

保留n位小数位数:select format(小数,n);

产生随机数:select rand();

mysql中,产生随机数,产生的是0-1的小数。

如果要得到0-100的随机数:

1.4.其他函数

🖊user()查询当前用户

select user();

🖊md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串

通常用于加密。

🖊password()函数,mysql数据库使用该函数对用户进行加密

🖊ifnull(val1,val2)如果val1为null,返回val2,否则返回val1的值。

二、复合查询

2.1.多表查询

实际开发中往往数据来自不同的表,所以需要多表查询。在此借用一个简单的公司管理系统,还是从码云下载。有三张表emp,dept,salgrade来演示如何进行多表查询。

案例:

🖊显示雇员名、雇员工资以及所在部门的名字因为上面的数据来自emp表和dept表,因此要联合查询。

这种结果称为笛卡尔积。

🖊显示部门号为10的部门名,员工名和工资

🖊显示各个员工的姓名,工资,及工资级别

2.2 自连接

自连接是指在同一张表连接查询

案例:员工FORD的上级领导的编号和姓名(mgr是员工领导的编号)

🖊使用的子查询:

🖊使用多表查询(自查询)

2.3 子查询

子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。

2.3.1单行自查询

返回一行记录的子查询

🖊显示SMITH同一部门的员工

2.3.2 多行子查询

 返回多行记录的子查询

🖊in关键字;

查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含自己的。

🖊all关键字;

显示工资比部门30的所有员工的工资高的员工的姓名,工资和部门号

第一种方式,当然可以找出部门30最高的工资,只要比这个工资高即可:

比部门30所有的员工工资高,使用all: 

🖊any关键字:显示工资比部门30的任意一个员工工资高的员工的姓名,工资和部门号

 2.3.3 多列子查询

单行子查询是指子查询只返回单列,单行数据;多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句。

案例: 查询和SMITH的部门和岗位完全相同的所有雇员,不包含SMITH本人。

2.3.4在from子句中使用子查询

子查询语句出现在from子句中。子查询当作一个临时表使用。

🖊显示每个高于自己部门平均工资的员工的姓名、部门、工资、平均工资

🖊查找每个部门工资最高的人的姓名,工资,部门,最高工资。

🖊显示每个部门的信息(部门号,编号,地址)和人员数量

2.3.5合并查询

🖊union

union操作符用于取得两个结果集的并集,当使用该操作符时,会自动去掉结果集中的重复行。

案例:将工资大于2500或职位是MANAGER的人找出来

去掉了重复数据:

🖊union all

该操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。

案例:将工资大于25000或职位是MANAGER的人找出来

三、表的内连和外连

3.1内连接

内连接实际上就是利用where子句对两种表形成的笛卡尔积进行筛选,前面讲述的都是内连接,实际开发过程中使用最多的连接查询。

语法:

        select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;

案例:显示SMITH的名字和部门名称:

之前的写法:

标准的内连接写法:

3.2外连接

外连接分为左外连接和右外连接

3.2.1 左外连接

如果联合查询时左侧的表完全显示我们就说是左外连接。

语法: select 字段名 from 表1 left join 表2 on 连接条件

案例:

建两张表:

🖊查询所有学生的成绩,如果这个学生没有成绩,也要讲学生的个人信息显示出来

--当左边表和右边表没有匹配时,也会显示左边表的数据

3.2.2右外连接

语法:select 字段 from 表1 right join 表2 on 连接条件

案例:对stu表和exam表联合查询,把所有的成绩都显示出来,即使这个成绩没有学生与它对应,也要显示出来。

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

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

相关文章

竞赛选题 深度学习 opencv python 实现中国交通标志识别

文章目录 0 前言1 yolov5实现中国交通标志检测2.算法原理2.1 算法简介2.2网络架构2.3 关键代码 3 数据集处理3.1 VOC格式介绍3.2 将中国交通标志检测数据集CCTSDB数据转换成VOC数据格式3.3 手动标注数据集 4 模型训练5 实现效果5.1 视频效果 6 最后 0 前言 &#x1f525; 优质…

1024 科学计数法

一.问题&#xff1a; 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法&#xff0c;其满足正则表达式 [-][1-9].[0-9]E[-][0-9]&#xff0c;即数字的整数部分只有 1 位&#xff0c;小数部分至少有 1 位&#xff0c;该数字及其指数部分的正负号即使对正数也必定明确…

5分钟入门卷积算法

大家好啊&#xff0c;我是董董灿。 深度学习算法中&#xff0c;尤其是计算机视觉&#xff0c;卷积是无论如何都绕不过去的槛。 初学者看到这个算法后&#xff0c;很多是知其然不知其所以然&#xff0c;甚至不知道这个算法是做什么的&#xff0c;或者很疑惑&#xff0c;为什么…

数据结构-优先级队列(堆)

文章目录 目录 文章目录 前言 一 . 堆 二 . 堆的创建(以大根堆为例) 堆的向下调整(重难点) 堆的创建 堆的删除 向上调整 堆的插入 三 . 优先级队列 总结 前言 大家好,今天给大家讲解一下堆这个数据结构和它的实现 - 优先级队列 一 . 堆 堆&#xff08;Heap&#xff0…

如何使用 Media.io 生成不同年龄的照片

Media.io 是一个在线图片编辑器&#xff0c;提供多种功能&#xff0c;包括照片滤镜、图像裁剪和图像转换。其中&#xff0c;Media.io 的 AI 年龄转换功能可以根据上传的照片&#xff0c;生成不同年龄的照片。 使用 Media.io 生成不同年龄的照片 要使用 Media.io 生成不同年龄…

【word】从正文开始设置页码

在写报告的时候&#xff0c;会要求有封面和目录&#xff0c;各占一页。正文从第3页开始&#xff0c;页码从正文开始设置 word是新建的 分出三节&#xff08;封面、目录、正文&#xff09; 布局--->分割符--->分节符--->下一页 这样就能将word分为3节&#xff0c;分…

Python操作MongoDb创建文档及CRUD基本操作

Python3中类的高级语法及实战 Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案 Python3数据科学包系列(一):数据分析实战 Python3数据科学包系列(二):数据分析实战 Python3数据科学包系列(三):数据分析实战 MongoDB 操作手册----文档…

1797_GNU pdf阅读器evince

全部学习汇总&#xff1a; GreyZhang/g_GNU: After some years I found that I do need some free air, so dive into GNU again! (github.com) 近段时间经历了很多事情&#xff0c;终于想找一点技术上的自由气氛。或许&#xff0c;没有什么比GNU的一些软件探索更适合填充这样的…

电机-电力拖动-振动-应力分析-设备防护知识初步

1.涉及领域和课程&#xff1a; 信号与系统现代自动化原理与应用频谱转换及振动分析材料学基础与应力分析数学建模、仿真与求解工程数学传感器机器学习与模式识别随机信号处理反馈系统文献学DSP应用机器视觉凸优化&#xff0c;数学物理方法 2.教材推荐 豆瓣书单&#xff0c;更…

如何在终端输出颜色

效果演示: 【看 welcome to here 部分】 环境&#xff1a; Node.js 18.16.0 正文部分 我们可以通过 console.log() 在终端打印字符串。 只要在我们的字符串前面加上转义字符即可。 差不多就是下面这样的结构&#xff1a; 用代码就是&#xff1a; console.log("\x1B…

协议栈——收发数据(拼接网络包,自动重发,滑动窗口机制)

目录 协议栈何时发送数据&#xff5e; 数据长度 IP模块的分片功能 发送频率 网络包序号&#xff5e;利用syn拼接网络包ack确认网络包完整 确定偏移量 服务器ack确定收到数据总长度 序号作用 双端告知各自序号 协议栈自动重发机制 大致流程 ack等待时间如何调整 是…

java做个qq机器人

前置的条件 机器人是基于mirai框架实现的。根据官方的文档&#xff0c;建议使用openjdk11。 我这里使用的编辑工具是idea2023 在idea中新建一个maven项目&#xff0c;虽然可以使用gradle进行构建&#xff0c;不过我这里由于网络问题没有跑通。 pom.xml <dependency>&l…

2023年CSP-J真题详解+分析数据

目录 亲身体验 江苏卷 选择题 阅读程序题 阅读程序(1&#xff09; 判断题 单选题 阅读程序(2) 判断题 单选题 阅读程序(3) 判断题 单选题 完善程序题 完善程序(1) 完善程序(2) 2023CSP-J江苏卷详解 小结 亲身体验 2023年的CSP-J是在9月16日9:30--11:30进行…

竞赛选题 深度学习 opencv python 公式识别(图像识别 机器视觉)

文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的数学公式识别算法实现 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学…

【实用工具】谷歌浏览器插件开发指南

谷歌浏览器插件开发指南涉及以下几个方面&#xff1a; 1. 开发环境准备&#xff1a;首先需要安装Chrome浏览器和开发者工具。进入Chrome应用商店&#xff0c;搜索“Extensions Reloader”和“Manifest Viewer”两个插件进行安装&#xff0c;这两个插件可以方便开发和调试。 2…

Win11 安装 Vim

安装包&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Ru7HhTSotz9mteHug-Yhpw?pwd6666 提取码&#xff1a;6666 双击安装包&#xff0c;一直下一步。 配置环境变量&#xff1a; 先配置系统变量中的path&#xff1a; 接着配置用户变量&#xff1a; 在 cmd 中输入…

图的广度遍历-邻接矩阵实现

description 本题要求实现邻接矩阵存储图的广度优先遍历。 函数接口定义&#xff1a; void BFS(MGraph G,Vertex i); 其中MGraph是邻接矩阵存储的图&#xff0c;定义如下&#xff1a; #define MaxVertexNum 10 /定义最大顶点数/ typedef int Vertex;/* 用顶点下标表示顶点,…

这可能是最全的反爬虫及应对方案,再也不怕爬不到数据了

一、什么是反爬虫 网络爬虫&#xff0c;是一个自动提取网页的程序&#xff0c;它为搜索引擎从万维网上下载网页&#xff0c;是搜索引擎的重要组成。但是当网络爬虫被滥用后&#xff0c;互联网上就出现太多同质的东西&#xff0c;原创得不到保护。于是&#xff0c;很多网站开始…

Java项目:高仿12306

github地址&#xff1a;nageoffer/12306: &#x1f525; 官方推荐 &#x1f525; 大学春招、秋招、应届项目&#xff0c;SpringBoot3 Java17 SpringCloud Alibaba Vue3 等技术架构&#xff0c;完成高仿铁路 12306 用户 抢票 订单 支付服务&#xff0c;帮助学生主打就业的…

网站强制跳转至国家反诈中心该怎么办?怎么处理?如何解封?

在互联网环境中&#xff0c;网站安全是非常重要的。然而&#xff0c;在实际操作过程中&#xff0c;不少网站可能因内容问题、技术安全漏洞等原因被迫下线甚至跳转至国家反诈骗中心网址。面对这一严峻问题&#xff0c;我们如何有效解决&#xff0c;让网站恢复运行并解除强制跳转…