MySQL知识总结五(MySQL函数和运算符)

本文详细介绍了MySQL中的各种函数和运算符,包括字符串函数、数字函数、日期函数和高级函数,以及算术、比较、逻辑和位运算符。通过实例展示了如何使用这些函数和运算符进行数据操作和计算,帮助读者深入理解MySQL的数据处理能力。

MySQL知识总结五(MySQL函数和运算符)

MySQL知识总结一(MySQL常见术语)
MySQL知识总结二(MySQL基本操作)
MySQL知识总结三(MySQL查询数据)
MySQL知识总结四(SQL注入)
MySQL知识总结五(MySQL函数和运算符)

1、字符串函数

(1) ascii(str) 返回字符串str的第一个字符的ASCII码;
(2) char_length(str) 返回字符串str的字符数;
(3) character_length(str) 返回字符串str的字符数;
(4) concat(str1, str2, str3) 将字符串str1、str2、str3合并为一个字符串;
(5) concat_ws(x, str1, str2, str3) 同 concat(s1,s2,…) 函数,但是每个字符串之间要加上 x,x 可以是分隔符;
(6) field(s, str1, str2, str3) 返回第一个字符串 s 在字符串列表(s1,s2…)中的位置。如:SELECT FIELD(“c”, “a”, “b”, “c”, “d”, “e”);
(7) find_in_set(str1, str2) 返回在字符串str2中与str1匹配的字符串的位置。 如:SELECT FIND_IN_SET(“c”, “a,b,c,d,e”);
(8) format(x, n) 函数可以将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入;
(9) insert(str1, x, len, str2) 字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串;
(10) locate(str1, s) 从字符串 s 中获取 str1 的开始位置;
(11) lcase(str1) 将字符串 str1 的所有字母变成小写字母;
(12) left(s, n) 返回字符串 s 的前 n 个字符;
(13) lower(str1) 将字符串 str1 的所有字母变成小写字母;
(14) lpad(str1, len, str2) 在字符串 str1 的开始处填充字符串 str2,使字符串长度达到 len;
(15) ltrim(s) 去掉字符串 s 开始处的空格;
(16) mid(s, n, len) 从字符串 s 的 n 位置截取长度为 len 的子字符串,同 substring(s,n,len);
(17) position(s1 in s) 从字符串 s 中获取 s1 的开始位置;
(18) repeat(s, n) 将字符串 s 重复 n 次;
(19) replace(s, s1, s2) 将字符串 s2 替代字符串 s 中的字符串 s1;
(20) reverse(s) 将字符串s的顺序反过来;
(21) right(s, n) 返回字符串 s 的后 n 个字符;
(22) rpad(s1, len, s2) 在字符串 s1 的结尾处添加字符串 s2,使字符串的长度达到 len;
(23) rtrim(s) 去掉字符串 s 结尾处的空格;
(24) spacee(n) 返回 n 个空格;
(25) strcmp(s1, s2) 比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1;
(26) substr(s, start, length) 从字符串 s 的 start 位置截取长度为 length 的子字符串;
(27) substring(s, start, length) 从字符串 s 的 start 位置截取长度为 length 的子字符串;
(28) substring_index(s, delimiter, number) 返回从字符串 s 的第 number 个出现的分隔符 delimiter 之后的子串。如果 number 是正数,返回第 number 个字符左边的字符串。如果 number 是负数,返回第(number 的绝对值(从右边数))个字符右边的字符串;
(29) trim(s) 去掉字符串 s 开始和结尾处的空格;
(30) ucase(s) 将字符串转换为大写;
(31) upper(s) 将字符串转换为大写;

2、数字函数

(1)abs(x) 返回 x 的绝对值
(2)acos(x) 求 x 的反余弦值(单位为弧度),x 为一个数值;如:select acos(0.25);
(3)asin(x) 求反正弦值(单位为弧度),x 为一个数值
(4)atan(x) 求反正切值(单位为弧度),x 为一个数值
(5)atan2(n ,m) 求反正切值(单位为弧度)
(6)avg(expression) 返回一个表达式的平均值,expression 是一个字段
(7)ceil(x) 返回大于或等于 x 的最小整数 
(9)ceiling(x) 返回大于或等于 x 的最小整数 
(10)cos(x) 求余弦值(参数是弧度)
(11)cot(X) 求余切值(参数是弧度)
(12)count(expression) 返回查询的记录总数,expression 参数是一个字段或者 * 号
(13)degrees(x) 将弧度转换为角度
(14)n div m 整除,n 为被除数,m 为除数
(15)exp(x) 返回 e 的 x 次方  
(16)floor(x) 返回小于或等于 x 的最大整数 
(17)greatest(expr1, expr2, expr3) 返回列表中的最大值
(18)least(expr1, expr2, expr3) 返回列表中的最小值
(19)ln(x) 返回数字的自然对数,以 e 为底。
(20)log(x)或log(base, x) 返回自然对数(以 e 为底的对数),如果带有 base 参数,则 base 为指定带底数。 
(21)log10(x) 返回以 10 为底的对数  
(22)log2(x) 返回以 2 为底的对数
(23)max(expression) 返回字段 expression 中的最大值
(24)min(expression) 返回字段 expression 中的最小值
(25)mod(x, y) 返回 x 除以 y 以后的余数
(26)pi() 返回圆周率(3.141593) 
(27)pow(x, y) 返回 x 的 y 次方 
(28)power(x, y) 返回 x 的 y 次方 
(29)radians(x) 将角度转换为弧度  
(30)rand() 返回 0 到 1 的随机数 
(31)round() 返回离 x 最近的整数
(32)sign(x) 返回 x 的符号,x 是负数、0、正数分别返回 -1、0 和 1 
(33)sin(x) 求正弦值(参数是弧度)  
(34)sqrt(x) 返回x的平方根 
(35)sum(expression) 返回指定字段的总和
(36)tan(x) 求正切值(参数是弧度)
(37)truncate(x, y) 返回数值 x 保留到小数点后 y 位的值(与 ROUND 最大的区别是不会进行四舍五入)

3、日期函数

(1)adddate(d, n) 计算起始日期 d 加上 n 天的日期
(2)addtime(t, n) n 是一个时间表达式,时间 t 加上时间表达式 n
(3)curdate() 返回当前日期
(4)current_date() 返回当前日期
(5)current_time() 返回当前时间
(6)current_timestamp() 返回当前日期和时间
(7)curtime() 返回当前时间
(8)date() 从日期或日期时间表达式中提取日期值
(9)datediff(d1, d2) 计算日期 d1->d2 之间相隔的天数
(10)date_add(d, interval expr type) 计算起始日期 d 加上一个时间段后的日期,type 值可以是:(MICROSECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR、SECOND_MICROSECOND、MINUTE_MICROSECOND、MINUTE_SECOND、HOUR_MICROSECOND、HOUR_SECOND、HOUR_MINUTE、DAY_MICROSECOND、DAY_SECOND、DAY_MINUTE、DAY_HOUR、YEAR_MONTH)
(11)date_format(d, f) 按表达式 f的要求显示日期 d;如:SELECT DATE_FORMAT(‘2011-11-11 11:11:11’,’%Y-%m-%d %r’) -> 2011-11-11 11:11:11 AM
(12)date_sub(date, interval expr type) 函数从日期减去指定的时间间隔。
(13)day(d) 返回日期值 d 的日期部分
(14)dayname(d) 返回日期 d 是星期几,如 Monday,Tuesday
(15)dayofmonth(d) 计算日期 d 是本月的第几天
(16)dayofweek(d) 日期 d 今天是星期几,1 星期日,2 星期一,以此类推
(17)dayofyear(d) 计算日期 d 是本年的第几天
(18)extract(type from d) 从日期 d 中获取指定的值,type 指定返回的值。type可取值为:(MICROSECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR、SECOND_MICROSECOND、MINUTE_MICROSECOND、MINUTE_SECOND、HOUR_MICROSECOND、HOUR_SECOND、HOUR_MINUTE、DAY_MICROSECOND、DAY_SECOND、DAY_MINUTE、DAY_HOUR、YEAR_MONTH;
(19)from_days(n) 计算从 0000 年 1 月 1 日开始 n 天后的日期
(20)hour(t) 返回 t 中的小时值
(21)last_day(d) 返回给给定日期的那一月份的最后一天
(22)localtime() 返回当前日期和时间
(23)localtimestamp() 返回当前日期和时间
(24)makedate(year, day-of-year) 基于给定参数年份 year 和所在年中的天数序号 day-of-year 返回一个日期
(25)maketime(hour, minute, second) 组合时间,参数分别为小时、分钟、秒
(26)microsecond(date) 返回日期参数所对应的微秒数
(27)minute(t) 返回 t 中的分钟值
(28)monthname(d) 返回日期当中的月份名称,如 November
(29)month(d) 返回日期d中的月份值,1 到 12
(30)now() 返回当前日期和时间
(31)period_add(period, number) 为 年-月 组合日期添加一个时段
(32)period_diff(period1, period2) 返回两个时段之间的月份差值
(33)quarter(d) 返回日期d是第几季节,返回 1 到 4
(34)second(t) 返回 t 中的秒钟值
(35)sec_to_time(s) 将以秒为单位的时间 s 转换为时分秒的格式
(36)str_to_date(string, format_mask) 将字符串转变为日期
(37)subdate(d, n) 日期 d 减去 n 天后的日期
(38)subtime(t n) 时间 t 减去 n 秒的时间
(39)sysdate() 返回当前日期和时间
(40)time(expression) 提取传入表达式的时间部分
(41)time_format(t, f) 按表达式 f 的要求显示时间 t
(42)time_to_sec(t) 将时间 t 转换为秒
(43)timediff(time1, time2) 计算时间差值
(44)timestamp(expression, interval) 单个参数时,函数返回日期或日期时间表达式;有2个参数时,将参数加和
(45)timestampdiff(unit, datetime_expr1, datetime_expr2) 计算时间差,返回 datetime_expr2 − datetime_expr1 的时间差
(46)to_day(d) 计算日期 d 距离 0000 年 1 月 1 日的天数
(47)week(d) 计算日期 d 是本年的第几个星期,范围是 0 到 53
(48)weekday(d) 日期 d 是星期几,0 表示星期一,1 表示星期二
(49)weekofyear(d) 计算日期 d 是本年的第几个星期,范围是 0 到 53
(50)year(d) 返回年份
(51)yearweek(date, mode) 返回年份及第几周(0到53),mode 中 0 表示周天,1表示周一,以此类推

4、高级函数

(1)bin(x) 返回 x 的二进制编码
(2)binary(s) 将字符串 s 转换为二进制字符串
(3)cast(x as type) 转换数据类型
(4)coalesce(expr1, expr2, expr3) 返回参数中的第一个非空表达式(从左向右)
(5)connection_id() 返回唯一的连接 ID
(6)conv(x, f1, f2) 返回 f1 进制数变成 f2 进制数
(7)convert(s using cs) 函数将字符串 s 的字符集变成 cs
(8)current_user() 返回当前用户
(9)datebase() 返回当前数据库名
(10)if(expr, v1, v2) 如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2。
(11)ifnull(v1, v2) 如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。
(12)isnull(expression) 判断表达式是否为 NULL
(13)last_insert_id() 返回最近生成的 AUTO_INCREMENT 值
(14)nullif(expr1, expr2) 比较两个字符串,如果字符串 expr1 与 expr2 相等 返回 NULL,否则返回 expr1
(15)session_user() 返回当前用户
(16)system_user() 返回当前用户
(17)user() 返回当前用户
(18)version() 返回数据库的版本号

5、MySQL运算符

1、算术运算符
(1) +:加法;
(2) -:减法;
(3) *:乘法;
(4) / 或 div :除法;
(5) % 或 mod :取余;

2、比较运算符
(1) = :等于
(2) <>,!= :不等于;
(3) > :大于;
(4) < :小于;
(5) <= :小于等于;
(6) >= :大于等于;
(7) between :在两值之间(>=min && <= max);
(8) not between :不在两者之间;
(9) in : 在集合中;
(10) not in : 不在集合中;
(11) <=> : 严格比较两个NULL值是否相等(两个操作码均为NULL时,其所得值为1;而当一个操作码为NULL时,其所得值为0);
(12) like : 模糊匹配
(13) regexp 或 rlike : 正则表达式匹配;
(14) is null : 为空;
(15) is not null :不为空;

3、逻辑运算符
(1) not 或 ! : 逻辑非;
(2) and : 逻辑与;
(3) or : 逻辑或;
(4) xor : 逻辑异或;

4、位运算符
(1) & :按位与;
(2) | : 按位或;
(3) ^ : 按位异或;
(4) ! : 取反;
(5) << : 左移;
(6) >> : 右移;


全系列参考:
    runoob MySQL教程

如有纰漏,还望指正。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值