【数据库】CRUD常用函数UNION 和 UNION ALL

news2025/1/17 0:09:32

文章目录

  • 一、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(‘2018/6/6’,‘%Y年%m月%d日’): 将日期转换成字符,指定格式。

    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 来获得更好的性能。

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

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

相关文章

【RabbitMQ】1 消息中间件MQ概述

目录 什么是消息中间件为什么使用消息中间件流量削峰应用解耦异步处理 主流消息中间件及选型选取原则RabbitMQRocketMQKafka如何选择 消息中间件应用场景电商秒杀案例拉勾B端C端数据同步案例支付宝购买电影票 什么是消息中间件 维基百科对消息中间件的解释&#xff1a;面向消息…

JVM之内存模型带参数

Spring Boot程序的JVM参数设置格式(Tomcat启动直接加在bin目录下catalina.sh文件里)&#xff1a; java ‐Xms2048M ‐Xmx2048M ‐Xmn1024M ‐Xss512K ‐XX:MetaspaceSize256M ‐XX:MaxMetaspaceSize256M ‐jar xxxxxx.jar-Xss&#xff1a;每个线程的栈大小 -Xms&#xff1a;设置…

Prototype原型模式(对象创建)

原型模式&#xff1a;Prototype 链接&#xff1a;原型模式实例代码 注解 模式定义 使用原型实例指定创建对象的种类&#xff0c;然后通过拷贝这些原型来创建新的对象。 ——《设计模式》GoF 目的 在软件系统中&#xff0c;经常面临这“某些结构复杂的对象”的创建工作&am…

3D Gaussian Splatting复现

最近3D Gaussian Splatting很火&#xff0c;网上有很多复现过程&#xff0c;大部分都是在Windows上的。Linux上配置环境会方便简单一点&#xff0c;这里记录一下我在Linux上复现的过程。 Windows下的环境配置和编译&#xff0c;建议看这个up主的视频配置&#xff0c;讲解的很细…

led台灯哪些牌子性价比高?那些性价比高的LED护眼台灯推荐

台灯作为家居用品在日常生活中使用频繁。用户可以根据个人需求和喜好&#xff0c;在市场上找到合适的款式。然而&#xff0c;由于台灯种类繁多&#xff0c;甚至连相关标准都存在差异&#xff0c;这使得一些缺乏经验的购物小白感到困扰。那么&#xff0c;led台灯哪些牌子性价比高…

python入门,list列表详解

目录 1.list的定义 2.index查找某元素的下标 3.修改 ​编辑 4.插入 ​编辑 5.追加元素 1.append,追加到尾部 2.extend,追加一批元素 ​编辑 6.删除元素 1.del 列表[下标] 2.列表.pop(下标) 3.列表.remove(元素) 7.清空列表 8.统计某一元素在列表内的数量 9.计算…

app广告变现——广告预加载机制,提升用户体验

通过广告预加载&#xff0c;开发者可以避免在向用户显示广告时出现延迟。 应用在程序启动时需要请求网络&#xff0c;加载资源会需要等待时间&#xff0c;如果在等待过程中没有及时给用户展现画面或反馈&#xff0c;用户很可能会因为等待时间过长而推出应用。广告预加载在此时…

美团后端Java实习一面面经

说一下AOP&#xff1f; 面向切面编程&#xff0c;通过预编译方式和运行期动态代理实现程序功能的统一维护的技术。可以减少程序中相同代码的编写&#xff0c;简化开发&#xff0c;使得接口更加专注于业务 相关概念 Aspect&#xff08;切面&#xff09;&#xff1a; Aspect 声…

【ES6语法学习】解构赋值

文章目录 引言一、什么是解构赋值1.1什么是解构赋值1.2 数组的解构赋值1.2.1 基本用法1.2.2 默认值1.2.3 剩余参数 1.3 对象的解构赋值1.3.1 基本用法1.3.2 默认值1.3.2 剩余参数 1.4 字符串的解构赋值1.5 函数参数的解构赋值 二、解构赋值的优势和应用场景2.1 代码简化和可读性…

并发程序设计--D2D3exec函数族和守护进程

exec 函数族 背景&#xff1a;fork创建进程之后&#xff0c;子进程和父进程执行相同的代码&#xff0c;但是在实际开发当中&#xff0c;我们希望父子进程执行不同的代码。 作用&#xff1a;执行指定的程序 #include <unistd.h> int execl(const char *path, const cha…

echarts中dataZoom拖拽不起效果

vue3项目中&#xff0c;echarts使用dataZoom进行区域拖动&#xff0c;拖动下图红色框&#xff0c;数据展示无变化拖动功能失效。 原因 vue3中使用了ref或者reactive等初始化图表的变量 //定义 let myChart ref<any>(null); //使用 myChart.value echarts.init(chartR…

京东年度数据报告-2023全年度净水器十大热门品牌销量榜单

近年来&#xff0c;随着科技的不断发展和应用&#xff0c;净水器的技术得到持续创新和提高&#xff0c;产品品质和使用效果不断优化&#xff0c;这也进一步提升了净水器的市场竞争力&#xff0c;2023年&#xff0c;净水器市场的销售成绩呈现增长。 根据鲸参谋平台的数据显示&a…

了解单元测试

一&#xff0c;测试分类 1.1 E2E测试&#xff08;end to end端到端测试&#xff09; 属于黑盒测试。 主要通过测试框架&#xff0c;站在用户测试人员的角度&#xff0c;模拟用户的操作进行页面功能的验证&#xff0c;不管内部实现机制&#xff0c;完全模拟浏览器的行为。&am…

接口自动化—pytest命令行操作

学习目标&#xff1a; 1、pytest的不同的运行方法 2、pytest常见的命令行参数 3、如何添加自定义的pytest命令行参数 学习内容&#xff1a; 1、pytest的不同的运行方法 1.1主要有三种情况的运行方式&#xff1a; 1.1.1没有使用pytest框架&#xff0c;但是要运行包含test…

微信多功能投票小程序源码系统:送礼物+在线充值+票数汇总+创建活动+完整的代码安装包 附带完整的搭建教程

微信已成为人们日常生活中不可或缺的一部分。因此&#xff0c;微信小程序也受到了广大用户的欢迎。在这个背景下&#xff0c;多功能投票小程序应运而生&#xff0c;为各种活动提供了方便快捷的投票方式。本文将介绍一款微信多功能投票小程序源码系统&#xff0c;该系统具有送礼…

Python | Iter/genartor | 一文了解迭代器、生成器的含义\区别\优缺点

前提 一种技术的出现&#xff0c;需要考虑&#xff1a; 为了实现什么样的需求&#xff1b;遇到了什么样的问题&#xff1b;采用了什么样的方案&#xff1b;最终接近或达到了预期的效果。 概念 提前理解几个概念&#xff1a; 迭代 我们经常听到产品迭代、技术迭代、功能迭代…

Apache Doris (六十一): Spark Doris Connector - (1)-源码编译

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 1. Spark Doris Connector…

开发者必备的 Github 加速工具(截至2024年01月)

开始闲聊前&#xff0c;我要感谢大神小青龍总结的博文&#xff1a;作为程序员不得不知道的几款Github加速神器&#xff0c;给我们介绍了常用&#xff08;较为合规&#x1f604;&#xff09;的加速方法。毕竟 github 是开发者绕不过的宝库。 背景 我用 Github 将近12年&#x…

drf知识--11

补充 # 研究simple-jwt提供的Token类&#xff1a; 1、RefreshToken:生成refresh token的类 2、AccessToken:生成refresh token的类 3、Token&#xff1a;他们俩的父类 4、str(RefreshToken的对象)---得到字符串 refresh token&#xff0c;Token类写了 …

【linux学习】linux概述

1. linux概述 操作系统主要的功能有两个部分&#xff0c;一是更有效率的控制计算机硬件资源&#xff08;主要通过核心来控制&#xff09;&#xff0c;二是为程序设计师提供更容易开发软件的环境&#xff08;系统呼叫提供软件开发环境&#xff09;。linux就是一套操作系统&…