文章目录
复习一下 前面学到的函数 LENGTH CONCAT
这些前面学到的函数我们之前用过的,另外类似下面的数学函数,这些函数名都是好多语言通用的。
名称 | 英文 | 中文 | 返回值 |
---|---|---|---|
LENGTH(x) | length | 长度 | 字符串的字节数 |
CONCAT(x) | concatenate | 连接在一起的 | 拼接后的字符串 |
CONCAT_WS(x) | concatenate with saparator | 有连字符号 连接在一起的 | 带连字符号 拼接后的字符串 |
UPPER(x) | uppercase | 字母大写形式 | 字符串所有字母转大写形式 |
LOWER(x) | lowercase | 字母小写形式 | 字符串所有字母转小写形式 |
长度这个概念,一般都指的是字符长度,代指字节长度的只有LENGTH()
注意 字节数与字符集有关,看下面的案例:
SELECT LENGTH('sdf'), LENGTH('阮菜鸡2333');
UTF-8的字符集 一个汉字 = 3 byte; 一个字母 数字 = 1 byte;
那么如何查看属性的字符集(DDL定义的时候要指定的)?
还记得第二篇 我们可以通过更改my.ini的内容(变量键值对)来更改字符集
character-set-server
其实也是MySQL的,类似环境变量一样的东西,于是我们就可以在 **变量(VARIABLES)**中去查找。
SHOW VARIABLES LIKE '%char%';
这些就是my.ini的变量及其值,可见 字符集(character-set) 无论是server client system都是utf8.
数学函数 ABS CEIL FLOOR ROUND POW
这些数学的函数其实我们都很熟悉的,如果不熟,可以看看他的英语,方便六级考研不说,也能记得更清楚。因为数学函数都是公共的标准,无论是类C 咖啡 py js 还是matlab 都是基本是适用的,记了不亏。
名称 | 英文 | 中文 | 返回值 |
---|---|---|---|
ABS(x) | absolute | 绝对的 | x的绝对值 |
CEIL(x) | ceil | 天花板 | 大于 x 的最小整数值(x的天花板) |
FLOOR(x) | floor | 地板 | 小于 x 的最大整数值(x的地板) |
MOD(x,y) | Module Operation | 取模运算 | x/y 的模 |
RAND(x) | random | 随机 | 0~1的随机值 |
ROUND(x,y) | round | “圆润” | x 的四舍五入(才变的圆润)(有y位的小数) |
TRUNCATE(x,y) | truncate | 截断 掐头去尾 | 数字x截断为y位小数的结果 |
SQRT(x) | square root | 开平方 | x的平方根 |
POW(x,y) | power | 次方 | x的y次方(n次方很power) |
常用字符串函数 SUBSTR REPLACE INSERT
除了我们之前学的 还有些新的,都可以试一试玩一下哈。
名称 | 英文 | 中文 | 返回值 |
---|---|---|---|
LENGTH(x) | length | 长度 | 字符串的字节数 |
CHAR_LENGTH(x) | length | 长度 | 字符串的字符数 |
CONCAT(x) | concatenate | 连接在一起的 | 拼接后的字符串 |
CONCAT_WS(x) | concatenate with saparator | 有连字符号 连接在一起的 | 带连字符号 拼接后的字符串 |
UPPER(x) | uppercase | 字母大写形式 | 字符串所有字母转大写形式 |
LOWER(x) | lowercase | 字母小写形式 | 字符串所有字母转小写形式 |
SUBSTR(s,start,length) | subscript | 下标 索引 | s字符串中,start索引开始,截取length字符长度的字符串 |
INSTR(string,s) | subscript | 下标 索引 | string字符串中,第一个有s字符串子串的索引 |
LEFT(s,n) | left | 左边 | 返回字符串s最左边的n个字符 |
RIGHT(s,n) | right | 右边 | 返回字符串s最右边的n个字符 |
REPLACE(str, a, b) | replace | 替换 | 用字符串b替换字符串str中所有出现的字符串a |
REPEAT(str, n) | repeat | 重复 | 返回str重复n次的结果 |
STRCMP(s1,s2) | compare | 比较 | 比较字符串s1,s2(ASCII 同c语言的strcmp()) |
INSERT(str, index , len, instr) | insert | 插入 | 将字符串str从第 index 位置开始,len个字符长的子串替换为instr |
实例:
TRIM函数
对trim一类的函数 我们分开看看:
名称 | 英文 | 中文 | 返回值 |
---|---|---|---|
TRIM(string) | trim | 修剪 | 去掉string左右两边的空格 |
LTRIM(string) | left trim | 修剪 | 去掉string左边的空格 |
RTRIM(string) | right trim | 修剪 | 去掉string右边的空格 |
TRIM( childStr FROM string) | trim | 修剪 | 去掉string左右两边的子串childStr |
TRIM(LEADING childStr FROM string) | LEADING | 领先的 | 去掉string前边的子串childStr |
TRIM(TRAILING childStr FROM string) | TRAILING | 末尾的 | 去掉string后边的子串childStr |
其实就一句话:select childStr from string
从string中剔除childStr
实例:
PAD函数
既然trim是修剪,那么有没有补缺的呢?有!pad(padding)
名称 | 英文 | 中文 | 返回值 |
---|---|---|---|
LPAD(str, len, pad) | left | 左边 | 用字符串pad对str最左边进行填充,直到str的长度为len个字符 |
RPAD(str ,len, pad) | right | 右边 | 用字符串pad对str最右边进行填充,直到str的长度为len个字符 |
预告
单行函数还不止这些,尤其是流程控制函数,是需要重点掌握的,其他的查表就行。那就
下一站:数据库学习之MySQL (十)—— 日期和时间函数 流程控制函数