【数据库】CRUD常用函数UNION 和 UNION ALL
文章目录
- 一、CRUD
- 二、函数
- 2.1 字符函数 (Character Functions):
- 2.2 数字函数 (Numeric Functions):
- 2.3 日期函数 (Date Functions):
- 2.4 流程控制函数:
- 2.5 聚合函数:
- 三、UNION 和 UNION ALL
- 3.1 UNION:
- 3.2 UNION ALL
- 3.3 注意事项
一、CRUD
CRUD 是指数据库操作的四个基本动作:创建(Create)、读取(Read)、更新(Update)和删除(Delete)。这四个操作对应了数据库中的数据管理和维护的基本需求。下面是 MySQL 中实现 CRUD 操作的语法及其含义:
-
创建(Create) - 插入数据到表中:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);table_name是要插入数据的表名。column1, column2, column3, ...是要插入数据的列名。value1, value2, value3, ...是要插入的具体数值。
-
读取(Read) - 查询数据:
-
查询所有列的所有行:
SELECT * FROM table_name; -
查询特定列的所有行:
SELECT column1, column2, ... FROM table_name; -
带条件查询:
-
-- 选择所有列或特定字段(用 <column> 替换)
SELECT *|<column>
-- 从一个或多个表中选择数据(用 <column1>,<column2> 替换)
FROM <table_name1>, <table_name2>, ...
-- 可选:指定筛选条件
WHERE <表达式>
-- 可选:对结果进行分组(用 <group by definition> 替换)
GROUP BY <group by definition>
-- 可选:对分组结果进行过滤条件判断(用 <expression> 替换)
HAVING <expression> [{<operator> <expression>} ...]
-- 可选:对结果进行排序(用 <order by definition> 替换)
ORDER BY <order by definition>
-- 可选:限制结果集的行数,可包括偏移量(用 <offset> 和 <row count> 替换)
LIMIT [<offset>] <row count>;
-
更新(Update) - 更新表中的数据:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;- 更新指定列的值,可以同时更新多个列。
condition是指定要更新的行的条件。
-
删除(Delete) - 从表中删除数据:
DELETE FROM table_name WHERE condition;- 删除满足条件的行,如果不指定条件,则会删除表中所有数据。
二、函数
2.1 字符函数 (Character Functions):
-
LOWER(): 转小写 - 将字符串中的字母全部转换为小写。
SELECT LOWER('SQL Course'); -- 输出 'sql course' -
UPPER(): 转大写 - 将字符串中的字母全部转换为大写。
SELECT UPPER('SQL Course'); -- 输出 'SQL COURSE' -
CONCAT(): 拼接 - 将多个字符串连接在一起。
SELECT CONCAT('Hello','World'); -- 输出 'HelloWorld' -
SUBSTRING(): 截取 - 从字符串中获取指定位置和长度的子串。
SELECT SUBSTRING('HelloWorld', 1, 5); -- 输出 'Hello' -
LENGTH(): 长度 - 返回字符串的长度。
SELECT LENGTH('HelloWorld'); -- 输出 10 -
INSTR(): 字符出现索引值 - 返回指定字符在字符串中第一次出现的位置。
SELECT INSTR('HelloWorld','W'); -- 输出 6 -
TRIM(): 字符截取后半段 - 从字符串开头去掉指定字符。
SELECT TRIM('H' FROM 'HelloWorld'); -- 输出 'elloWorld' -
REPLACE(): 字符替换 - 将字符串中的指定字符替换为另一个字符。
SELECT REPLACE('abcd','b','m'); -- 输出 'amcd'
2.2 数字函数 (Numeric Functions):
-
ROUND(): 四舍五入 - 将数字四舍五入到指定的小数位数。
SELECT ROUND(88.886, 2); -- 输出 88.89 -
TRUNCATE(): 截断 - 截断数字到指定的小数位数。
SELECT TRUNCATE(88.886, 2); -- 输出 88.88 -
MOD(): 求余 - 返回两个数相除的余数。
SELECT MOD(1600, 300); -- 输出 100
2.3 日期函数 (Date Functions):
-
NOW(): 获取当前日期和时间。
SELECT NOW(); -- 返回当前日期和时间 -
STR_TO_DATE( ): 将日期格式的字符转换成指定格式的日期。
SELECT STR_TO_DATE('9-18-1997', '%m-%d-%Y'); -- 输出 '1997-09-18' -
DATE_FORMAT(): 将日期转换成字符,指定格式。
SELECT DATE_FORMAT('2020/1/1', '%Y年%m月%d日'); -- 输出 '2020年01月01日'
2.4 流程控制函数:
-
CASE WHEN … THEN … ELSE … END: 类似于编程语言中的
switch语句。SELECT CASE WHEN score >= 90 THEN 'A'WHEN score >= 80 THEN 'B'ELSE 'C'END AS grade FROM student_scores; -
IF(condition, true_value, false_value): 条件判断函数。
SELECT IF(score >= 60, 'Pass', 'Fail') AS result FROM student_scores;
2.5 聚合函数:
-
SUM(column): 求和 - 计算指定列的总和。
SELECT SUM(sales) FROM sales_data; -
AVG(column): 平均值 - 计算指定列的平均值。
SELECT AVG(price) FROM product_prices; -
MAX(column): 最大值 - 获取指定列的最大值。
SELECT MAX(temperature) FROM weather_data; -
MIN(column): 最小值 - 获取指定列的最小值。
SELECT MIN(quantity) FROM inventory; -
COUNT(column): 计算个数 - 统计指定列的非空值数量。
SELECT COUNT(customer_id) FROM customers;
三、UNION 和 UNION ALL
UNION 和 UNION ALL 是 SQL 中用于合并两个或多个查询结果的操作符。它们主要用于合并具有相似结构的多个查询的结果集。下
3.1 UNION:
-
去重:
UNION操作符会合并两个查询的结果集,并且会自动去除重复的行,确保最终的结果集中不包含重复的行。 -
语法:
SELECT column1, column2, ... FROM table1 WHERE condition UNION SELECT column1, column2, ... FROM table2 WHERE condition; -
示例:
SELECT city FROM customers WHERE country = 'USA' UNION SELECT city FROM suppliers WHERE country = 'USA';上述示例将返回所有来自
customers和suppliers表中位于美国的城市,并确保每个城市只出现一次。
3.2 UNION ALL
-
不去重:
UNION ALL同样合并两个查询的结果集,但不去除重复的行,即它保留所有的行,包括重复的。 -
语法:
SELECT column1, column2, ... FROM table1 WHERE condition UNION ALL SELECT column1, column2, ... FROM table2 WHERE condition; -
示例:
SELECT city FROM customers WHERE country = 'USA' UNION ALL SELECT city FROM suppliers WHERE country = 'USA';上述示例将返回所有来自 customers 和 suppliers 表中位于美国的城市,包括重复的行。
3.3 注意事项
-
UNION和UNION ALL要求两个查询的结果集具有相同的列数和相似的数据类型。 -
UNION的性能可能会稍逊于UNION ALL,因为它需要额外的步骤去重。 -
如果你确定结果集不包含重复行,或者你希望保留重复行,可以使用
UNION ALL来获得更好的性能。
相关文章:
【数据库】CRUD常用函数UNION 和 UNION ALL
文章目录 一、CRUD二、函数2.1 字符函数 (Character Functions):2.2 数字函数 (Numeric Functions):2.3 日期函数 (Date Functions):2.4 流程控制函数:2.5 聚合函数: 三、UNION 和 UNION ALL3.1 UNION:3.2 UNION ALL3.3 注意事项 一、CRUD CRUD 是指数据库操作的四…...
Adding Conditional Control to Text-to-Image Diffusion Models——【论文笔记】
本文发表于ICCV2023 论文地址:ICCV 2023 Open Access Repository (thecvf.com) 官方实现代码:lllyasviel/ControlNet: Let us control diffusion models! (github.com) Abstract 论文提出了一种神经网络架构ControlNet,可以将空间条件控制添加到大型…...
Python与人工智能
Python 是一种广泛用于人工智能(AI)开发的编程语言。Python具有简洁的语法和强大的库支持,使其成为数据科学、机器学习和深度学习的理想选择。 Python中有许多库可以帮助实现人工智能,其中最流行的包括TensorFlow和PyTorch。这些…...
【Docker】Docker基础
文章目录 安装使用帮助启动命令镜像命令容器命令 安装 # 卸载旧版本 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine # 设置存储库 sudo yum install -y yum-utils …...
linux异常情况,排查处理中
登录客户环境后,发现一个奇怪情况如下图,之前也遇到过,直接fuser -ck /backup操作的话,主机将会重启,因数据库运行中,等待停机维护时间,同时也在想办法不重启的情况下解决该问题 [rootdb ~]# f…...
Spring Boot参数校验方案
NotNull:值不能为null;NotEmpty:字符串、集合或数组的值不能为空,即长度大于0;NotBlank:字符串的值不能为空白,即不能只包含空格;Size:字符串、集合或数组的大小是否在指…...
【漏洞复现】ActiveMQ反序列化漏洞(CVE-2015-5254)
Nx01 产品简介 Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件。ActiveMQ是消息队列服务,是面向消息中间件(MOM)的最终实现,它为企业消息传递提供高可用、出色性能、可扩展、稳定和安全保障。 Nx02 漏洞描述 Re…...
面试题:MySQL误删表数据,如何快速恢复丢失的数据?
相信后端研发的同学在开发过程经常会遇到产品临时修改线上数据的需求,如果手法很稳那么很庆幸可以很快完成任务,很不幸某一天突然手一抖把表里的数据修改错误或者误删了,这个时候你会发现各种问题反馈接踵而来。 如果身边有BDA或者有这方面经…...
李沐之神经网络基础
目录 1.模型构造 1.1层和块 1.2自定义块 1.3顺序块 1.4在前向传播函数中执行代码 2.参数管理 2.1参数访问 2.2参数初始化 3.自定义层 3.1不带参数的层 3.2带参数的层 4.读写文件 4.1加载和保存张量 4.2加载和保存模型参数 1.模型构造 1.1层和块 import torch fr…...
【docker】使用 Dockerfile 构建镜像
一、什么是Dockerfile Dockerfile 是用于构建 Docker 镜像的文本文件。它包含了一系列的指令,用于描述如何构建镜像的步骤和配置。 通过编写 Dockerfile,您可以定义镜像的基础环境、安装软件包、复制文件、设置环境变量等操作。Dockerfile 提供了一种可…...
计算机网络—— 概述
概述 1.1 因特网概述 网络、互联网和因特网 网络由若干结点和连接这些结点的链路组成多个网络还可以通过路由器互联起来,这样就构成了一个覆盖范围更大的网络,即互联网(或互连网)。因特网(Internet)是世…...
“超人练习法”系列06:如何更好地掌握技能?
01 掌握的阶段 关于人类学习新事物的最生动、最精妙的比喻,我是从笑来老师那里学到的。 他指出,学习新知识、新概念犹如在构建自己大脑皮层,每个习得的概念就像是大脑皮层上的一个个微小神经元。 一个看似聪明、博学的人,总能在各…...
【华为OD机试真题2023CD卷 JAVAJS】字符串拼接
华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 字符串拼接 知识点数组递归 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 给定M(0<M<=30)个字符(a-z),从中取出任意字符(每个字符只能用一次)拼接成长度为N(0<N<=5)的字符串,要求相同的字…...
【算法】链表-20240109
这里写目录标题 一、141. 环形链表二、876. 链表的中间结点三、面试题 02.01. 移除重复节点 一、141. 环形链表 简单 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中…...
机器学习系列--R语言随机森林进行生存分析(2)
随机森林(Breiman 2001a)(RF)是一种非参数统计方法,需要没有关于响应的协变关系的分布假设。RF是一种强大的、非线性的技术,通过拟合一组树来稳定预测精度模型估计。随机生存森林(RSF࿰…...
Flutter GetX 之 状态管理
上一篇文章为大家介绍了 GetX的 路由管理,让大家对GetX有了初步了解,今天为大家介绍一下GetX的 状态管理。 StatelessWidget 和 StatefulWidget 介绍 在介绍之前,先简单介绍一下 Flutter 页面的 StatelessWidget 和 StatefulWidget ,其实Flutter的本质是万物都是Widget,…...
e2studio开发磁力计LIS2MDL(1)----轮询获取磁力计数据
e2studio开发磁力计LIS2MDL.1--轮询获取磁力计数据 概述视频教学样品申请源码下载速率新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置UART配置UART属性配置设置e2studio堆栈e2studio的重定向printf设置R_SCI_UART_Open()函数原型回调函数user_uart_callback ()prin…...
C++ 字符串大小写转换,替换,文件保存 方法封装
此示例程序方法已经封装好使用std::islower()函数可以检查一个字符是否是小写字母,使用std::isupper()函数可以检查一个字符是否是大写字母。 如果传入的字母是小写字母,则使用std::toupper()函数将其转换为大写字母,并输出转换后的结果。 如果输入的字母是大写字母,则使…...
计算机基础面试题 |19.精选计算机基础面试题
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
mysql 添加用户并分配select权限
1.root用户先登录或者在可执行界面 1.1 选择mysql 点击mysql 或者在命令行 use mysql 1.2创建用户 CREATE USER username% IDENTIFIED BY password; 备注1:%替换为可访问数据库的ip,例如“127.0.0.1”“192.168.1.1”,使用“%”表示不限制…...
5个高效方法:如何用AKShare处理金融数据去重,避免重复数据干扰分析
5个高效方法:如何用AKShare处理金融数据去重,避免重复数据干扰分析 【免费下载链接】akshare AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库 项目地址: https://gitcod…...
别再折腾Bootloader了!STM32H7内部Flash+QSPI Flash混合运行实战(MDK配置详解)
STM32H7混合存储架构开发实战:告别Bootloader的繁琐时代 在嵌入式开发领域,STM32H7系列凭借其高性能Cortex-M7内核和丰富的外设资源,已成为工业控制、智能设备和图形界面应用的宠儿。然而,传统开发模式中Bootloader与应用程序分离…...
如何高效处理RPG Maker加密资源:纯前端解密方案深度解析
如何高效处理RPG Maker加密资源:纯前端解密方案深度解析 【免费下载链接】RPG-Maker-MV-Decrypter You can decrypt RPG-Maker-MV Resource Files with this project ~ If you dont wanna download it, you can use the Script on my HP: 项目地址: https://gitco…...
保姆级教程:STM32F407驱动AD9926并行ADC,从硬件连线到DMA数据搬运全流程
STM32F407实战:AD9926并行ADC驱动与DMA高效数据采集全解析 在工业自动化与精密测量领域,高速数据采集系统的设计一直是嵌入式开发的难点之一。AD9926作为一款12位并行输出ADC芯片,配合STM32F407强大的DCMI接口和DMA控制器,能够构…...
告别虚拟机!Windows 11下用Conda一键安装GNU Radio 3.10(附国内镜像加速)
Windows 11下用Conda极速部署GNU Radio 3.10全攻略 在软件无线电(SDR)领域,GNU Radio一直是开源工具链中的标杆。但许多Windows用户在初次接触时,往往被复杂的依赖关系和繁琐的安装过程劝退。虚拟机卡顿、版本兼容性问题、依赖冲突…...
Python热重载工具Reloadium:实现函数级代码热更新与AI辅助开发
1. 项目概述:Reloadium,一个改变Python开发工作流的“时光机”如果你和我一样,是个常年泡在Python项目里的开发者,那你一定对“修改代码 -> 停止程序 -> 重新运行 -> 等待启动”这个循环深恶痛绝。尤其是在调试Web后端&a…...
示波器平均值功能实战:从噪声中精准提取电机故障信号
1. 项目概述:用示波器诊断模型火车电机故障作为一名在电子工程领域摸爬滚打了十几年的老工程师,我手边最离不开的工具,除了万用表,就是示波器。很多人觉得示波器是研发实验室里的高端设备,离日常维修很远,但…...
Deep Lake:统一多模态AI数据存储与向量检索的实践指南
1. 项目概述:Deep Lake,一个为AI而生的数据湖 如果你正在构建一个需要处理图像、文本、音频、PDF,甚至医学影像DICOM文件的大模型应用,或者你在训练一个需要高效加载海量数据的深度学习模型,那么你很可能正被数据管理…...
构建离线文档ETL管道:用Python实现PDF/Word智能转Markdown优化LLM输入
1. 项目概述:为什么我们需要一个离线的文档转换工具?如果你和我一样,经常需要把一堆PDF、Word文档甚至扫描件喂给本地的大语言模型(比如Ollama、LM Studio),那你肯定遇到过这个痛点:模型宝贵的上…...
从GPS周内秒到日常时间:原理、转换与编程实践
1. GPS时间系统的基本概念 第一次接触GPS时间数据时,我也被"周内秒"这个概念搞懵了。这和我们平时用的年月日时分秒完全不同,更像是一种程序员喜欢的计数方式。GPS时间系统(GPST)本质上是个超级精准的原子钟,…...
