news 2026/4/26 3:24:23

MySQL基础与常用函数详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 时的高频知识点。建议将函数分类记忆,并多在练习中实践,能有效提升数据处理效率。后续可以进一步学习分组、多表连接、窗口函数等进阶内容。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 3:22:32

深入解析Claude Code:AI编程助手架构、工具系统与安全实践

1. 项目概述与核心价值最近在深入研究AI编程助手领域&#xff0c;特别是那些能够真正理解代码上下文、执行复杂任务并自主学习的智能体&#xff08;Agent&#xff09;。在这个过程中&#xff0c;我系统性地拆解和分析了当前市面上一个极具代表性的项目——Claude Code。这不仅仅…

作者头像 李华
网站建设 2026/4/26 3:11:02

csp信奥赛C++高频考点专项训练之贪心算法 --【删数问题】:删数问题

csp信奥赛C高频考点专项训练之贪心算法 --【删数问题】&#xff1a;删数问题 题目描述 键盘输入一个高精度的正整数 nnn&#xff08;不超过 250250250 位&#xff09;&#xff0c;去掉其中任意 kkk 个数字后剩下的数字按原左右次序将组成一个新的非负整数。编程对给定的 nnn 和…

作者头像 李华
网站建设 2026/4/26 3:09:53

如何配置Oracle UTL_FILE目录_CREATE DIRECTORY语法与权限分配.txt

Navicat导出CSV为空的主因是数据未被真正选中或权限不足&#xff1a;需确认状态栏“已选Y条”非零、勾选“导出所有记录”、且用户具备目标表SELECT权限。导出CSV时文件为空但Navicat显示有数据这是典型的数据没真正“被选中”导出&#xff0c;不是bug&#xff0c;而是navicat在…

作者头像 李华
网站建设 2026/4/26 3:09:49

3分钟学会搭建私有AI平台:Open WebUI完全指南

3分钟学会搭建私有AI平台&#xff1a;Open WebUI完全指南 【免费下载链接】open-webui User-friendly AI Interface (Supports Ollama, OpenAI API, ...) 项目地址: https://gitcode.com/GitHub_Trending/op/open-webui 想要在本地部署一个功能完整的AI对话平台&#xf…

作者头像 李华
网站建设 2026/4/26 3:06:29

XDCP数字电位器在可编程I-V转换器中的应用与优化

1. T网络与XDCP在可编程I-V转换器中的核心原理电流-电压转换器&#xff08;I-V转换器&#xff09;是模拟电路设计中的基础模块&#xff0c;广泛应用于传感器信号调理、精密测量等领域。传统方案采用运算放大器配合固定电阻网络实现信号转换&#xff0c;但存在量程固定、小电流测…

作者头像 李华