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表联合查询,把所有的成绩都显示出来,即使这个成绩没有学生与它对应,也要显示出来。

相关文章:
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外连接…...
【VUE·疑难问题】定义 table 中每行的高度(使用 element-UI)
一、如何定义 table 中每一行的 height ? 1.table例子 <!-- 二、table --><div style"overflow: hidden;display: block;height: 68vh;width: 100%;"><el-table stripe show-header style"width: 100%" :data"tableData&q…...
【重拾C语言】四、循环程序设计(后判断条件循环、先判断条件循环、多重循环;典例:计算平均成绩、打印素数、百钱百鸡问题)
目录 前言 四、循环程序设计 4.1 计算平均成绩——循环程序 4.1.1 后判断条件的循环 a. 语法 b. 典例 4.1.2 先判断条件的循环 a. 语法 b. 典例 4.1.3 for语句 a. 语法 b. 典例 4.2 计算全班每人平均成绩—多重循环 4.2.1 打印100以内素数 4.2.2 百钱百…...
Linux 安装 Gitlab
1、到官网下载Gitlab安装包 (如果是Centos,到el目录下载)。下载GitLab 2、安装依赖软件 sudo yum install -y policycoreutils-python3、安装gitlab sudo rpm -i gitlab-jh-16.3.4-jh.0.el7.x86_64.rpm 4、修改 gitlab.rb sudo vi /etc/gitlab/gitlab.rb 5、g…...
stm32-SPI协议
SPI协议详解(图文并茂超详细) SPI通讯协议 于是我们想有没有更好一点的串行通讯方式;相比较于UART,SPI的工作方式略有不同。 SPI是一个同步的数据总线,也就是说它是用单独的数据线和一个单独的时钟信号来保证发送端和…...
想要精通算法和SQL的成长之路 - 并查集的运用和案例(省份数量)
想要精通算法和SQL的成长之路 - 并查集的运用 前言一. 并查集的使用和模板1.1 初始化1.2 find 查找函数1.3 union 合并集合1.4 connected 判断相连性1.5 完整代码 二. 运用案例 - 省份数量 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 并查集的使用和模板 先说一下并查集…...
解决内网拉取企微会话存档代理问题的一种办法
问题:客户的服务都是内网的,不能直接访问外网;访问外网的话需要走kong网关才能出去。 会话存档官网说可以使用socket5、http方式拉取会话存档;我这边尝试了直接使用kong网关的ip和端口配置进去,是访问不了的 我后面就…...
二十二,加上各种贴图
使用pbr的各种贴图,albedo,金属度,ao,法线,粗糙度,可以更好的控制各个片元 1,先加上纹理坐标 texCoords->push_back(osg::Vec2(xSegment, ySegment)); geom->setVertexAttribArray(3, texCoords, osg::Array::BI…...
新版校园跑腿独立版小程序源码 多校版本,多模块,适合跑腿,外卖,表白,二手,快递等校园服务
最新校园跑腿小程序源码 多校版本,多模块,适合跑腿,外卖,表白,二手,快递等校园服务 此版本为独立版本,不需要** 直接放入就可以 需要自己准备好后台的服务器,已认证的小程序…...
SpringBoot banner 样式 自动生成
目录 SpringBoot banner 样式 自动生成 图案网站: 1.第一步创建banner.txt文件 2.访问网站Ascii艺术字实现个性化Spring Boot启动banner图案,轻松修改更换banner.txt文件内容,收集了丰富的banner艺术字和图,并且支持中文banner下…...
回收站里面删除的照片如何恢复?
现在拍照已经成为人们生活中的一种方式,照片为我们保留了许多珍贵而美好的回忆。大家通常会把重要的照片保存在硬盘里,但当不小心把照片移入回收站并彻底删除时,情况就有点糟糕了。那么,回收站里删除的照片还有办法恢复吗…...
Qt model/view 理解 2
这是我对 Qt 的 model/view 内容理解的第二篇 blog,在第一篇文章中,介绍 QTableView 和 QAbstractTableModel,实现显示了对数据源的显示,但是显示的格式和修改的模式都是按照 View 控件的自显示方式。在此,使用 Qt 自带…...
【LeetCode热题100】--114.二叉树展开为链表
114.二叉树展开为链表 方法一:对二叉树进行先序遍历,得到各个节点被访问到的顺序,利用数组存储下来,然后在先序遍历之后更新每个节点的左右节点的信息,将二叉树展开为链表 /*** Definition for a binary tree node.* …...
Java | Maven(知识点查询)
文章目录 Maven知识速查1. Maven概述2. Maven的作用3. Maven的下载4. Maven的环境配置5. Maven 的基础组成5.1 Maven仓库5.1.1 本地仓库配置:5.1.2 中央仓库配置:5.1.3 镜像仓库配置 5.2 Maven坐标 6. Maven项目6.1 手工创建Maven项目6.2 自动构建项目 7…...
Vmware 静态网络配置
概述 仅主机模式(VMware1):使用host-only的方式是不能和外界通信的,只能够和本机的物理网卡通信 桥接(VMnet0):使用桥接的方式使得自己的虚拟机和自己的真实机网卡在同一个网段 NAT࿰…...
【数据结构--八大排序】之希尔排序
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...
Linux中生成so库的文件引用另一个so库问题的解决
文章目录 一、问题介绍二、问题解决 一、问题介绍 由于项目需求,需要将一个“编译时引用了另一个动态链接库”的文件(名为main.c),再编译成一个动态链接库。 简要说明一下,即原本的项目代码里,包含main.c…...
EDI是连接原始电子商务和现代电子商务的纽带
EDI是连接原始电子商务和现代电子商务的纽带。 EDI(Electronic Data Interchange,电子数据交换)是一种电子通信技术,用于在不同组织之间以结构化和标准化的方式交换业务文档和数据。EDI使企业能够更有效地与供应商、客户和合作伙…...
星宿UI2.4资源付费变现小程序源码 支持流量主
第一个小程序为星宿小程序 目前是最新版2.0 搭建星宿需要:备用域名 服务器 微信小程序账号 功能:文章展示 文章分类 资源链接下载 轮播图 直接下载附件功能 很多 很适合做资源类分享 源码下载:https://download.csdn.net/download/m0_6604…...
代码随想录训练营二刷第四十六天 | 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ
代码随想录训练营二刷第四十六天 | 518. 零钱兑换 II 377. 组合总和 Ⅳ 一、518. 零钱兑换 II 题目链接:https://leetcode.cn/problems/coin-change-ii/ 思路:完全背包求组合数,递推公式dp[j]dp[j-nums[i]]。 求组合数,物品在外…...
Laravel Backup隔离模式详解:多服务器环境下的终极安全备份方案
Laravel Backup隔离模式详解:多服务器环境下的终极安全备份方案 【免费下载链接】laravel-backup A package to backup your Laravel app 项目地址: https://gitcode.com/gh_mirrors/la/laravel-backup Laravel Backup包为Laravel应用提供了强大可靠的备份解…...
Angular Flex-Layout终极指南:掌握fxLayout、fxFlex、fxLayoutAlign核心指令
Angular Flex-Layout终极指南:掌握fxLayout、fxFlex、fxLayoutAlign核心指令 【免费下载链接】flex-layout Provides HTML UI layout for Angular applications; using Flexbox and a Responsive API 项目地址: https://gitcode.com/gh_mirrors/fl/flex-layout …...
DALL-E2-pytorch训练日志完全解读指南:如何从loss曲线判断模型健康状态
DALL-E2-pytorch训练日志完全解读指南:如何从loss曲线判断模型健康状态 【免费下载链接】DALLE2-pytorch Implementation of DALL-E 2, OpenAIs updated text-to-image synthesis neural network, in Pytorch 项目地址: https://gitcode.com/gh_mirrors/da/DALLE2…...
用ChatTTS打造你的专属AI语音助手:从音色定制到批量合成音频的完整工作流
用ChatTTS打造你的专属AI语音助手:从音色定制到批量合成音频的完整工作流 在内容创作领域,音频正成为越来越重要的媒介形式。无论是知识付费课程的讲解、播客节目的制作,还是智能设备的语音交互,一个稳定、个性化的语音合成系统都…...
IT 流程越来越完整,但管理反而变得更难了
在很多企业的 IT 管理过程中,一个非常明显的趋势是:流程在不断增加。 从最初的简单问题处理,到后来的事件管理、问题管理、变更管理,再到审批流程、发布流程,各类流程逐渐被建立起来。从管理角度看,这是一种…...
Abp要落地DDD重要的一步
要用到实体之间的依赖关系,也就是聚合根,否则每个实体一个仓储,光一个服务注入就十几个仓储,玩锤子...
League-Toolkit 英雄联盟工具集完整教程:从新手到高手的效率革命
League-Toolkit 英雄联盟工具集完整教程:从新手到高手的效率革命 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在…...
Onekey:Steam游戏清单管理的自动化解决方案 | 玩家与开发者必备工具
Onekey:Steam游戏清单管理的自动化解决方案 | 玩家与开发者必备工具 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 当独立游戏开发者小林第三次因为手动复制Steam App ID出错而导致…...
Tracepoint性能优化揭秘:从DECLARE_EVENT_CLASS看Linux内核如何节省50%内存开销
Tracepoint性能优化揭秘:从DECLARE_EVENT_CLASS看Linux内核如何节省50%内存开销 在Linux内核的性能调优领域,Tracepoint机制作为静态跟踪的核心基础设施,其性能表现直接影响着系统监控和故障诊断的效率。本文将深入剖析DECLARE_EVENT_CLASS共…...
从‘它好慢’到‘真香’:Vite + Vue 3项目实战中那些让你开发效率翻倍的配置技巧
从‘它好慢’到‘真香’:Vite Vue 3项目实战中那些让你开发效率翻倍的配置技巧 如果你正在使用Vite和Vue 3进行开发,却总觉得构建速度不够快、开发体验不够流畅,或者在某些特定功能配置上卡壳,那么这篇文章就是为你准备的。我们将…...
