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

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 JOINLEFT JOINRIGHT 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&#xff0c;贴近Linux的线上环境&#xff1b; 2 RabbitMQ用erlang语言编写的&#xff0c;先安装erlang的运行环境&#xff1b; 2 用Linux的apt-get命令安装&#xff0c;解决软件依赖…...

web网页前后端交互方式

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

LN61C 高精度 低功耗 小封装 电压检测芯片

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

自动驾驶控制与规划——Project 2: 车辆横向控制

目录 零、任务介绍一、环境配置二、算法三、代码实现四、效果展示 零、任务介绍 补全src/ros-bridge/carla_shenlan_projects/carla_shenlan_stanley_pid_controller/src/stanley_controller.cpp中的TODO部分。 一、环境配置 上一次作业中没有配置docker使用gpu&#xff0c;…...

Bootstrap-HTML(五)图像基础样式

Bootstrap-HTML&#xff08;五&#xff09;图像基础样式 前言一、圆角图片二、圆形图片三、缩略图四、对齐图像五、图片居中六、响应式图片 前言 在之前的博客中&#xff0c;我们已经详细了解了 Bootstrap5 中诸多实用的组件和样式类&#xff0c;比如徽章与表格等&#xff0c;…...

bain.js(十二):RNN神经网络实战教程 - 音乐乐谱生成 -人人都是作曲家~

系列文章&#xff1a; &#xff08;一&#xff09;&#xff1a;可以在浏览器运行的、默认GPU加速的神经网络库概要介绍&#xff08;二&#xff09;&#xff1a;项目集成方式详解&#xff08;三&#xff09;&#xff1a;手把手教你配置和训练神经网络&#xff08;四&#xff09…...

Endnote | 查看文献所在分组

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

DateRangePickerDialog组件的用法

文章目录 概念介绍使用方法示例代码我们在上一章回中介绍了DatePickerDialog Widget相关的内容,本章回中将介绍DateRangePickerDialog Widget.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里说的DateRangePickerDialog是一种弹出窗口,只不过窗口的内容固定显示为…...

数据库合并操作:深入理解 MERGE INTO 语句

在数据管理和操作中&#xff0c;我们常常面临着将源数据合并到目标表中的需求。无论是对现有记录进行更新&#xff0c;还是对缺失的记录进行插入&#xff0c;甚至有时候需要删除不再符合条件的记录&#xff0c;这些操作通常都需要多条 SQL 语句来完成。然而&#xff0c;SQL 中有…...

联发科MTK8788_MT8788安卓核心板安兔兔跑分_安卓主板方案商

MT8788安卓核心板具有集成的蓝牙、fm、WLAN和gps模块&#xff0c;是一个高度集成的基带平台&#xff0c;包括调制解调器和应用处理子系统&#xff0c;启用LTE/LTE-A和C2K智能设备应用程序。该芯片集成了工作在2.0GHz的ARM Cortex-A73、最高可达2.0GHz的ARM Cortex-A53和功能强大…...

计算机网络技术基础:6.数据传输方式

数据传输是指利用信号把数据从发送端传送到接收端的过程&#xff0c;通常可以从多个不同的角度对数据传输方式进行描述。 一、并行传输和串行传输 数据在信道上传输时&#xff0c;按照使用信道的多少可以分为串行传输和并行传输两种方式。 1.串行传输 在计算机中&#xff0c;…...

免费开源了一个图床工具 github-spring-boot-starter

文章目录 第一步&#xff0c;新建一个SpringBoot项目第二步&#xff0c;在pom文件里面引入jar包第三步&#xff0c;配置你的github信息github.authorization1、进入github官网&#xff0c;登录账号&#xff0c;点击头像&#xff0c;选择setting2、选择[Developer Settings](htt…...

Mysql之YUM安装时GPG 密钥报错问题处理

一、背景说明 使用YUM安装mysql5.7的时候报错&#xff0c;报错信息提示未安装公钥。博主查看/etc/yum.repos.d/mysql-community.repo配置文件中关于公钥的配置&#xff0c;确实启用了公钥验证&#xff0c;博主再排查过程中还是走了一些弯路&#xff0c;最终顺利解决了&#xff…...

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编译器

不要纠结&#xff0c;直接选择用perl编译&#xff01; 告诫想要用弄成vs编译版的&#xff0c;暂时先别给自己增加麻烦 告诫&#xff0c;以下执行的每一步&#xff0c;都不要纠结 先安装环境 nasm 64位版本 https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/win64/nasm-…...

搭建 Elasticsearch 集群:完整教程

本文将详细介绍如何在 Linux 环境下搭建一个 Elasticsearch 集群&#xff0c;涵盖环境准备、配置优化、服务启动等多个环节。 一、环境准备 创建安装目录 mkdir /es cd /es解压 Elasticsearch 安装包 tar -xzf elasticsearch-7.10.1-linux-x86_64.tar.gz -C /es配置环境变量 编…...

如何实现序列化和反序列化?如何处理对象的生命周期管理?

序列化和反序列化 实现思路&#xff1a; 序列化&#xff1a;将对象的状态信息转换为可以存储或传输的格式&#xff0c;通常是字节流。 确定要序列化的对象的数据成员。将这些数据成员按照一定的规则&#xff08;如二进制、文本、JSON、XML 等&#xff09;编码为字节序列。将生…...

告别“炼丹”:用ReVeal的GGNN+Triplet Loss实战代码漏洞检测,我踩过的坑你别踩

从理论到实践&#xff1a;ReVeal漏洞检测模型落地中的关键挑战与解决方案 在代码安全领域&#xff0c;深度学习技术的应用正经历着从实验室研究到工业落地的关键转折期。ReVeal作为近年来备受关注的漏洞检测框架&#xff0c;其结合GGNN图神经网络与Triplet Loss的创新设计&…...

企业级离线OCR深度解析:5大策略实现高性能文字识别

企业级离线OCR深度解析&#xff1a;5大策略实现高性能文字识别 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片&#xff0c;PDF文档识别&#xff0c;排除水印/页眉页脚&#xff0c;扫描/生成二维码。内置多国语言库…...

OpenClaw学习助手:Gemma-3-12b-it生成错题本与定制复习计划

OpenClaw学习助手&#xff1a;Gemma-3-12b-it生成错题本与定制复习计划 1. 为什么需要AI学习助手&#xff1f; 作为一名经常需要处理大量学习资料的开发者&#xff0c;我一直在寻找能够提升学习效率的工具。传统的错题本整理方式需要手动抄写题目、标注知识点、寻找同类练习题…...

告别‘空树’!用UIAutomation Client伪装无障碍工具,搞定新版微信自动化(附完整C#项目)

深度解析Windows UIAutomation在微信自动化中的高阶应用 微信作为国民级通讯工具&#xff0c;其PC端自动化一直是企业RPA和开发者关注的热点。随着微信4.1版本的更新&#xff0c;传统的UI自动化方案遭遇了重大挑战——UI树变得"空空如也"。这背后隐藏着怎样的技术原理…...

芯片缺货潮下的应对策略与国产替代方案

1. 芯片缺货潮下的行业现状最近我的一个产品项目中&#xff0c;原本采购价仅5元的ST品牌MCU&#xff08;微控制器&#xff09;价格飙升至70元&#xff0c;涨幅高达14倍。这个案例并非个例&#xff0c;而是当前全球半导体行业供应链危机的缩影。作为从业十余年的硬件工程师&…...

精益生产线功能拆解:如何利用精益生产线解决多品种小批量生产难题

在当前的制造业环境中&#xff0c;订单碎片化已成为常态&#xff0c;精益生产线不再是一个可选的优化项&#xff0c;而是企业生存的必修课。面对多品种、小批量的市场需求&#xff0c;传统的大批量流水线往往显得笨重不堪&#xff0c;频繁换型导致的停机、在制品积压造成的资金…...

OpenClaw Exec Approvals 机制:在安全与效率之间寻找平衡

OpenClaw Exec Approvals 机制&#xff1a;在安全与效率之间寻找平衡当你第一次看到 /approve 弹窗时&#xff0c;是选择 allow-once 还是 allow-always&#xff1f;这个看似简单的决定&#xff0c;背后是安全与便利的永恒博弈。引言 在 Agent 开发和工作流自动化的世界里&…...

基于西门子PLC的空压机组储气风冷机组自动控制系统:“手动自动切换、多机控制及实时监测报警系统

基于西门子plc的空压机组储气风冷机组自动控制系统 可以实现手动自动切换 三组空压机分别自动控制&#xff0c;自动检测三路压力 风冷机运行实时检测 报警查寻&#xff0c;参数设置等上周刚把车间那套跑了快十年的空压机组控制系统给换了&#xff0c;用的是西门子S7-1200&#…...

【数据结构】红黑树(Red-Black Tree)

前言在上一篇博客中&#xff0c;我们学习了 AVL 树&#xff0c;为了保持绝对的平衡&#xff0c;它在插入和删除时会疯狂地进行左旋和右旋。但在现代的Java集合框架中&#xff08;如 TreeMap、TreeSet&#xff0c;以及 Java 8 之后的 HashMap&#xff09;&#xff0c;并没有选择…...

揭秘JVM创世过程之Call Stub进入Java世界的门票

前言 本文旨在记录近期研读Java源码的学习心得与疑难问题。由于个人理解水平有限&#xff0c;文中内容可能存在疏漏&#xff0c;恳请读者不吝指正。 前情回顾 在揭秘JVM创世过程之两种语言首席外交官JavaCalls&#xff0c;一文中将JVM看作Java世界中一个拥有两种语言的领事馆…...