[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"knowledge-\u002Fapi\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Ftool":3,"knowledge-related-\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Ftool":738,"knowledge-series-\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Ftool":764},{"source":4,"connector":5,"page":6},"sqlite","better-sqlite3",{"path":7,"title":8,"description":9,"category":10,"tags":11,"date":14,"pinned":15,"draft":15,"body":16,"seo":734,"stem":735,"id":736,"extension":737},"\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Ftool","常用函数","MySQL 提供了丰富的内置函数，用于处理字符串、数值、日期和时间以及条件逻辑。下面分类介绍最常用的基础函数。","技能小册",[12,13],"mysql","tool","2026-01-19",false,{"type":17,"value":18,"toc":724},"minimark",[19,22,27,30,35,185,189,303,307,428,432,488,497,517,582,586,676,679,682,720],[20,21,8],"h1",{"id":8},[23,24,26],"h2",{"id":25},"mysql-常用函数基础","MySQL 常用函数（基础）",[28,29,9],"p",{},[31,32,34],"h3",{"id":33},"一字符串函数","一、字符串函数",[36,37,38,57],"table",{},[39,40,41],"thead",{},[42,43,44,48,51,54],"tr",{},[45,46,47],"th",{},"函数",[45,49,50],{},"说明",[45,52,53],{},"示例",[45,55,56],{},"结果",[58,59,60,82,108,130,154],"tbody",{},[42,61,62,69,72,77],{},[63,64,65],"td",{},[66,67,68],"code",{},"CONCAT(str1, str2, ...)",[63,70,71],{},"拼接多个字符串",[63,73,74],{},[66,75,76],{},"SELECT CONCAT('Hello', ' ', 'World');",[63,78,79],{},[66,80,81],{},"Hello World",[42,83,84,89,97,103],{},[63,85,86],{},[66,87,88],{},"LENGTH(str)",[63,90,91,92,96],{},"返回字符串的",[93,94,95],"strong",{},"字节长度","（受字符集影响）",[63,98,99,102],{},[66,100,101],{},"SELECT LENGTH('你好');","（UTF-8 下）",[63,104,105],{},[66,106,107],{},"6",[42,109,110,115,120,125],{},[63,111,112],{},[66,113,114],{},"CHAR_LENGTH(str)",[63,116,91,117],{},[93,118,119],{},"字符长度",[63,121,122],{},[66,123,124],{},"SELECT CHAR_LENGTH('你好');",[63,126,127],{},[66,128,129],{},"2",[42,131,132,141,144,149],{},[63,133,134,137,138],{},[66,135,136],{},"UPPER(str)"," \u002F ",[66,139,140],{},"LOWER(str)",[63,142,143],{},"转为大写 \u002F 小写",[63,145,146],{},[66,147,148],{},"SELECT UPPER('mysql');",[63,150,151],{},[66,152,153],{},"MYSQL",[42,155,156,161,175,180],{},[63,157,158],{},[66,159,160],{},"SUBSTRING(str, pos, len)",[63,162,163,164,167,168,171,172,174],{},"从 ",[66,165,166],{},"pos"," 位置开始截取 ",[66,169,170],{},"len"," 个字符（",[66,173,166],{}," 从 1 开始）",[63,176,177],{},[66,178,179],{},"SELECT SUBSTRING('Hello World', 7, 5);",[63,181,182],{},[66,183,184],{},"World",[31,186,188],{"id":187},"二数值函数","二、数值函数",[36,190,191,203],{},[39,192,193],{},[42,194,195,197,199,201],{},[45,196,47],{},[45,198,50],{},[45,200,53],{},[45,202,56],{},[58,204,205,232,256,282],{},[42,206,207,212,222,227],{},[63,208,209],{},[66,210,211],{},"ROUND(num, d)",[63,213,214,215,218,219,221],{},"四舍五入，保留 ",[66,216,217],{},"d"," 位小数（",[66,220,217],{}," 省略则为 0）",[63,223,224],{},[66,225,226],{},"SELECT ROUND(12.345, 2);",[63,228,229],{},[66,230,231],{},"12.35",[42,233,234,239,246,251],{},[63,235,236],{},[66,237,238],{},"FLOOR(num)",[63,240,241,242,245],{},"向下取整（返回不大于 ",[66,243,244],{},"num"," 的最大整数）",[63,247,248],{},[66,249,250],{},"SELECT FLOOR(12.99);",[63,252,253],{},[66,254,255],{},"12",[42,257,258,266,272,277],{},[63,259,260,137,263],{},[66,261,262],{},"CEIL(num)",[66,264,265],{},"CEILING(num)",[63,267,268,269,271],{},"向上取整（返回不小于 ",[66,270,244],{}," 的最小整数）",[63,273,274],{},[66,275,276],{},"SELECT CEIL(12.01);",[63,278,279],{},[66,280,281],{},"13",[42,283,284,289,292,297],{},[63,285,286],{},[66,287,288],{},"RAND()",[63,290,291],{},"返回 [0, 1) 的随机浮点数",[63,293,294],{},[66,295,296],{},"SELECT RAND();",[63,298,299,300],{},"例如 ",[66,301,302],{},"0.123456",[31,304,306],{"id":305},"三日期函数","三、日期函数",[36,308,309,322],{},[39,310,311],{},[42,312,313,315,317,319],{},[45,314,47],{},[45,316,50],{},[45,318,53],{},[45,320,321],{},"结果（假设当前时间 2025-04-25 10:30:00）",[58,323,324,344,364,384,404],{},[42,325,326,331,334,339],{},[63,327,328],{},[66,329,330],{},"NOW()",[63,332,333],{},"当前日期和时间",[63,335,336],{},[66,337,338],{},"SELECT NOW();",[63,340,341],{},[66,342,343],{},"2025-04-25 10:30:00",[42,345,346,351,354,359],{},[63,347,348],{},[66,349,350],{},"CURDATE()",[63,352,353],{},"当前日期",[63,355,356],{},[66,357,358],{},"SELECT CURDATE();",[63,360,361],{},[66,362,363],{},"2025-04-25",[42,365,366,371,374,379],{},[63,367,368],{},[66,369,370],{},"CURTIME()",[63,372,373],{},"当前时间",[63,375,376],{},[66,377,378],{},"SELECT CURTIME();",[63,380,381],{},[66,382,383],{},"10:30:00",[42,385,386,391,394,399],{},[63,387,388],{},[66,389,390],{},"DATE_ADD(date, INTERVAL value unit)",[63,392,393],{},"日期加法",[63,395,396],{},[66,397,398],{},"SELECT DATE_ADD('2025-04-25', INTERVAL 3 DAY);",[63,400,401],{},[66,402,403],{},"2025-04-28",[42,405,406,411,418,423],{},[63,407,408],{},[66,409,410],{},"DATEDIFF(date1, date2)",[63,412,413,414,417],{},"返回两个日期相差的天数（",[66,415,416],{},"date1 - date2","）",[63,419,420],{},[66,421,422],{},"SELECT DATEDIFF('2025-04-30', '2025-04-25');",[63,424,425],{},[66,426,427],{},"5",[31,429,431],{"id":430},"四条件函数","四、条件函数",[36,433,434,446],{},[39,435,436],{},[42,437,438,440,442,444],{},[45,439,47],{},[45,441,50],{},[45,443,53],{},[45,445,56],{},[58,447,448,468],{},[42,449,450,455,458,463],{},[63,451,452],{},[66,453,454],{},"IF(condition, true_val, false_val)",[63,456,457],{},"条件判断，类似于三元运算符",[63,459,460],{},[66,461,462],{},"SELECT IF(1 > 2, '是', '否');",[63,464,465],{},[66,466,467],{},"否",[42,469,470,475,478,483],{},[63,471,472],{},[66,473,474],{},"CASE ... WHEN ... THEN ... END",[63,476,477],{},"多分支条件，类似 switch-case",[63,479,480],{},[66,481,482],{},"SELECT CASE 2 WHEN 1 THEN '一' WHEN 2 THEN '二' ELSE '其他' END;",[63,484,485],{},[66,486,487],{},"二",[28,489,490,496],{},[93,491,492,495],{},[66,493,494],{},"CASE"," 两种用法","：",[498,499,500,509],"ol",{},[501,502,503,496,506],"li",{},[93,504,505],{},"简单 CASE",[66,507,508],{},"CASE value WHEN value1 THEN result1 WHEN value2 THEN result2 ... END",[501,510,511,496,514],{},[93,512,513],{},"搜索 CASE",[66,515,516],{},"CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... END",[518,519,524],"pre",{"className":520,"code":521,"language":522,"meta":523,"style":523},"language-sql shiki shiki-themes material-theme-lighter github-light github-dark","-- 搜索 CASE 示例\nSELECT\n    name,\n    CASE\n        WHEN age \u003C 18 THEN '未成年'\n        WHEN age BETWEEN 18 AND 65 THEN '成年'\n        ELSE '老年'\n    END AS age_group\nFROM users;\n","sql","",[66,525,526,534,540,546,552,558,564,570,576],{"__ignoreMap":523},[527,528,531],"span",{"class":529,"line":530},"line",1,[527,532,533],{},"-- 搜索 CASE 示例\n",[527,535,537],{"class":529,"line":536},2,[527,538,539],{},"SELECT\n",[527,541,543],{"class":529,"line":542},3,[527,544,545],{},"    name,\n",[527,547,549],{"class":529,"line":548},4,[527,550,551],{},"    CASE\n",[527,553,555],{"class":529,"line":554},5,[527,556,557],{},"        WHEN age \u003C 18 THEN '未成年'\n",[527,559,561],{"class":529,"line":560},6,[527,562,563],{},"        WHEN age BETWEEN 18 AND 65 THEN '成年'\n",[527,565,567],{"class":529,"line":566},7,[527,568,569],{},"        ELSE '老年'\n",[527,571,573],{"class":529,"line":572},8,[527,574,575],{},"    END AS age_group\n",[527,577,579],{"class":529,"line":578},9,[527,580,581],{},"FROM users;\n",[31,583,585],{"id":584},"五综合示例","五、综合示例",[518,587,589],{"className":520,"code":588,"language":522,"meta":523,"style":523},"-- 拼接姓名和年龄，并判断是否成年\nSELECT\n    CONCAT(name, ' (', age, ')') AS info,\n    IF(age >= 18, '成年', '未成年') AS status\nFROM students;\n\n-- 计算订单创建时间距离今天的天数，并分类\nSELECT\n    order_id,\n    DATEDIFF(CURDATE(), order_date) AS days_ago,\n    CASE\n        WHEN DATEDIFF(CURDATE(), order_date) \u003C= 7 THEN '近7天'\n        WHEN DATEDIFF(CURDATE(), order_date) \u003C= 30 THEN '30天内'\n        ELSE '更早'\n    END AS category\nFROM orders;\n",[66,590,591,596,600,605,610,615,621,626,630,635,641,646,652,658,664,670],{"__ignoreMap":523},[527,592,593],{"class":529,"line":530},[527,594,595],{},"-- 拼接姓名和年龄，并判断是否成年\n",[527,597,598],{"class":529,"line":536},[527,599,539],{},[527,601,602],{"class":529,"line":542},[527,603,604],{},"    CONCAT(name, ' (', age, ')') AS info,\n",[527,606,607],{"class":529,"line":548},[527,608,609],{},"    IF(age >= 18, '成年', '未成年') AS status\n",[527,611,612],{"class":529,"line":554},[527,613,614],{},"FROM students;\n",[527,616,617],{"class":529,"line":560},[527,618,620],{"emptyLinePlaceholder":619},true,"\n",[527,622,623],{"class":529,"line":566},[527,624,625],{},"-- 计算订单创建时间距离今天的天数，并分类\n",[527,627,628],{"class":529,"line":572},[527,629,539],{},[527,631,632],{"class":529,"line":578},[527,633,634],{},"    order_id,\n",[527,636,638],{"class":529,"line":637},10,[527,639,640],{},"    DATEDIFF(CURDATE(), order_date) AS days_ago,\n",[527,642,644],{"class":529,"line":643},11,[527,645,551],{},[527,647,649],{"class":529,"line":648},12,[527,650,651],{},"        WHEN DATEDIFF(CURDATE(), order_date) \u003C= 7 THEN '近7天'\n",[527,653,655],{"class":529,"line":654},13,[527,656,657],{},"        WHEN DATEDIFF(CURDATE(), order_date) \u003C= 30 THEN '30天内'\n",[527,659,661],{"class":529,"line":660},14,[527,662,663],{},"        ELSE '更早'\n",[527,665,667],{"class":529,"line":666},15,[527,668,669],{},"    END AS category\n",[527,671,673],{"class":529,"line":672},16,[527,674,675],{},"FROM orders;\n",[28,677,678],{},"掌握这些基础函数可以大大简化 SQL 查询中的数据处理逻辑，避免在应用层进行额外计算。",[23,680,681],{"id":681},"参考文献",[36,683,684,693],{},[39,685,686],{},[42,687,688,691],{},[45,689,690],{},"资料",[45,692,50],{},[58,694,695,709],{},[42,696,697,706],{},[63,698,699],{},[700,701,705],"a",{"href":702,"rel":703},"https:\u002F\u002Fdev.mysql.com\u002Fdoc\u002Frefman\u002F8.0\u002Fen\u002F",[704],"nofollow","MySQL 8.0 手册",[63,707,708],{},"官方",[42,710,711,717],{},[63,712,713],{},[700,714,716],{"href":715},"\u002Fknowledge\u002Fbooklet\u002Fsql","数据存储导读",[63,718,719],{},"学习路径",[721,722,723],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":523,"searchDepth":536,"depth":536,"links":725},[726,733],{"id":25,"depth":536,"text":26,"children":727},[728,729,730,731,732],{"id":33,"depth":542,"text":34},{"id":187,"depth":542,"text":188},{"id":305,"depth":542,"text":306},{"id":430,"depth":542,"text":431},{"id":584,"depth":542,"text":585},{"id":681,"depth":536,"text":681},{"title":8,"description":9},"knowledge\u002Fbooklet\u002Fsql\u002FMySql\u002Ftool","knowledge\u002Fknowledge\u002Fbooklet\u002Fsql\u002FMySql\u002Ftool.md","md",{"items":739},[740,744,748,752,756,760],{"path":741,"title":742,"description":743,"category":10,"score":560},"\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Fjoin","多表查询","多表查询用于从两个或更多表中获取数据。常见的连接类型包括内连接、外连接（左、右）和自连接。",{"path":745,"title":746,"description":747,"category":10,"score":560},"\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Finstall","MySQL 安装与基本操作","MySQL 的安装因操作系统而异，但安装完成后，通过命令行客户端连接并进行基本管理的方法是通用的。下面分别介绍安装方式和常用命令。",{"path":749,"title":750,"description":751,"category":10,"score":560},"\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Ftype","数据类型","MySQL 支持多种数据类型，可分为数值、字符串、日期时间、枚举\u002F集合以及 JSON 等。选择合适的类型可以优化存储空间和查询性能。",{"path":753,"title":754,"description":755,"category":10,"score":560},"\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Fdql","查询数据","数据查询语言（DQL）用于从数据库中检索数据，核心是 SELECT 语句。下面从基础查询、条件筛选、排序、限制行数、聚合与分组等方面进行介绍。",{"path":757,"title":758,"description":759,"category":10,"score":560},"\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Fddl","数据库与表的基本操作","DDL（Data Definition Language）用于定义数据库结构，包括创建、修改、删除数据库和表。下面介绍 MySQL 中常用的 DDL 语句。",{"path":761,"title":762,"description":763,"category":10,"score":560},"\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Fdml","数据操作","DML（Data Manipulation Language）用于对表中的数据进行增（INSERT）、删（DELETE）、改（UPDATE）。下面详细介绍这三类操作。",{"series":765,"title":12,"items":766,"index":578,"prev":796,"next":797},"booklet\u002Fsql\u002Fmysql",[767,771,775,779,783,785,787,789,791,793,794],{"path":768,"title":769,"date":770,"pinned":15},"\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Fauth","用户与权限管理","2021-06-06",{"path":772,"title":773,"date":774,"pinned":15},"\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Fbackup","备份与恢复","2024-02-23",{"path":776,"title":777,"date":778,"pinned":15},"\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Fbase","MySQL 基础概念","2021-03-18",{"path":780,"title":781,"date":782,"pinned":15},"\u002Fknowledge\u002Fbooklet\u002Fsql\u002Fmysql\u002Fconstraints","约束","2020-03-31",{"path":757,"title":758,"date":784,"pinned":15},"2024-07-14",{"path":761,"title":762,"date":786,"pinned":15},"2024-05-30",{"path":753,"title":754,"date":788,"pinned":15},"2024-08-16",{"path":745,"title":746,"date":790,"pinned":15},"2025-04-04",{"path":741,"title":742,"date":792,"pinned":15},"2025-11-29",{"path":7,"title":8,"date":14,"pinned":15},{"path":749,"title":750,"date":795,"pinned":15},"2024-10-16",{"path":741,"title":742,"date":792,"pinned":15},{"path":749,"title":750,"date":795,"pinned":15}]