当前位置: 首页 > news >正文

MySQL的内置函数复合查询内外连接

文章目录

  • 内置函数
    • 时间函数
    • 字符串函数
    • 数学函数
    • 其他函数
  • 复合查询
    • 多表笛卡尔积
    • 自连接
    • 在where中使用子查询
    • 多列子查询
    • 在from中使用子查询
  • 内连接
  • 外连接
    • 左外连接
    • 右外连接

内置函数

时间函数

函数描述
current_date()当前日期
current_time()当前时间
current_timestamp()当前时间戳
date(datetime)返回datetime参数的日期部分
date_add(date, interval val)在date中加上参数的日期或时间
date_sub(date, interval val)在date中加上参数的日期或时间
datediff(date1, date2)返回两个日期之间的时间差,单位为天
now()当前日期和时间

image-20230902055611224

字符串函数

函数描述
charset(str)返回字符串的字符集
concat(str2 [, …])连接字符串
instr(string, ch)返回ch在string中出现的位置,没有返回0
ucase(str)转换为大写
lcase(str)转换为小写
left(str, length)从str中的左边起取length个字符
length(str)str的长度
replace(string, str, replace_str)在string中用replace_str替换str
strcmp(str1, str2)逐字符比较两字符串的大小
substring(str, pos [, length])从str的pos开始取length个字符
ltrim(str) rtrim(str) trim(str)去除前空格或者后空格
select concat(name, '的语文是',chinese,'分,数学是',math,'分') as '分数' from
student;

数学函数

函数描述
abs(num)绝对值函数
bin(num)十进制转换二进制
hex(num)转换为十六进制
conv(num, from_base, to_base)进制转换
ceiling(num)向上去整
floor(num)向下去整
format(num, decimal_places)格式化,保留小数位数
rand()返回随机浮点数,范围[0.0, 1.0)
mod(num, denominator)取模,求余

向上去整:往上找比数值大的最小整数

向下去整:往下找比数值小的最大整数

0向去整:找比数值更靠近0的并且里数值最近的整数

其他函数

函数描述
user()查询当前用户
md5(str)对一个字符串进行md5摘要,摘要后得到一个32为字符串
database()显示当前正在使用的数据库
password()对用户加密
ifnull(val1, val2)如果val1为null,返回val2, 否则返回val1

复合查询

为了更好演示效果,演示的数据库中有三张表, emp(员工信息)、dept(部门信息)、salgrad(薪资信息)

多表笛卡尔积

如果想要查询的结果需要多张表结合才能搜索出,则可以直接多表结合去查询。

需要注意,如果查询的列中有大于一张表拥有同名的列信息则需要指明表

image-20230902192332359

可以看到如图的写法就会出现很多重复的员工信息,这是因为直接结合的话会把所有表的数据都结合进去,这样并不符合实际场景。

因此可以加上筛选条件,因为两张表是具有外键关联的,所以可以使用外键的列作为结合的条件

image-20230902192616487

自连接

并不需要有多张真实存在的物理属性的表才可以结合,因为单张表操作得出的结果也可以看作是一张表,在MySQL中一切皆为表结构,所以单张表得出的虚拟表也可以和其本身去结合

不过需要注意如果使用自连接需要对表进行不同的别名,这样系统才能分辨出区别

例如:找出名为SMITH的员工的上级领导的编号和姓名(mgr是员工领导的编号–empno)

image-20230902193239466

在where中使用子查询

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

例如:显示SMITH同一部门的员工

image-20230902193358516

例如:查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号

image-20230902193744471

其中关键字in的作用是,查询集合是否包含了该条件

例如:显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号

image-20230902194108556

其中关键字all表示:集合中的所有数据

例如:显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号

image-20230902194242129

其中关键字any表示:集合中的任意一个数据

多列子查询

这是只使用一列作为子查询的条件,也可以同时使用多列作为查询条件

多列子查询是指查询返回多个列数据的子查询语句

例如:查询和SMITH的部门和岗位完全相同的所有雇员

image-20230902194449792

在from中使用子查询

子查询语句出现在from子句中。这里要用到数据查询的技巧,把一个子查询当做一个临时表使用

例如:**查找每个部门工资最高的人的姓名、工资、部门、最高工资 **

image-20230902194848868

内连接

内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选

select 字段 from1 inner join2 on 连接条件 and 其他条件;

image-20230903102545320

外连接

左外连接

左侧的表完全显示就是左外连接,如果右侧的表不对应左侧的表则为NULL

image-20230903102802543

右外连接

右侧的表完全显示就是右外连接,如果左侧的表不对应右侧的表则为NULL

image-20230903102902319

相关文章:

MySQL的内置函数复合查询内外连接

文章目录 内置函数时间函数字符串函数数学函数其他函数 复合查询多表笛卡尔积自连接在where中使用子查询多列子查询在from中使用子查询 内连接外连接左外连接右外连接 内置函数 时间函数 函数描述current_date()当前日期current_time()当前时间current_timestamp()当前时间戳…...

操作系统(OS)与系统进程

操作系统(OS)与系统进程 冯诺依曼体系结构操作系统(Operator System)进程基本概念进程的描述(PCB)查看进程通过系统调用获取进程标示符(PID)通过系统调用创建进程(fork)进程状态&…...

防重复提交:自定义注解 + 拦截器(HandlerInterceptor)

防重复提交:自定义注解 拦截器(HandlerInterceptor) 一、思路: 1、首先自定义注解; 2、创建拦截器实现类(自定义类名称),拦截器(HandlerInterceptor); 3…...

Excel中将文本格式的数值转换为数字

在使用excel时,有时需要对数字列进行各种计算,比如求平均值,我们都知道应该使用AVERAGE()函数,但是很多时候结果却“不尽如人意”。 1 问题: 使用AVERAGE函数: 结果: 可以看到单元格左上角有个…...

uni-app开发小程序中遇到的map地图的点聚合以及polygon划分区域问题

写一篇文章来记录以下我在开发小程序地图过程中遇到的两个小坑吧,一个是点聚合,用的是joinCluster这个指令,另一个是polygon在地图上划分多边形的问题: 1.首先说一下点聚合问题,由于之前没有做过小程序地图问题&#…...

【笔记】软件测试的艺术

软件测试的心理学和经济学 测试是为发现错误而执行程序的过程,所以它是一个破坏性的过程,测试是一个“施虐”的过程。 软件测试的10大原则 1、测试用例需要对预期输出的结果有明确的定义 做这件事的前提是能够提前知晓需求和效果图,如果不…...

配置本地maven

安装maven安装包 修改环境变量 vim ~/.bash_profile export JMETER_HOME/Users/yyyyjinying/apache-jmeter-5.4.1 export GOROOT/usr/local/go export GOPATH/Users/yyyyjinying/demo-file/git/backend/go export GROOVY_HOME/Users/yyyyjinying/sortware/groovy-4.0.14 exp…...

C# 按钮的AcceptButton和CancelButton属性

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System...

SMT贴片制造:专业、现代、智能的未来之选

在现代科技的快速发展下,SMT贴片制造作为电子元器件的核心工艺之一,正以其专业、现代和智能的特点成为未来的首选。 随着电子产品越来越小型化,传统的手工焊接已经无法满足高速、高精度、高稳定性的要求。而SMT贴片制造作为一种先进的表面贴…...

python sqlalchemy db.session 的commit()和colse()对session中的对象的影响

实验一:commit()之后查看stu的属性id,查看db.session是否改变 db_test.route("/db_test",methods["GET"]) def db_test():stuStuTest()stu.stu_age22stu.stu_name"nnannns"stu.stu_class11print("sessio…...

python读取图像小工具

一、和图像交互获得图像的坐标和像素值 import cv2 import numpy as np import signal import threading import timeif __name__ __main__:img cv2.imread(XXX,0)#读取图片font_face,font_scale,thicknesscv2.FONT_HERSHEY_SIMPLEX,0.5,1#鼠标交互def mouseHandler(event,x…...

【ES6】JavaScript中Reflect

Reflect是JavaScript中的一个内建对象,它提供了一组方法,用于对对象和函数进行操作和检查。这些方法与内建对象的方法非常相似,但具有更高的灵活性。 以下是Reflect对象的一些常用方法: 1、Reflect.apply(target, thisArgument,…...

Ajax + Promise复习简单小结simple

axios使用 先看看老朋友 axios axios是基于Ajaxpromise封装的 看一下他的简单使用 安装:npm install axios --save 引入:import axios from axios GitHub地址 基本使用 axios({url: http://hmajax.itheima.net/api/province}).then(function (result…...

WebDAV之π-Disk派盘 + 小书匠

小书匠是一款功能丰富,强大的知识管理工具。全平台覆盖,离线数据存储,自定义数据服务器,所见即所得的 markdown 编辑体验。 小书匠提供了多种实用的编辑模式,例如:栏编辑、双栏编辑、三栏编辑、全屏写作、全屏阅读等。并且该软件还提供了许多有用的扩展语法,比如Latex公…...

LTE ATTACH流程、PDN流程、PGW地址分配介绍

1、S-GW\P-GW选择 MME根据S-GW和P-GW的拓扑信息进行S-GW/P-GW的选择,在S-GW的候选序列和P-GW的候选序列中比较,寻找是否有合一的S-GW/P-GW,并且根据S-GW的优先级和权重信息进行排序,得到S-GW/P-GW的候选组。 2、SGW>PGW连接 PD…...

SQL sever中用户管理

目录 一、用户管理常见方法 二、用户管理方法示例 2.1. 创建登录账户: 2.1.1 检查是否创建账户成功: 2.2. 创建数据库用户: 2.2.1检查用户是否创建成功: 2.3. 授予权限: 2.3.1授予 SELECT、INSERT 和 U…...

linux————pxe网络批量装机

目录 一、概述 什么是pxe pxe组件 二、搭建交互式pxe装机 一、配置基础环境 二、配置vsftpd 三、配置tftp 四、准备pxelinx.0文件、引导文件、内核文件 一、准备pxelinux.0 二、准备引导文件、内核文件 五、配置dhcp 一、安装dhcp 二、配置dhcp 六、创建default文…...

处理时延降低24倍,联通云粒数据引擎优化实践

*作者:郑扬勇,云粒星河数据中台产品负责人 云粒智慧科技有限公司成立于 2018 年 6 月,是中国联通集团混改以来成立的首家合资公司,是中国智慧城市数智化建设者。一直以来,云粒智慧以数字化、智能化、集约化产品为核心&…...

学习MATLAB

今日,在大学慕课上找了一门关于MATLAB学习的网课,MATLAB对于我们这种自动化的学生应该是很重要的,之前也是在大三的寒假做自控的课程设计时候用到过,画一些奈奎斯特图,根轨迹图以及伯德图,但那之后也就没怎…...

React 18 对 state 进行保留和重置

参考文章 对 state 进行保留和重置 各个组件的 state 是各自独立的。根据组件在 UI 树中的位置,React 可以跟踪哪些 state 属于哪个组件。可以控制在重新渲染过程中何时对 state 进行保留和重置。 UI 树 浏览器使用许多树形结构来为 UI 建立模型。DOM 用于表示 …...

MySQL之事务与引擎

目录 一、事物 1、事务的概念 2、事务的ACID特点 3、事务之间的相互影响 4、Mysql及事务隔离级别(四种) 1、查询会话事务隔离级别 2、查询会话事务隔离级别 3、设置全局事务隔离级别 4、设置会话事务隔离级别 5、事务控制语句 6、演示 1、测试提交事务 2、测试事务回滚 4…...

Flink集群常见的监控指标

为确保能够全面、实时地监控Flink集群的运行状态和性能指标。以下是监控方案的主要组成部分: Flink集群概览:通过访问Flink的JobManager页面,您可以获取集群的总体信息,包括TaskManager的数量、任务槽位数量、运行中的作业以及已…...

React常见知识点

1. setCount(10)与setCount(preCount > preCount 10) 的区别: import React, { useState } from react; export default function CounterHook() {const [count, setCount] useState(() > 10);console.log(CounterHook渲染);function handleBtnClick() {//…...

Vue-router路由

配置路由 相当于SpringMVC的Controller 路径然后,跳转到对应的组件 一键生成前端项目文档...

JVM-CMS

when 堆大小要求为4-8G 原理 初始标记:执行CMS线程->STW,标记GC Root直接关联的对象->低延迟 并发标记:执行CMS线程和业务线程,从GC Root直接关联的对象开始遍历整个对象图 重新标记:执行CMS线程->STW&a…...

无涯教程-Flutter - Dart简介

Dart是一种开源通用编程语言,它最初是由Google开发的, Dart是一种具有C样式语法的面向对象的语言,它支持诸如接口,类之类的编程概念,与其他编程语言不同,Dart不支持数组, Dart集合可用于复制数据…...

如何创建美观的邮件模板并通过qq邮箱的SMTP服务向用户发送

最近在写注册功能的自动发送邮箱告知验证码的功能,无奈根本没有学过前端,只有写Qt的qss基础,只好借助网页设计自己想要的邮箱格式,最终效果如下: 也推销一下自己的项目ShaderLab,可运行ShaderToy上的大部分着色器代码&…...

手机无人直播软件在苹果iOS系统中能使用吗?

在现代社交媒体的时代,直播带货已经成为了一种热门的销售途径。通过直播,人们可以远程分享自己的商品,与观众进行互动,增强沟通和参与感。而如今,手机无人直播软件更是成为了直播带货领域的一项火爆的技术。那么&#…...

创建2个线程并执行(STL/Windows/Linux)

C并发编程入门 目录 STL 写法 #include <thread> #include <iostream> using namespace std;void thread_fun1(void) {cout << "one STL thread 1!" << endl; }void thread_fun2(void) {cout << "one STL thread 2!" <…...

Redis可以干什么

Redis可以做什么&#xff1f; 缓存 Redis作为一款高性能的缓存数据库&#xff0c;能够将常用的数据存储在内存中&#xff0c;以提高读写效率。它支持多种数据结构&#xff0c;如字符串、哈希表、列表、集合等&#xff0c;让你可以根据业务需求选择合适的数据结构进行缓存。 …...

做网站都得会什么技术/广州网站优化排名系统

在Android中&#xff0c;调用系统相机拍照时&#xff0c;将会接收到返回的图像数据&#xff0c;但是这些图片并不是全尺寸的图像&#xff0c;而是系统给的缩略图&#xff0c;当对拍照的图片进行裁切后显示时&#xff0c;得到的却是模糊的图片。下面针对这个问题提出解决的方法。…...

all import wordpress/百度网站登录入口

javax.servlet.http提供的HTTP Servlet应用编程接口。 HTTP Servlet应用编程接口使用一个 HTML 表格来发送和接收数据。要创建一个 HTTP Servlet&#xff0c;请扩展 Http Servlet 类&#xff0c; 该类是用专门的方法来处理 HTML 表格的 GenericServlet 的一个子类。 HTML 表单是…...

郑州 手机网站制作/合肥seo推广公司

总结一下,最近项目开发遇到的。由于缓存框架设计时&#xff0c;缓存请求文件时只以发起请求的url 为key,导致在客户端发起url 相同&#xff0c;传参类型不同的请求时&#xff0c;交替请求会出现&#xff0c;带上一次请求返回的etag &#xff0c;进行下次请求&#xff0c;服务器…...

太原网站建设培训学校/线上运营推广

网页设计中计算机图像处理技术的运用(共2642字)网页设计中计算机图像处理技术的运用(共2642字)随着计算机技术的不断发展&#xff0c;社会对网页设计的质量要求越来越高&#xff0c;如何将网页内容所要表达的内容形象的展现在浏览者面前是计算机图像处理技术的重要任务。在网页…...

九九建筑网官网登录/搜索引擎优化的概念是什么

Source Insight自定义快捷键 鄙人一直用的是Eclipse来开发&#xff0c;如果只是做java的话&#xff0c;这个就够了&#xff0c;但因时不时要查C/C的代码&#xff0c;这个时候这个工具就有点力不从心了&#xff0c;因为C/C的代码非常多&#xff0c;一般放在服务器上&#xff0c…...

江西论坛/百度关键词seo外包

全球领先的射频解决方案设计制造厂商SkyCross日前宣布其面向LTE 和 Wi-Fi的双频iMAT(隔离模式天线技术)和 4x4MIMO(多输入多输出)解决方案能使配备高通骁龙 820 智能设备处理器的性能最大化。SkyCross 先进的 iMAT天线及方案已于2014年面市&#xff0c;并被用于超过一百万部商用…...