一、字符串函数练习题(10 题)

  1. 分别查询 'MySQL数据库' 的字节长度和字符个数
  2. 拼接字符串:'学号:'1001 姓名:'李四'
  3. 使用分隔符 - 拼接 '2026'0409
  4. 'mysql study' 转为大写,'MYSQL STUDY' 转为小写
  5. 去除 ' MySQL 实战 ' 左右两侧空格
  6. 截取 'hello mysql' 从第 3 个字符开始的 4 个字符
  7. 获取 'abcdefgh' 左侧 3 个字符、右侧 2 个字符
  8. '我喜欢Java' 中的 Java 替换为 MySQL
  9. 查询 'mysql is good'good 首次出现的位置
  10. 查询 'mysql''学习' 拼接后的总字节长度

<details><summary>答案</summary>

sql

SELECT LENGTH('MySQL数据库'), CHAR_LENGTH('MySQL数据库');

结果:13、9

sql

SELECT CONCAT('学号:',1001,' 姓名:','李四');

结果:学号:1001 姓名:李四

sql

SELECT CONCAT_WS('-','2026','04','09');

结果:2026-04-09

sql

SELECT UPPER('mysql study'), LOWER('MYSQL STUDY');

结果:MYSQL STUDY、mysql study

sql

SELECT TRIM('  MySQL 实战  ');

结果:MySQL 实战

sql

SELECT SUBSTRING('hello mysql',3,4);

结果:llo

sql

SELECT LEFT('abcdefgh',3), RIGHT('abcdefgh',2);

结果:abc、gh

sql

SELECT REPLACE('我喜欢Java','Java','MySQL');

结果:我喜欢 MySQL

sql

SELECT INSTR('mysql is good','good');

结果:9

sql

SELECT LENGTH(CONCAT('mysql','学习'));

结果:9

</details>


二、数值函数练习题(10 题)

  1. 查询 -25 的绝对值
  2. 计算 27 除以 4 的余数
  3. 3.1415926 四舍五入保留 3 位小数
  4. 6.2 向上取整,对 9.8 向下取整
  5. 计算 4 的 3 次方
  6. 49 的平方根
  7. 生成 0~1 之间的随机数
  8. 查询圆周率 π 的值
  9. 8.5 四舍五入取整数
  10. 计算 ABS(-10) + PI() 的结果

<details><summary>答案</summary>

  1. SELECT ABS(-25); → 25
  2. SELECT MOD(27,4); → 3
  3. SELECT ROUND(3.1415926,3); → 3.142
  4. SELECT CEIL(6.2), FLOOR(9.8); → 7、9
  5. SELECT POW(4,3); → 64
  6. SELECT SQRT(49); → 7
  7. SELECT RAND(); → 随机小数
  8. SELECT PI(); → 3.141593
  9. SELECT ROUND(8.5); → 9
  10. SELECT ABS(-10)+PI(); → 13.141593

</details>


三、日期时间函数练习题(15 题)

  1. 查询当前完整日期时间(NOW ())
  2. 查询当前系统实时时间(SYSDATE ())
  3. 查询当前时间戳(CURRENT_TIMESTAMP ())
  4. 查询本地当前时间(LOCALTIME ())
  5. 查询当前日期(不含时间)
  6. 查询当前时间(不含日期)
  7. 提取当前时间的年份、月份、日期
  8. 提取当前时间的小时、分钟、秒
  9. 格式化当前日期为 YYYY年MM月DD日
  10. 计算 2026-10-012026-04-09 相差天数
  11. 在当前日期上加 2 个月
  12. 在当前日期上减 10 天
  13. 查询 NOW()SYSDATE() 是否相等
  14. 提取 '2026-04-09 15:30:25' 的小时数
  15. 格式化当前时间为 HH时ii分ss秒

<details><summary>答案</summary>

  1. SELECT NOW();
  2. SELECT SYSDATE();
  3. SELECT CURRENT_TIMESTAMP();
  4. SELECT LOCALTIME();
  5. SELECT CURDATE();
  6. SELECT CURTIME();
  7. SELECT YEAR(NOW()), MONTH(NOW()), DAY(NOW());
  8. SELECT HOUR(NOW()), MINUTE(NOW()), SECOND(NOW());
  9. SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日');
  10. SELECT DATEDIFF('2026-10-01','2026-04-09'); → 175
  11. SELECT DATE_ADD(CURDATE(),INTERVAL 2 MONTH);
  12. SELECT DATE_SUB(CURDATE(),INTERVAL 10 DAY);
  13. SELECT NOW()=SYSDATE(); → 一般为 1(相等)
  14. SELECT HOUR('2026-04-09 15:30:25'); →15
  15. SELECT DATE_FORMAT(NOW(),'%H时%i分%s秒');

</details>


四、条件判断函数练习题(6 题)

  1. 判断 75 是否≥60,是返回及格,否返回不及格
  2. 若字段值为 NULL,显示无成绩,否则显示原值(用 IFNULL)
  3. 比较 1010,相等返回 NULL,否则返回前者
  4. 对成绩 92 分级:≥90 优秀,≥60 及格,否则不及格
  5. 对成绩 NULL 显示缺考,59 显示不及格,85 显示及格
  6. 使用 CASE WHEN 判断 150 是否大于 100,返回是/否

<details><summary>答案</summary>

sql

SELECT IF(75>=60,'及格','不及格');

→ 及格

sql

SELECT IFNULL(NULL,'无成绩');

→ 无成绩

sql

SELECT NULLIF(10,10);

→ NULL

sql

SELECT CASE WHEN 92>=90 THEN '优秀' WHEN 92>=60 THEN '及格' ELSE '不及格' END;

→ 优秀

sql

SELECT CASE WHEN NULL IS NULL THEN '缺考' WHEN 59<60 THEN '不及格' ELSE '及格' END;

→ 缺考

sql

SELECT CASE WHEN 150>100 THEN '是' ELSE '否' END;

→ 是

</details>


五、系统信息函数练习题(4 题)

  1. 查询当前 MySQL 版本号
  2. 查询当前正在使用的数据库名
  3. 查询当前登录数据库的用户
  4. 对字符串 '123456' 进行 MD5 加密

<details><summary>答案</summary>

  1. SELECT VERSION();
  2. SELECT DATABASE();
  3. SELECT USER();
  4. SELECT MD5('123456'); → e10adc3949ba59abbe56e057f20f883e

</details>


六、综合练习题(5 题)

  1. 查询 'MySQL' 的字符长度 + 圆周率的整数部分
  2. 拼接当前日期和'学习打卡',格式:2026-04-09 学习打卡
  3. 对成绩 88.6 四舍五入为整数,并判断是否及格
  4. 去除 ' mysql函数练习 ' 空格后转大写
  5. 查询当前时间的年份减去 2020 的结果

<details><summary>答案</summary>

  1. SELECT CHAR_LENGTH('MySQL')+FLOOR(PI()); → 5+3=8
  2. SELECT CONCAT(CURDATE(),'学习打卡');
  3. SELECT IF(ROUND(88.6)>=60,'及格','不及格'); → 及格
  4. SELECT UPPER(TRIM(' mysql函数练习 ')); → MYSQL 函数练习
  5. SELECT YEAR(NOW())-2020; → 6

</details>

Logo

一座年轻的奋斗人之城,一个温馨的开发者之家。在这里,代码改变人生,开发创造未来!

更多推荐