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

MySQL基础与常用函数详解

MySQL基础与常用函数详解

MySQL 是日常开发中使用最广泛的关系型数据库之一。本文系统梳理 MySQL 中约束、删除操作区别、聚合函数、查询语法及常用字符、日期、数值函数,帮助大家快速掌握基础用法。


一、约束与自动增长

1. 主键约束(PRIMARY KEY)

  • 一张表只能有一个主键,但它可以包含多个字段(联合主键)。
  • 主键自带非空和唯一属性,用于唯一标识每一行。
  • 删除主键约束的语法为:
    ALTERTABLE表名DROPPRIMARYKEY;

2. 自动增长(AUTO_INCREMENT)

  • 通常用于主键字段,实现数值自动递增。
  • 要求字段必须为整型(TINYINT、INT、BIGINT等),且必须作为键(一般就是主键)。
  • 插入时可不给该字段赋值,数据库会自动填充递增数值。

3. 其他常用约束

约束类型关键字说明
非空约束NOT NULL字段值不能为NULL
唯一约束UNIQUE字段值不可重复(允许多个NULL)
默认值约束DEFAULT 值未提供值时使用默认值
检查约束CHECK (条件)保证数据满足指定条件,如CHECK(age>=18)

二、数据删除方式与区别

操作命令删除内容表结构事务回滚效率
DELETEDELETE FROM 表名 WHERE 条件;数据行保留可以回滚,可找回数据较低(逐行删除)
TRUNCATETRUNCATE TABLE 表名;全部数据保留不可回滚高(直接释放空间)
DROPDROP TABLE 表名;数据+结构删除不可回滚
-- 删除18岁以下的学生记录(可回滚)DELETEFROMstudentsWHEREage<18;-- 清空日志表(不可回滚)TRUNCATETABLEaccess_log;-- 彻底删除临时表DROPTABLEtmp_data;

三、聚合函数

聚合函数用于对一组数据进行统计计算,常与GROUP BY配合使用。

函数作用
COUNT()统计行数
SUM()求和(数值列)
AVG()求平均值(数值列)
MAX()返回最大值
MIN()返回最小值
-- 统计学生人数、平均分、最高分SELECTCOUNT(*),AVG(score),MAX(score)FROMstudents;

四、基础查询与模糊查询

1. 基本查询语法

SELECT字段列表FROM表名WHERE条件;

条件中可使用比较运算符:=, >, <, >=, <=, <>

2. 模糊查询(LIKE)

  • %通配任意多个字符
  • _匹配单个字符
-- 查询姓名以“张”开头的用户SELECT*FROMuserWHEREnameLIKE'张%';-- 查询电话号码第二位是1的记录SELECT*FROMuserWHEREphoneLIKE'_1%';

五、常用字符函数

函数用法说明示例
CONCAT(s1,s2,…)将多个字符串拼接为一个字符串CONCAT('MySQL','5.7')MySQL5.7
CONCAT_WS(sep,s1,…)用指定分隔符拼接CONCAT_WS('-','2025','01','01')2025-01-01
LENGTH(str)返回字符串字节长度(与字符集有关)LENGTH('你好')— 在UTF8下通常为6
CHAR_LENGTH(str)返回字符串的字符个数CHAR_LENGTH('你好')→ 2
SUBSTR(str,pos,len)从pos位置开始截取len个字符SUBSTR('HelloWorld',2,3)ell
REPLACE(str,from,to)将str中的from替换为toREPLACE('abcab','ab','')c
INSTR(str,substr)返回substr在str中首次出现的位置INSTR('hello','ll')→ 3
TRIM(str)移除两端空格(默认)TRIM(' hi ')hi
TRIM(remstr FROM str)移除两端指定字符TRIM('*' FROM '**hi**')hi
LTRIM(str) / RTRIM(str)移除左/右空格LTRIM(' hi')hi

六、日期时间函数

1. 获取当前时间

  • NOW()SYSDATE()—— 当前日期+时间
  • CURDATE()—— 当前日期
  • CURTIME()—— 当前时间

2. 提取函数

SELECTYEAR(NOW()),MONTH(NOW()),DAY(NOW());-- 结果:2025 4 25

3. 日期加减

DATE_ADD(日期,INTERVAL数值 单位)DATE_SUB(日期,INTERVAL数值 单位)

单位可选:YEAR, MONTH, DAY, HOUR, MINUTE, SECOND 等。

SELECTDATE_ADD('2025-01-01',INTERVAL2MONTH);-- 2025-03-01

4. 日期差计算

  • DATEDIFF(date1, date2)—— 返回 date1 - date2 的天数。
  • TIMESTAMPDIFF(unit, datetime1, datetime2)—— 返回 datetime2 - datetime1 的值,单位可指定为 YEAR, MONTH, DAY 等。
SELECTDATEDIFF('2025-05-01','2025-04-01');-- 30SELECTTIMESTAMPDIFF(DAY,'2025-04-01','2025-05-01');-- 30

七、数值函数

函数说明示例
ABS(x)绝对值ABS(-10)→ 10
MOD(x,y)取余数MOD(10,3)→ 1
POW(x,y)x的y次方POW(2,3)→ 8
ROUND(x,d)四舍五入保留d位小数ROUND(3.1415,2)→ 3.14
CEIL(x)向上取整CEIL(3.1)→ 4
FLOOR(x)向下取整FLOOR(3.9)→ 3
TRUNCATE(x,d)直接截断保留d位小数(不四舍五入)TRUNCATE(3.149,2)→ 3.14

小结

本文覆盖了 MySQL 约束、删除操作区别、聚合函数、查询基础及三大类常用函数,这些是日常编写 SQL 时的高频知识点。建议将函数分类记忆,并多在练习中实践,能有效提升数据处理效率。后续可以进一步学习分组、多表连接、窗口函数等进阶内容。

http://www.jsqmd.com/news/701228/

相关文章:

  • EvoAgentX框架实战:构建自进化AI智能体生态系统的全流程指南
  • Whiz:基于AI的终端命令生成工具,提升开发效率
  • 机器学习中的矩阵运算核心技术与实战优化
  • 数字化办公助手:OpenClaw 部署与多软件联动
  • 2026防腐彩涂板哪家可靠:山东小草钢卷/山东彩涂卷/山东彩涂板/山东彩涂钢卷/山东彩钢卷/山东彩钢瓦钢卷/山东覆膜板/选择指南 - 优质品牌商家
  • 四博AI智能音响(4G S3版)方案设计:技术实现与代码解析
  • 长链思维推理:大模型深度思考的核心能力与工程实践指南
  • 2026青羊区黄金回收技术解析:离我最近的黄金回收、金店回收、金银回收、铂金回收、锦江区黄金回收、附近哪里有黄金回收的地方选择指南 - 优质品牌商家
  • 机器学习中异常值处理的原理与实践
  • 计算机科学中的软硬件逻辑等效原理及其应用
  • DXVK 2.7.1:如何实现Linux游戏性能的终极突破与Vulkan图形转换技术
  • 软考 系统架构设计师系列知识点之云原生架构设计理论与实践(19)
  • 2026年热门的电容咪头厂家综合对比分析 - 品牌宣传支持者
  • 2026年知名的全指向咪头厂家综合对比分析 - 行业平台推荐
  • 2025终极指南:免费在线查看Parquet文件的完整解决方案
  • 深度解析:wxauto微信自动化框架的架构设计与实现原理
  • 2026跨境独立站技术选型:Taoify API全开放架构,打造国产Shopify平替的技术壁垒
  • 2026橡胶定位器厂家联系方式推荐榜:橡胶减速带厂家、波形梁护栏厂家、热熔划线厂家、电动伸缩门厂家、车牌识别管理系统厂家选择指南 - 优质品牌商家
  • 深入解析Claude Code:AI编程助手核心架构与工程实践
  • 基于Velero备份与恢复Kubernetes集群
  • XGBoost:机器学习竞赛与工业应用的核心技术解析
  • FTP文件服务器
  • CUDA 13算子优化黄金窗口期仅剩47天(Hopper全系驱动强制升级倒计时):基于217个真实LLM推理kernel的profiling数据集实证优化路径
  • 神经网络联合建模:分类与回归任务的高效解决方案
  • 从零到一:手把手教你搭建Pandabuy风格淘宝代购系统全攻略
  • 假如LLM无限上下文了,RAG还有意义吗?
  • csp信奥赛C++高频考点专项训练之贪心算法 --【删数问题】:删数问题
  • 基于openEuler系统部署MySQL数据库主从
  • 【VSCode 2026工业协议解析插件终极指南】:覆盖Modbus/TCP、OPC UA、CANopen等12类协议,实测解析速度提升370%
  • 微软FinnTS:基于AutoML与LLM Agent的自动化时间序列预测框架