内容正文:
河北省(计算机类)对口招生
《数据库原理与应用技术-MySQL》复习讲义
模块 2 MySQL基础知识
考点 5 MySQL常用函数(二)
【考纲要求】
1.掌握 MySQL字符串函数、日期和时间函数的概念及使用;
2.字符串函数:UPPER()、UCASE()、LEFT()、SUBSTRING()、RTRIM()、REVERSE()、FIELD()、 LOCATE()、POSITION()、INSTR();
3.日期和时间函数:CURDATE()、CURRENT_DATE()、CURTIME()、NOW()、CURRENT_TIME()、 DATEDIFF()、ADDDATE()、SUBDATE();
【知识网络】
【知识和技能要点】
一、MySQL字符串函数
1.大小写转换函数:UPPER()、UCASE()
语法:UPPER(字符串) / UCASE(字符串)
功能:将字符串中所有小写字母转为大写,大写字母、数字、符号不变。
示例:
UPPER('sql123') = 'SQL123'
UCASE('Mysql') = 'MYSQL'
2. 左侧截取函数 LEFT()
语法:LEFT(字符串, 长度n)
功能:从字符串最左侧开始,截取n个字符。
示例:LEFT('student',3) = 'stu'
3. 字符串截取函数 SUBSTRING()
语法:SUBSTRING(字符串, 起始位置, [截取长度])
功能:从指定位置截取字符串,可自定义起始位置和长度。
核心规则::MySQL字符串下标从1开始,不是从0开始。
示例:SUBSTRING('mysql',2,2) = 'ys'
省略长度:截取到字符串末尾。
4. 右侧去空格函数 RTRIM()
语法:RTRIM(字符串)
功能:仅去除字符串右侧尾部空格,左侧、中间空格保留。
易混辨析:LTRIM()去左侧空格,RTRIM()去右侧空格,TRIM()去除两端空格。
示例:RTRIM('mysql ') = 'mysql'
5. 字符串反转函数 REVERSE()
语法:REVERSE(字符串)
功能:将字符串整体首尾反转。
示例:REVERSE('abc') = 'cba'
6. 字段位置函数 FIELD()
语法:FIELD(对比字符串, 字符串1,字符串2,字符串3...)
功能:返回对比字符串在参数列表中的位置序号,匹配不到返回0。
考点规则
1. 匹配区分大小写;
2. 查找不到返回 0;
3. 存在多个相同值,返回第一个匹配位置。
示例:FIELD('b','a','b','c') = 2
7. 字符串查找定位函数:LOCATE()、POSITION()、INSTR()
三者核心功能一致:查找子串在主串中的位置,查找不到返回0,下标从1开始。
(1)LOCATE()
语法:LOCATE(子串, 主串)
(2)POSITION()
语法:POSITION(子串 IN 主串)
(3)INSTR()
语法:INSTR(主串, 子串)
二、MySQL日期和时间函数
1. 获取当前日期函数:CURDATE()、CURRENT_DATE()
语法:CURDATE() / CURRENT_DATE()
功能:获取当前系统日期,格式为 YYYY-MM-DD,不含时分秒。
考点:两个函数完全等价。
2. 获取当前时间函数:CURTIME()、CURRENT_TIME()
语法:CURTIME() / CURRENT_TIME()
功能:获取当前系统时间,格式为 HH:MM:SS,不含年月日。
考点:两个函数功能完全等价。
3. 获取完整日期时间函数 NOW()
语法:NOW()
功能:获取当前完整时间,格式为 YYYY-MM-DD HH:MM:SS。
对比记忆
CURDATE:仅日期
CURTIME:仅时间
NOW:日期+时间
4. 日期差值函数 DATEDIFF()
语法:DATEDIFF(日期1, 日期2)
功能:计算两个日期的天数差值。
计算公式:结果 = 日期1 - 日期2
规则
(1)只计算天数差,忽略时分秒;
(2)前减后,前大后小为正,前小后大为负;
示例:DATEDIFF('2026-09-01','2026-08-01') = 31
5. 日期增加函数 ADDDATE()
语法:ADDDATE(日期, 天数)
功能:对指定日期向后加天数,获取新日期。
示例:ADDDATE('2026-09-01',5) = '2026-09-06'
6. 日期减少函数 SUBDATE()
语法:SUBDATE(日期, 天数)
功能:对指定日期向前减天数,获取新日期。
示例:SUBDATE('2026-09-01',5) = '2026-08-27'
【练习题】
一、填空题
1.REVERSE('abcd') 执行之后得到的结果是________。
2.FIELD('x','a','b','x','d') 的返回结果是________。
3.FIELD 函数查找不到匹配内容时,函数返回值为________。
4.查找子串找不到的时候,LOCATE、POSITION、INSTR 这三个函数统一返回________。
5.DATEDIFF('2026-10-05','2026-10-01') 结果为________。
6.SUBDATE('2026-10-10',3) 得到的日期是________。
7.ADDDATE('2026-08-20',7),增加 7 天,结果为________。
8.DATEDIFF('2026-01-01','2026-01-10') 结果为________。
9.LEFT ('hello',2) 的执行结果是________。
10.若子串不存在,INSTR ('apple','zzz') 返回________。
二、选择题
1.关于 LOCATE('bc','abcd') 描述正确的是( )
A. 返回 2 B. 返回 3 C. 返回 0 D. 返回 4
2.只获取当前系统日期,不含时分秒,选用( )
A.NOW () B.CURDATE () C.CURTIME () D.DATEDIFF ()
3.DATEDIFF ('2026-03-01','2026-03-10') 结果为( )
A.9 B.-9 C.10 D.-10
4. SUBDATE('2026-1120',4) 运算结果是( )
A.20261116 B.20261124 C.20261104 D.20261220
5. 下列关于 FIELD 函数说法正确的是( )
A. 查找不到返回 NULL B. 区分大小写 C. 下标从 0 开始 D. 只能处理数字
6.ADDDATE('20260720',10)结果为()
A.20260710 B.20260730 C.20260801 D.20260830
7.获取当前系统只含日期,不含时间的函数组合( )
A.CURDATE ()、CURRENT_DATE () B.CURTIME ()、CURRENT_TIME ()
C.NOW ()、CURDATE () D.NOW ()、CURTIME ()
8.执行 SELECT POSITION('SQL' IN 'MySQL') 的结果是( )
A. 0 B. 2 C. 3 D. NULL
9.假设当前日期为 2026-08-26,执行 SELECT ADDDATE(CURDATE(), INTERVAL 7 DAY) 的结果是( )
A. '2026-08-19' B. '2026-09-02' C. '2026-09-01' D. '2026-08-33'
10.执行SELECT IF(INSTR('mysqlsql','sql')>3,'yes','no');返回结果是( )
A.yes B.no C.NULL D. 报错
3、 判断题
1. UPPER () 和 UCASE () 两个函数功能完全等价,都可以把小写字母转为大写。( )
2. RTRIM() 可以删除字符串左侧、右侧以及中间全部空格。( )
3. POSITION 函数使用时,关键字 IN 写在子串和主串中间。( )
4. CURDATE () 与 CURRENT_DATE () 功能完全等价。( )
5. NOW () 函数返回值格式为 YYYY-MM-DD HH:MM:SS。( )
6. SUBSTRING 函数截取字符串,起始位置下标从 0 开始。( )
7. SUBDATE('2026-09-01',10) 表示日期向前推 10 天。( )
8. FIELD('A', 'a', 'b', 'c') 会匹配成功返回 1。( )
9. SELECT SUBSTRING(RTRIM(' test '), 2, 3); 中 RTRIM 会先删除字符串左右两侧空格,再执行截取操作。( )
10. INSTR(REVERSE('student'), 't')与LOCATE('t',REVERSE('student')) 二者返回值相同。( )
【答案】
一、填空题
1. dcba 2. 3 3. 0 4. 0 5. 4 6. 20261007 7.20260827 8. -9 9. he 10. 0
二、选择题
1.A 2. B 3. B 4. A 5. B 6. B 7. A 8.C 9. B 10. B
三、判断题
1. √ 2.× 3. √ 4. √ 5. √ 6. × 7. √ 8. × 9. × 10. √
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$