MySQL常用函数的举例及例子
### MySQL常用函数详解 #### 一、数学函数 在MySQL中,数学函数是处理数值数据的基本工具之一。这些函数能够帮助我们执行简单的算术运算、数值转换以及进行数学计算。 - **ABS(x)**:返回`x`的绝对值。例如,`ABS(-10)`返回10。 - **BIN(x)**:返回`x`的二进制表示。如果需要获取八进制或十六进制表示,则可以使用`OCT(x)`或`HEX(x)`函数。 - 示例:`BIN(5)`返回`'101'`。 - **CEILING(x)**:返回大于`x`的最小整数。同义词有`CEIL(x)`。 - 示例:`CEILING(3.2)`返回4。 - **EXP(x)**:返回`e`(自然对数的底)的`x`次方。例如,`EXP(1)`返回约2.71828。 - **FLOOR(x)**:返回小于`x`的最大整数。 - 示例:`FLOOR(3.7)`返回3。 - **GREATEST(x1, x2, ..., xn)**:从提供的多个数值中返回最大值。 - 示例:`GREATEST(3, 5, 1)`返回5。 - **LEAST(x1, x2, ..., xn)**:与`GREATEST()`相反,返回最小值。 - 示例:`LEAST(3, 5, 1)`返回1。 - **LN(x)**:返回`x`的自然对数。 - 示例:`LN(2.71828)`返回1。 - **LOG(x, y)**:返回`x`的以`y`为底的对数。 - 示例:`LOG(100, 10)`返回2。 - **MOD(x, y)**:返回`x`除以`y`的余数。 - 示例:`MOD(10, 3)`返回1。 - **PI()**:返回π(圆周率)的值。 - 示例:`PI()`返回3.141592653589793238。 - **RAND()**:返回0到1之间的随机数。可以接受一个种子作为参数来确定随机数序列。 - 示例:`RAND()`返回0.8311928984558955。 - **ROUND(x, y)**:返回`x`的四舍五入值,保留`y`位小数。 - 示例:`ROUND(3.14159, 2)`返回3.14。 - **SIGN(x)**:返回表示`x`符号的值:如果`x`为正则返回1;如果`x`为0则返回0;如果`x`为负则返回-1。 - 示例:`SIGN(-10)`返回-1。 - **SQRT(x)**:返回`x`的平方根。 - 示例:`SQRT(16)`返回4。 - **TRUNCATE(x, y)**:返回`x`截断到`y`位小数的结果。 - 示例:`TRUNCATE(3.14159, 2)`返回3.14。 #### 二、聚合函数 聚合函数通常与`GROUP BY`子句一起使用,在SQL查询中进行统计分析。 - **AVG(col)**:返回指定列的平均值。 - 示例:`SELECT AVG(price) FROM products;` - **COUNT(col)**:返回指定列中非NULL值的数量。 - 示例:`SELECT COUNT(*) FROM orders;` - **MIN(col)**:返回指定列的最小值。 - 示例:`SELECT MIN(quantity) FROM items;` - **MAX(col)**:返回指定列的最大值。 - 示例:`SELECT MAX(price) FROM products;` - **SUM(col)**:返回指定列的所有值之和。 - 示例:`SELECT SUM(quantity) FROM items;` - **GROUP_CONCAT(col)**:返回由属于一组的列值连接组合而成的结果。 - 示例:`SELECT GROUP_CONCAT(name SEPARATOR ', ') AS names FROM employees GROUP BY department;` #### 三、字符串函数 字符串函数用于处理和操作文本数据。 - **ASCII(char)**:返回字符的ASCII码值。 - 示例:`ASCII('A')`返回65。 - **BIT_LENGTH(str)**:返回字符串的比特长度。 - 示例:`BIT_LENGTH('abc')`返回24。 - **CONCAT(s1, s2, ..., sn)**:将多个字符串连接成一个字符串。 - 示例:`CONCAT('Hello', 'World')`返回`'HelloWorld'`。 - **CONCAT_WS(sep, s1, s2, ..., sn)**:将多个字符串连接成一个字符串,并用`sep`字符间隔。 - 示例:`CONCAT_WS('-', 'John', 'Doe')`返回`'John-Doe'`。 - **INSERT(str, x, y, instr)**:将字符串`str`从第`x`位置开始,`y`个字符长的子串替换为字符串`instr`。 - 示例:`INSERT('Hello World', 7, 5, 'MySQL')`返回`'Hello MySQL'`。 - **FIND_IN_SET(str, list)**:分析逗号分隔的`list`列表,如果发现`str`,返回`str`在`list`中的位置。 - 示例:`FIND_IN_SET('c', 'a,b,c,d')`返回3。 - **LCASE(str)** 或 **LOWER(str)**:返回将字符串`str`中所有字符改变为小写后的结果。 - 示例:`LCASE('Hello World')`返回`'hello world'`。 - **LEFT(str, x)**:返回字符串`str`中最左边的`x`个字符。 - 示例:`LEFT('Hello World', 5)`返回`'Hello'`。 - **LENGTH(s)**:返回字符串`s`中的字符数。 - 示例:`LENGTH('Hello')`返回5。 - **LTRIM(str)**:从字符串`str`中切掉开头的空格。 - 示例:`LTRIM(' Hello')`返回`'Hello'`。 - **POSITION(substr, str)**:返回子串`substr`在字符串`str`中第一次出现的位置。 - 示例:`POSITION('o' IN 'Hello')`返回4。 - **QUOTE(str)**:用反斜杠转义`str`中的单引号。 - 示例:`QUOTE('It\'s me')`返回`'It\''s me'`。 - **REPEAT(str, n)**:返回字符串`str`重复`n`次的结果。 - 示例:`REPEAT('Hi', 3)`返回`'HiHiHi'`。 - **REVERSE(str)**:返回颠倒字符串`str`的结果。 - 示例:`REVERSE('Hello')`返回`'olleH'`。 - **RIGHT(str, x)**:返回字符串`str`中最右边的`x`个字符。 - 示例:`RIGHT('Hello World', 5)`返回`'orld'`。 - **RTRIM(str)**:返回字符串`str`尾部的空格。 - 示例:`RTRIM('Hello ')`返回`'Hello'`。 - **STRCMP(s1, s2)**:比较字符串`s1`和`s2`。 - 示例:`STRCMP('Hello', 'hello')`返回1。 - **TRIM(str)**:去除字符串首部和尾部的所有空格。 - 示例:`TRIM(' Hello ')`返回`'Hello'`。 - **UCASE(str)** 或 **UPPER(str)**:返回将字符串`str`中所有字符转变为大写后的结果。 - 示例:`UCASE('Hello World')`返回`'HELLO WORLD'`。 #### 四、日期和时间函数 日期和时间函数主要用于处理日期和时间数据,进行时间计算。 - **CURDATE()** 或 **CURRENT_DATE()**:返回当前的日期。 - 示例:`CURDATE()`返回当前日期。 - **CURTIME()** 或 **CURRENT_TIME()**:返回当前的时间。 - 示例:`CURTIME()`返回当前时间。 - **DATE_ADD(date, INTERVAL int keyword)**:返回日期`date`加上间隔时间`int`的结果(`int`必须按照关键字进行格式化)。 - 示例:`DATE_ADD(CURRENT_DATE(), INTERVAL 6 MONTH)`返回当前日期后6个月的日期。 - **DATE_FORMAT(date, fmt)**:依照指定的`fmt`格式格式化日期`date`值。 - 示例:`DATE_FORMAT(NOW(), '%Y-%m-%d')`返回当前日期按年-月-日格式显示。 - **DATE_SUB(date, INTERVAL int keyword)**:返回日期`date`减去间隔时间`int`的结果(`int`必须按照关键字进行格式化)。 - 示例:`DATE_SUB(CURRENT_DATE(), INTERVAL 6 MONTH)`返回当前日期前6个月的日期。 - **DAYOFWEEK(date)**:返回`date`所代表的一星期中的第几天(1~7)。 - 示例:`DAYOFWEEK(CURRENT_DATE())`返回当前日期是一周中的第几天。 - **DAYOFMONTH(date)**:返回`date`是一个月的第几天(1~31)。 - 示例:`DAYOFMONTH(CURRENT_DATE())`返回当前日期是一个月中的第几天。 - **DAYOFYEAR(date)**:返回`date`是一年的第几天(1~366)。 - 示例:`DAYOFYEAR(CURRENT_DATE())`返回当前日期是一年中的第几天。 - **DAYNAME(date)**:返回`date`的星期名。 - 示例:`DAYNAME(CURRENT_DATE())`返回当前日期是星期几。 - **FROM_UNIXTIME(ts, fmt)**:根据指定的`fmt`格式,格式化UNIX时间戳`ts`。 - 示例:`FROM_UNIXTIME(1633122854, '%Y-%m-%d %H:%i:%s')`返回格式化的时间。 - **HOUR(time)**:返回`time`的小时值(0~23)。 - 示例:`HOUR(NOW())`返回当前时间的小时数。 - **MINUTE(time)**:返回`time`的分钟值(0~59)。 - 示例:`MINUTE(NOW())`返回当前时间的分钟数。 - **MONTH(date)**:返回`date`的月份值(1~12)。 - 示例:`MONTH(CURRENT_DATE())`返回当前日期的月份。 - **MONTHNAME(date)**:返回`date`的月份名。 - 示例:`MONTHNAME(CURRENT_DATE())`返回当前日期的月份名称。 - **NOW()**:返回当前的日期和时间。 - 示例:`NOW()`返回当前日期和时间。 - **QUARTER(date)**:返回`date`在一年中的季度(1~4)。 - 示例:`QUARTER(CURRENT_DATE())`返回当前日期所在的季度。 以上函数覆盖了MySQL中常用的数学函数、聚合函数、字符串函数以及日期和时间函数,通过合理运用这些函数可以帮助我们更加高效地处理数据库中的数据。
































- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- spring-boot-3.1.7.jar中文文档.zip
- spring-boot-3.1.8.jar中文文档.zip
- spring-boot-3.1.9.jar中文文档.zip
- spring-boot-3.1.10.jar中文文档.zip
- spring-boot-3.1.11.jar中文文档.zip
- spring-boot-3.1.12.jar中文文档.zip
- spring-boot-3.2.0.jar中文文档.zip
- spring-boot-3.2.0-M1.jar中文文档.zip
- spring-boot-3.2.0-M2.jar中文文档.zip
- spring-boot-3.2.0-M3.jar中文文档.zip
- spring-boot-3.2.0-RC1.jar中文文档.zip
- spring-boot-3.2.0-RC2.jar中文文档.zip
- spring-boot-3.2.1.jar中文文档.zip
- spring-boot-3.2.2.jar中文文档.zip
- spring-boot-3.2.3.jar中文文档.zip
- spring-boot-3.2.4.jar中文文档.zip


