MySQL基础操作(2)
目录
1. CONCAT()
2. =
3. != 或 <>
4. IS NULL
5. IS NOT NULL
6. BETWEEN ... AND ...
7. LIKE
8. ORDER BY
9. LIMIT
10. LENGTH()
11. SUBSTR()
12. UPPER()
13. LOWER()
14. CONCAT_WS()
15. REPLACE()
16. INSTR()
17. TRIM()
18. IFNULL()
19. SYSDATE()
20. FLOOR()
21. CEIL()
22. ROUND()
23. ABS()
24. LOG()
25. JOIN
26. HAVING
1. CONCAT()
-
作用:将多个字符串连接成一个字符串。
-
语法:
CONCAT(str1, str2, ...)
-
示例:
SELECT CONCAT('Hello', ' ', 'World') AS result; -- 输出:Hello World
-
拓展:
-
CONCAT()
可以连接多个字段,常用于生成组合字段。 -
如果其中一个参数为
NULL
,结果将为NULL
。 -
示例:
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
-
2. =
-
作用:用于比较两个值是否相等。
-
语法:
column = value
-
示例:
SELECT * FROM users WHERE age = 25;
-
拓展:
-
=
也可以用于比较字符串、日期等类型。 -
示例:
SELECT * FROM users WHERE created_at = '2023-10-01';
-
3. !=
或 <>
-
作用:用于比较两个值是否不相等。
-
语法:
column != value
或column <> value
-
示例:
SELECT * FROM users WHERE age != 25;
-
拓展:
-
!=
和<>
是等价的,选择其中一个即可。 -
示例:
SELECT * FROM users WHERE email <> 'admin@example.com';
-
4. IS NULL
-
作用:检查某个字段是否为
NULL
。 -
语法:
column IS NULL
-
示例:
SELECT * FROM users WHERE email IS NULL;
-
拓展:
-
IS NULL
不能用=
代替,因为NULL
不等于任何值。 -
示例:
SELECT * FROM users WHERE phone IS NULL;
-
5. IS NOT NULL
-
作用:检查某个字段是否不为
NULL
。 -
语法:
column IS NOT NULL
-
示例:
SELECT * FROM users WHERE email IS NOT NULL;
-
拓展:
-
常用于过滤非空数据。
-
示例:
SELECT * FROM users WHERE phone IS NOT NULL;
-
6. BETWEEN ... AND ...
-
作用:检查某个值是否在指定的范围内。
-
语法:
column BETWEEN value1 AND value2
-
示例:
SELECT * FROM users WHERE age BETWEEN 20 AND 30;
-
拓展:
-
BETWEEN
包含边界值。 -
示例:
SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';
-
7. LIKE
-
作用:用于模糊匹配字符串。
-
语法:
column LIKE pattern
-
示例:
SELECT * FROM users WHERE name LIKE 'J%';
-
拓展:
-
%
表示任意字符序列,_
表示单个字符。 -
示例:
SELECT * FROM users WHERE name LIKE 'J_n';
-
8. ORDER BY
-
作用:对查询结果进行排序。
-
语法:
ORDER BY column ASC|DESC
-
示例:
SELECT * FROM users ORDER BY age DESC;
-
拓展:
-
可以按多个字段排序。
-
示例:
SELECT * FROM users ORDER BY age DESC, name ASC;
-
9. LIMIT
-
作用:限制查询结果的行数。
-
语法:
LIMIT n
或LIMIT offset, n
-
示例:
SELECT * FROM users LIMIT 10;
-
拓展:
-
LIMIT
常用于分页查询。 -
示例:
SELECT * FROM users LIMIT 10 OFFSET 20;
-
10. LENGTH()
-
作用:返回字符串的长度。
-
语法:
LENGTH(str)
-
示例:
SELECT LENGTH('Hello World') AS length; -- 输出:11
-
拓展:
-
常用于统计字符串长度。
-
示例:
SELECT name, LENGTH(name) AS name_length FROM users;
-
11. SUBSTR()
-
作用:截取字符串的一部分。
-
语法:
SUBSTR(str, start, length)
-
示例:
SELECT SUBSTR('Hello World', 7, 5) AS result; -- 输出:World
-
拓展:
-
start
从 1 开始计数。 -
示例:
SELECT SUBSTR(email, 1, INSTR(email, '@') - 1) AS username FROM users;
-
12. UPPER()
-
作用:将字符串转换为大写。
-
语法:
UPPER(str)
-
示例:
SELECT UPPER('hello') AS result; -- 输出:HELLO
-
拓展:
-
常用于数据标准化。
-
示例:
SELECT UPPER(name) AS upper_name FROM users;
-
13. LOWER()
-
作用:将字符串转换为小写。
-
语法:
LOWER(str)
-
示例:
SELECT LOWER('HELLO') AS result; -- 输出:hello
-
拓展:
-
常用于数据标准化。
-
示例:
SELECT LOWER(name) AS lower_name FROM users;
-
14. CONCAT_WS()
-
作用:使用指定的分隔符连接多个字符串。
-
语法:
CONCAT_WS(separator, str1, str2, ...)
-
示例:
SELECT CONCAT_WS('-', '2023', '10', '01') AS result; -- 输出:2023-10-01
-
拓展:
-
如果分隔符为
NULL
,结果将为NULL
。 -
示例:
SELECT CONCAT_WS(',', 'Apple', 'Banana', 'Cherry') AS result;
-
15. REPLACE()
-
作用:替换字符串中的指定内容。
-
语法:
REPLACE(str, old_str, new_str)
-
示例:
SELECT REPLACE('Hello World', 'World', 'MySQL') AS result; -- 输出:Hello MySQL
-
拓展:
-
常用于数据清洗。
-
示例:
SELECT REPLACE(email, '@example.com', '@newdomain.com') AS new_email FROM users;
-
16. INSTR()
-
作用:返回子字符串在字符串中的位置。
-
语法:
INSTR(str, substr)
-
示例:
SELECT INSTR('Hello World', 'World') AS position; -- 输出:7
-
拓展:
-
如果子字符串不存在,返回 0。
-
示例:
SELECT INSTR(email, '@') AS at_position FROM users;
-
17. TRIM()
-
作用:去除字符串两端的空格。
-
语法:
TRIM(str)
-
示例:
SELECT TRIM(' Hello World ') AS result; -- 输出:Hello World
-
拓展:
-
可以去除指定字符。
-
示例:
SELECT TRIM('x' FROM 'xxxHello Worldxxx') AS result;
-
18. IFNULL()
-
作用:如果第一个参数为
NULL
,则返回第二个参数。 -
语法:
IFNULL(expr1, expr2)
-
示例:
SELECT IFNULL(NULL, 'Default') AS result; -- 输出:Default
-
拓展:
-
常用于处理空值。
-
示例:
SELECT IFNULL(phone, 'No Phone') AS contact FROM users;
-
19. SYSDATE()
-
作用:返回当前日期和时间。
-
语法:
SYSDATE()
-
示例:
SELECT SYSDATE() AS current_time; -- 输出:2023-10-01 12:34:56
-
拓展:
-
常用于记录时间戳。
-
示例:
INSERT INTO logs (message, created_at) VALUES ('New Log', SYSDATE());
-
20. FLOOR()
-
作用:返回小于或等于指定值的最大整数。
-
语法:
FLOOR(number)
-
示例:
SELECT FLOOR(3.7) AS result; -- 输出:3
-
拓展:
-
常用于向下取整。
-
示例:
SELECT FLOOR(price) AS floor_price FROM products;
-
21. CEIL()
-
作用:返回大于或等于指定值的最小整数。
-
语法:
CEIL(number)
-
示例:
SELECT CEIL(3.2) AS result; -- 输出:4
-
拓展:
-
常用于向上取整。
-
示例:
SELECT CEIL(price) AS ceil_price FROM products;
-
22. ROUND()
-
作用:对数字进行四舍五入。
-
语法:
ROUND(number, decimals)
-
示例:
SELECT ROUND(3.65, 1) AS result; -- 输出:3.7
-
拓展:
-
常用于格式化数字。
-
示例:
SELECT ROUND(price, 2) AS rounded_price FROM products;
-
23. ABS()
-
作用:返回数字的绝对值。
-
语法:
ABS(number)
-
示例:
SELECT ABS(-10) AS result; -- 输出:10
-
拓展:
-
常用于计算距离。
-
示例:
SELECT ABS(current_value - target_value) AS difference FROM metrics;
-
24. LOG()
-
作用:返回数字的自然对数。
-
语法:
LOG(number)
-
示例:
SELECT LOG(10) AS result; -- 输出:2.302585
-
拓展:
-
常用于数学计算。
-
示例:
SELECT LOG(price) AS log_price FROM products;
-
25. JOIN
-
作用:用于连接两个或多个表。
-
语法:
JOIN table ON condition
-
示例:
SELECT users.name, orders.order_id FROM users JOIN orders ON users.id = orders.user_id;
-
拓展:
-
支持
INNER JOIN
、LEFT JOIN
、RIGHT JOIN
和FULL JOIN
。 -
示例:
SELECT users.name, orders.order_id FROM users LEFT JOIN orders ON users.id = orders.user_id;
-
26. HAVING
-
作用:用于对分组后的数据进行过滤。
-
语法:
HAVING condition
-
示例:
SELECT user_id, COUNT(*) AS order_count FROM orders GROUP BY user_id HAVING order_count > 5;
-
拓展:
-
HAVING
常用于聚合函数后的过滤。 -
示例:
SELECT category, AVG(price) AS avg_price FROM products GROUP BY category HAVING avg_price > 50;
-
相关文章:
MySQL基础操作(2)
目录 1. CONCAT() 2. 3. ! 或 <> 4. IS NULL 5. IS NOT NULL 6. BETWEEN ... AND ... 7. LIKE 8. ORDER BY 9. LIMIT 10. LENGTH() 11. SUBSTR() 12. UPPER() 13. LOWER() 14. CONCAT_WS() 15. REPLACE() 16. INSTR() 17. TRIM() 18. IFNULL() 19. SY…...

Windows环境 (Ubuntu 24.04.1 LTS ) 国内镜像,用apt-get命令安装RabbitMQ
一、环境 Windows11 WSL(Ubuntu 24.04.1) 二、思路 1 用Windows中的Ubuntu安装RabbitMQ,贴近Linux的线上环境; 2 RabbitMQ用erlang语言编写的,先安装erlang的运行环境; 2 用Linux的apt-get命令安装,解决软件依赖…...

web网页前后端交互方式
参考该文, 一、前端通过表单<form>向后端发送数据 前端是通过html中的<form>表单,设置method属性定义发送表单数据的方式是get还是post。 如使用get方式,则提交的数据会在url中显示;如使用post方式,提交…...

LN61C 高精度 低功耗 小封装 电压检测芯片
1、产品概述 LN61C 系列芯片是使用 CMOS 技术开发的高精度、低功耗、 小封装电压检测芯片。检测电压在小温度漂移的情况下保持 极高的精度。客户可选择 CMOS 输出或 Open Drain 输出。 2、产品特点 高精度: 2% 低功耗:2.0A ( VIN1.5V …...

自动驾驶控制与规划——Project 2: 车辆横向控制
目录 零、任务介绍一、环境配置二、算法三、代码实现四、效果展示 零、任务介绍 补全src/ros-bridge/carla_shenlan_projects/carla_shenlan_stanley_pid_controller/src/stanley_controller.cpp中的TODO部分。 一、环境配置 上一次作业中没有配置docker使用gpu,…...

Bootstrap-HTML(五)图像基础样式
Bootstrap-HTML(五)图像基础样式 前言一、圆角图片二、圆形图片三、缩略图四、对齐图像五、图片居中六、响应式图片 前言 在之前的博客中,我们已经详细了解了 Bootstrap5 中诸多实用的组件和样式类,比如徽章与表格等,…...
bain.js(十二):RNN神经网络实战教程 - 音乐乐谱生成 -人人都是作曲家~
系列文章: (一):可以在浏览器运行的、默认GPU加速的神经网络库概要介绍(二):项目集成方式详解(三):手把手教你配置和训练神经网络(四)…...

Endnote | 查看文献所在分组
软件版本:Endnote X8 第一种方式: 在文献上右键——记录摘要,即可在弹出页面上看到自定义和智能组的分组情况。 第二种方式: 在菜单栏点击文献——记录摘要,也可以查看分组情况。 注: 新版本的endnote软件…...

DateRangePickerDialog组件的用法
文章目录 概念介绍使用方法示例代码我们在上一章回中介绍了DatePickerDialog Widget相关的内容,本章回中将介绍DateRangePickerDialog Widget.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里说的DateRangePickerDialog是一种弹出窗口,只不过窗口的内容固定显示为…...
数据库合并操作:深入理解 MERGE INTO 语句
在数据管理和操作中,我们常常面临着将源数据合并到目标表中的需求。无论是对现有记录进行更新,还是对缺失的记录进行插入,甚至有时候需要删除不再符合条件的记录,这些操作通常都需要多条 SQL 语句来完成。然而,SQL 中有…...

联发科MTK8788_MT8788安卓核心板安兔兔跑分_安卓主板方案商
MT8788安卓核心板具有集成的蓝牙、fm、WLAN和gps模块,是一个高度集成的基带平台,包括调制解调器和应用处理子系统,启用LTE/LTE-A和C2K智能设备应用程序。该芯片集成了工作在2.0GHz的ARM Cortex-A73、最高可达2.0GHz的ARM Cortex-A53和功能强大…...
计算机网络技术基础:6.数据传输方式
数据传输是指利用信号把数据从发送端传送到接收端的过程,通常可以从多个不同的角度对数据传输方式进行描述。 一、并行传输和串行传输 数据在信道上传输时,按照使用信道的多少可以分为串行传输和并行传输两种方式。 1.串行传输 在计算机中,…...

免费开源了一个图床工具 github-spring-boot-starter
文章目录 第一步,新建一个SpringBoot项目第二步,在pom文件里面引入jar包第三步,配置你的github信息github.authorization1、进入github官网,登录账号,点击头像,选择setting2、选择[Developer Settings](htt…...

Mysql之YUM安装时GPG 密钥报错问题处理
一、背景说明 使用YUM安装mysql5.7的时候报错,报错信息提示未安装公钥。博主查看/etc/yum.repos.d/mysql-community.repo配置文件中关于公钥的配置,确实启用了公钥验证,博主再排查过程中还是走了一些弯路,最终顺利解决了ÿ…...
Hw亮度省电
1. 亮度控制策略 /decompile-hw/decompile/app/HwPowerGenieEngine3/src/main/res/xml/backlight_policy.xml <?xml version"1.0" encoding"utf-8"?> 2 <backlight_policy xmlns:android"http://schemas.android.com/apk/res/android&qu…...
【信息系统项目管理师-论文真题】2015下半年论文详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论题一:大项目或多项目的成本管理解题思路写作要点论题二:项目的采购管理解题思路写作要点论题一:大项目或多项目的成本管理 随着移动互联网、物联网、云计算、大数据等新一代信息技术的广泛应用,我国目前…...

django的model中定义【记录修改次数】的这个字段该用什么类型
django中定义对于某个文章应用的数据库中使用到记录修改次数的这个字段 如models.py中的配置 from django.db import models from django.utils import timezone from django.contrib.postgres.fields import ArrayFieldclass Article(models.Model):# Titlestitle_cn model…...

windows openssl编译x64版libssl.lib,编译x64版本libcurl.lib,支持https,vs2015编译器
不要纠结,直接选择用perl编译! 告诫想要用弄成vs编译版的,暂时先别给自己增加麻烦 告诫,以下执行的每一步,都不要纠结 先安装环境 nasm 64位版本 https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/win64/nasm-…...
搭建 Elasticsearch 集群:完整教程
本文将详细介绍如何在 Linux 环境下搭建一个 Elasticsearch 集群,涵盖环境准备、配置优化、服务启动等多个环节。 一、环境准备 创建安装目录 mkdir /es cd /es解压 Elasticsearch 安装包 tar -xzf elasticsearch-7.10.1-linux-x86_64.tar.gz -C /es配置环境变量 编…...
如何实现序列化和反序列化?如何处理对象的生命周期管理?
序列化和反序列化 实现思路: 序列化:将对象的状态信息转换为可以存储或传输的格式,通常是字节流。 确定要序列化的对象的数据成员。将这些数据成员按照一定的规则(如二进制、文本、JSON、XML 等)编码为字节序列。将生…...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...