数据库学习笔记-05(MySQL )->函数的使用

39 阅读2分钟

常见的函数分类

  • 字符串函数
  • 日期时间函数
  • 聚合统计函数
  • 数学函数
  • 其他函数

1、字符串函数

image.png

SELECT LENGTH('张');
SELECT LENGTH(1);
SELECT LENGTH('a');

SELECT CONCAT('AB', '-CD', 'EF');
SELECT CONCAT('AB', '-CD', 'EF', NULL);

SELECT LOWER('Abc');

SELECT TRIM('  Abc  ');

2、日期时间函数

image.png

image.png

image.png

image.png

SELECT CURRENT_DATE(), CURDATE();

SELECT DATE_FORMAT(CURRENT_TIMESTAMP, '%y年%m月');
SELECT DATE_FORMAT(created_at, '%y年%m月') FROM school_student_grade;

日期时间计算函数

image.png

-- 增加1个小时
SELECT CURRENT_TIMESTAMP, DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 1 HOUR);
-- 增加2小时5分钟
SELECT CURRENT_TIME, ADDTIME(CURRENT_TIME, "02:05:00");

加减单位选项: image.png

-- 将考试时间增加1年
SELECT *, ADDDATE(created_at,INTERVAL 1 YEAR) FROM school_student_grade;

3、聚合统计函数

  • 统计总行数:COUNT()
  • 指定列的最大/最小值:MAX()/MIN()
  • 指定列的总和:SUM()
  • 指定列的平均数:AVG()
-- 统计本班的学生人数
SELECT COUNT(*) FROM school_student_info;
SELECT COUNT(*) FROM school_student_info WHERE class_name = '三年级一班';

SELECT COUNT(stu_no) FROM school_student_info WHERE class_name = '三年级一班';
SELECT COUNT(1) FROM school_student_info WHERE class_name = '三年级一班';

-- 统计本班语文成绩的最高分/最低分
SELECT * FROM school_student_grade WHERE course_id = 1;
SELECT MAX(score), MIN(score) FROM school_student_grade WHERE course_id = 1;

-- 统计本班语文成绩的平均分
SELECT AVG(score) FROM school_student_grade WHERE course_id=1;

-- 统计学生张某的各科总分
SELECT * FROM school_student_info WHERE stu_name = '张三';
SELECT * FROM school_student_grade WHERE student_id = 5;
SELECT SUM(score) FROM school_student_grade WHERE student_id = 5;

4、其他函数

  • 求绝对值:ABS(X)
  • 求平方根:SQRT(X)
  • 求一个0~1之间的随机数:RAND()
  • 向下取整:FLOOR(), 向上取整:CEIL(x)
  • 三角函数:SIN(X)、COS(x)、TAN(x)等
  • 对数函数:LOG(x)
  • IF条件判断:IF(expr1, expr2, expr3) 满足条件expr1返回 expr2,否则返回 expr3
  • 获取数据库版本号:VERSION()
  • 加密函数:MD5(s)、SHA(s)、SHA2(s,l)
SELECT ABS(-10);
SELECT ABS(age) FROM school_student_info;

SELECT SQRT(4);

SELECT RAND(), RAND() * 100;

SELECT FLOOR(1.5), CEIL(1.5);

SELECT sex, IF(sex = '男', 'boy', 'girl') FROM school_student_info;

SELECT VERSION();

SELECT MD5('122222');
SELECT stu_no, MD5(stu_no) FROM school_student_info;