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

【数据库】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 操作的语法及其含义:

  1. 创建(Create) - 插入数据到表中:

    INSERT INTO table_name (column1, column2, column3, ...)
    VALUES (value1, value2, value3, ...);
    
    • table_name 是要插入数据的表名。
    • column1, column2, column3, ... 是要插入数据的列名。
    • value1, value2, value3, ... 是要插入的具体数值。
  2. 读取(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>;
  1. 更新(Update) - 更新表中的数据:

    UPDATE table_name
    SET column1 = value1, column2 = value2, ...
    WHERE condition;
    
    • 更新指定列的值,可以同时更新多个列。
    • condition 是指定要更新的行的条件。
  2. 删除(Delete) - 从表中删除数据:

    DELETE FROM table_name WHERE condition;
    
    • 删除满足条件的行,如果不指定条件,则会删除表中所有数据。

二、函数

2.1 字符函数 (Character Functions):

  1. LOWER(): 转小写 - 将字符串中的字母全部转换为小写。

    SELECT LOWER('SQL Course'); -- 输出 'sql course'
    
  2. UPPER(): 转大写 - 将字符串中的字母全部转换为大写。

    SELECT UPPER('SQL Course'); -- 输出 'SQL COURSE'
    
  3. CONCAT(): 拼接 - 将多个字符串连接在一起。

    SELECT CONCAT('Hello','World'); -- 输出 'HelloWorld'
    
  4. SUBSTRING(): 截取 - 从字符串中获取指定位置和长度的子串。

    SELECT SUBSTRING('HelloWorld', 1, 5); -- 输出 'Hello'
    
  5. LENGTH(): 长度 - 返回字符串的长度。

    SELECT LENGTH('HelloWorld'); -- 输出 10
    
  6. INSTR(): 字符出现索引值 - 返回指定字符在字符串中第一次出现的位置。

    SELECT INSTR('HelloWorld','W'); -- 输出 6
    
  7. TRIM(): 字符截取后半段 - 从字符串开头去掉指定字符。

    SELECT TRIM('H' FROM 'HelloWorld'); -- 输出 'elloWorld'
    
  8. REPLACE(): 字符替换 - 将字符串中的指定字符替换为另一个字符。

    SELECT REPLACE('abcd','b','m'); -- 输出 'amcd'
    

2.2 数字函数 (Numeric Functions):

  1. ROUND(): 四舍五入 - 将数字四舍五入到指定的小数位数。

    SELECT ROUND(88.886, 2); -- 输出 88.89
    
  2. TRUNCATE(): 截断 - 截断数字到指定的小数位数。

    SELECT TRUNCATE(88.886, 2); -- 输出 88.88
    
  3. MOD(): 求余 - 返回两个数相除的余数。

    SELECT MOD(1600, 300); -- 输出 100
    

2.3 日期函数 (Date Functions):

  1. NOW(): 获取当前日期和时间。

    SELECT NOW(); -- 返回当前日期和时间
    
  2. STR_TO_DATE( ): 将日期格式的字符转换成指定格式的日期。

    SELECT STR_TO_DATE('9-18-1997', '%m-%d-%Y'); -- 输出 '1997-09-18'
    
  3. DATE_FORMAT(): 将日期转换成字符,指定格式。

    SELECT DATE_FORMAT('2020/1/1', '%Y年%m月%d日'); -- 输出 '2020年01月01日'
    

2.4 流程控制函数:

  1. 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;
    
  2. IF(condition, true_value, false_value): 条件判断函数。

    SELECT IF(score >= 60, 'Pass', 'Fail') AS result
    FROM student_scores;
    

2.5 聚合函数:

  1. SUM(column): 求和 - 计算指定列的总和。

    SELECT SUM(sales) FROM sales_data;
    
  2. AVG(column): 平均值 - 计算指定列的平均值。

    SELECT AVG(price) FROM product_prices;
    
  3. MAX(column): 最大值 - 获取指定列的最大值。

    SELECT MAX(temperature) FROM weather_data;
    
  4. MIN(column): 最小值 - 获取指定列的最小值。

    SELECT MIN(quantity) FROM inventory;
    
  5. COUNT(column): 计算个数 - 统计指定列的非空值数量。

    SELECT COUNT(customer_id) FROM customers;
    

三、UNION 和 UNION ALL

UNIONUNION 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';
    

    上述示例将返回所有来自 customerssuppliers 表中位于美国的城市,并确保每个城市只出现一次。

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 注意事项

  • UNIONUNION 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&#xff1a;3.2 UNION ALL3.3 注意事项 一、CRUD CRUD 是指数据库操作的四…...

Adding Conditional Control to Text-to-Image Diffusion Models——【论文笔记】

本文发表于ICCV2023 论文地址&#xff1a;ICCV 2023 Open Access Repository (thecvf.com) 官方实现代码&#xff1a;lllyasviel/ControlNet: Let us control diffusion models! (github.com) Abstract 论文提出了一种神经网络架构ControlNet,可以将空间条件控制添加到大型…...

Python与人工智能

Python 是一种广泛用于人工智能&#xff08;AI&#xff09;开发的编程语言。Python具有简洁的语法和强大的库支持&#xff0c;使其成为数据科学、机器学习和深度学习的理想选择。 Python中有许多库可以帮助实现人工智能&#xff0c;其中最流行的包括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异常情况,排查处理中

登录客户环境后&#xff0c;发现一个奇怪情况如下图&#xff0c;之前也遇到过&#xff0c;直接fuser -ck /backup操作的话&#xff0c;主机将会重启&#xff0c;因数据库运行中&#xff0c;等待停机维护时间&#xff0c;同时也在想办法不重启的情况下解决该问题 [rootdb ~]# f…...

Spring Boot参数校验方案

NotNull&#xff1a;值不能为null&#xff1b;NotEmpty&#xff1a;字符串、集合或数组的值不能为空&#xff0c;即长度大于0&#xff1b;NotBlank&#xff1a;字符串的值不能为空白&#xff0c;即不能只包含空格&#xff1b;Size&#xff1a;字符串、集合或数组的大小是否在指…...

【漏洞复现】ActiveMQ反序列化漏洞(CVE-2015-5254)

Nx01 产品简介 Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件。ActiveMQ是消息队列服务&#xff0c;是面向消息中间件&#xff08;MOM&#xff09;的最终实现&#xff0c;它为企业消息传递提供高可用、出色性能、可扩展、稳定和安全保障。 Nx02 漏洞描述 Re…...

面试题:MySQL误删表数据,如何快速恢复丢失的数据?

相信后端研发的同学在开发过程经常会遇到产品临时修改线上数据的需求&#xff0c;如果手法很稳那么很庆幸可以很快完成任务&#xff0c;很不幸某一天突然手一抖把表里的数据修改错误或者误删了&#xff0c;这个时候你会发现各种问题反馈接踵而来。 如果身边有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 镜像的文本文件。它包含了一系列的指令&#xff0c;用于描述如何构建镜像的步骤和配置。 通过编写 Dockerfile&#xff0c;您可以定义镜像的基础环境、安装软件包、复制文件、设置环境变量等操作。Dockerfile 提供了一种可…...

计算机网络—— 概述

概述 1.1 因特网概述 网络、互联网和因特网 网络由若干结点和连接这些结点的链路组成多个网络还可以通过路由器互联起来&#xff0c;这样就构成了一个覆盖范围更大的网络&#xff0c;即互联网&#xff08;或互连网&#xff09;。因特网&#xff08;Internet&#xff09;是世…...

“超人练习法”系列06:如何更好地掌握技能?

01 掌握的阶段 关于人类学习新事物的最生动、最精妙的比喻&#xff0c;我是从笑来老师那里学到的。 他指出&#xff0c;学习新知识、新概念犹如在构建自己大脑皮层&#xff0c;每个习得的概念就像是大脑皮层上的一个个微小神经元。 一个看似聪明、博学的人&#xff0c;总能在各…...

【华为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 &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中…...

机器学习系列--R语言随机森林进行生存分析(2)

随机森林&#xff08;Breiman 2001a&#xff09;&#xff08;RF&#xff09;是一种非参数统计方法&#xff0c;需要没有关于响应的协变关系的分布假设。RF是一种强大的、非线性的技术&#xff0c;通过拟合一组树来稳定预测精度模型估计。随机生存森林&#xff08;RSF&#xff0…...

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.精选计算机基础面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…...

mysql 添加用户并分配select权限

1.root用户先登录或者在可执行界面 1.1 选择mysql 点击mysql 或者在命令行 use mysql 1.2创建用户 CREATE USER username% IDENTIFIED BY password; 备注1&#xff1a;%替换为可访问数据库的ip&#xff0c;例如“127.0.0.1”“192.168.1.1”&#xff0c;使用“%”表示不限制…...

GPT-5.4 Pro接入Java!百万上下文+电脑操控,Spring AI集成教程

文章目录前言一、先搞清楚你在驯服什么野兽二、Spring AI Alibaba是什么鬼&#xff1f;核心优势三、环境准备&#xff1a;别在JDK版本上栽跟头四、基础对话&#xff1a;先让AI开口说话五、百万上下文的正确打开方式六、Computer Use&#xff1a;让AI真的动起来实际应用场景七、…...

LWIP内存管理踩坑实录:从pbuf泄漏到pcb耗尽,我的嵌入式网络调试日记

LWIP内存管理踩坑实录&#xff1a;从pbuf泄漏到pcb耗尽&#xff0c;我的嵌入式网络调试日记 凌晨三点&#xff0c;调试器上的红色LED还在闪烁。这是我连续第三个通宵追踪LWIP的内存问题——设备在运行48小时后必然崩溃&#xff0c;日志里满是"pbuf_alloc failed"和&q…...

【Python张量计算实战宝典】:20年AI架构师亲授5大高频场景优化技巧,错过再等一年

第一章&#xff1a;张量计算基础与PyTorch/TensorFlow双框架选型指南张量是深度学习的核心数据结构&#xff0c;本质为多维数组&#xff0c;支持自动微分、GPU加速与动态/静态计算图构建。理解其内存布局&#xff08;如C-contiguous vs. Fortran-contiguous&#xff09;、广播机…...

计算机网络 之 【网络套接字编程】(固定宽度整数类型、socket常见API、netstat)

目录 一.固定宽度整数类型&#xff08;C11引入&#xff09; 二、socket 常见API socket bind IP地址绑定类型 TCP 编程模型流程图 listen accept connect UDP编程模型流程图 recvfrom 函数 sendto 函数 常用 flags 选项 常用错误码 三、netstat Linux/Unix 选项…...

PFC颗粒流代码模拟岩石预制裂隙与完整岩石单轴压缩对比分析

PFC颗粒流代码 pfc离散元岩石预制裂隙&#xff0c;裂隙岩石与完整岩石单轴压缩代码&#xff0c;可出各种裂隙形式&#xff0c;可分析应力应变曲线图&#xff0c;裂隙发育与数量&#xff0c;能量变化&#xff0c;简易声发射分析等做岩石单轴压缩离散元模拟的&#xff0c;谁没为…...

告别官方包:手把手教你为遗留项目编译一个“增强版”Qt5.15.17

告别官方包&#xff1a;手把手教你为遗留项目编译一个“增强版”Qt5.15.17 当官方支持终止后&#xff0c;维护基于Qt5的遗留项目就像在悬崖边行走——你需要稳定性&#xff0c;但又渴望那些关键补丁和完整功能。本文将带你深入探索如何为团队构建一个功能完备的私有Qt工具链&am…...

用MATLAB从零实现六足机器人步态:交替三角与波动步态代码详解

用MATLAB从零实现六足机器人步态&#xff1a;交替三角与波动步态代码详解 六足机器人因其卓越的稳定性和地形适应能力&#xff0c;在野外勘探、灾难救援等领域展现出巨大潜力。而步态规划作为机器人运动控制的核心&#xff0c;直接决定了机器人的移动效率和稳定性。本文将带您从…...

MATLAB实战:用BEMD算法分解图像并提取特征(附完整代码)

MATLAB实战&#xff1a;二维经验模态分解(BEMD)在图像特征提取中的创新应用 当我们需要从一张X光片中识别微小病灶&#xff0c;或是从卫星图像中提取城市道路网络时&#xff0c;传统图像处理方法往往力不从心。二维经验模态分解(BEMD)就像给图像做"CT扫描"&#xff0…...

Windows 11 下 3D Gaussian Splatting (3DGS) 环境配置与实战指南

1. Windows 11下的3DGS环境搭建全攻略 第一次接触3D Gaussian Splatting&#xff08;简称3DGS&#xff09;这个技术时&#xff0c;我完全被它惊艳到了。它能够从几张普通的照片重建出逼真的3D场景&#xff0c;而且渲染速度极快。不过说实话&#xff0c;在Windows 11上配置这个环…...

如何5分钟制作超轻量Windows 11系统:Tiny11Builder终极指南

如何5分钟制作超轻量Windows 11系统&#xff1a;Tiny11Builder终极指南 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 想要体验一个干净、流畅、占用空间极小的W…...