五、MySQL 字符串函数

一、MySQL 字符串函数

  1. ASCII(s): 返回 字段 的第一个字符的 ASCII 码。
    Age: select ASCII(code) as NumCodeOfFristChar from students;
  2. CHAR_LENGTH(s) 等同 CHARACTER_LENGTH(s): 返回 字段 的字符数
    Age: select CHAR_LENGTH(code) as LengOfString from students;
    select CHARACTER_LENGTH(code) as LengOfString from students;


  3. CONCAT(s1,s2): 多个字符串合并为一个字符串
    age: select concat(id,code) as id_code from students;
  4. CONCAT_WS(x, s1,s2…sn): 同 CONCAT函数,但是每个字符串之间要加上 x,x 可以是分隔符
    age: select concat_ws(’_’,id,code) as id_code from students;


  5. FIELD(s,s1,s2…): 返回第一个字符串 s 在字符串列表(s1,s2…)中的位置
    age: select FIELD(‘wangxue’,code,name) from students;
  6. FIND_IN_SET(s1,s2): 返回在字符串s2中与s1匹配的字符串的位置
    age: select FIND_IN_SET(‘a’,‘c,a,d’) ;
    age: select * from students where FIND_IN_SET(2,class);


  7. FORMAT(x,n) 函数可以将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入。
    age: select FORMAT(weight,1) as weight from students;
  8. INSERT(s1,x,len,s2): 字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
    age: select INSERT(code,1,2,name) from students;
    分析 : 从1代理起始位置,并非0.
  9. LOCATE(s1,s): 从字符串 s 中获取 s1 的开始位置
    age: select * from students where locate(‘HangXue’,name) > 0;
    分析: 可以替代like,这个可以走索引,查询更快。


  10. LCASE(s): 将字符串 s 的所有字母变成小写字母
    age: select lcase(name) from students ;
  11. LOWER(s): 将字符串 s 的所有字母变成小写字母
    age: select LOWER(name) from students ;
  12. UCASE(s): 将字符串 s 的所有字母变成大写字母
    age: select UCASE(name) from students ;
  13. UPPER(s): 将字符串 s 的所有字母变成大写字母
    age: select UPPER(name) from students ;


  14. LEFT(s,n): 返回字符串 s 的前 n 个字符
    age: select left(code,2) from students;
  15. RIGHT(s,n): 返回字符串 s 的后 n 个字符
    age: select right(code,2) from students;


  16. LPAD(s1,len,s2): 在字符串 s1 的开始处填充字符串 s2,使字符串长度达到 len
    age: select lpad(code,8,name) from students;
  17. RPAD(s1,len,s2): 在字符串 s1 的结尾处添加字符串 s2,使字符串的长度达到 len
    age: select rpad(code,8,name) from studennts;


  18. LTRIM(s): 去掉字符串 s 开始处的空格
    age: select ltrim(code) from students;
  19. RTRIM(s): 去掉字符串 s 结尾处的空格
    age: select rtrim(code) from students;
  20. TRIM(s): 去掉字符串 s 开始和结尾处的空格
    age : select TRIM(code) from students;


  21. MID(s,n,len): 从字符串 s 的 n 位置截取长度为 len 的子字符串,同 SUBSTRING(s,n,len)
    age: select mid(code,2,4) from students;
  22. POSITION(s1 IN s): 从字符串 s 中获取 s1 的开始位置
    age: select position(‘ng’ in name) from students;
  23. REPEAT(s,n): 将字符串 s 重复 n 次
    age: select repeat(code,2) from students;
  24. REPLACE(s,s1,s2): 将字符串 s2 替代字符串 s 中的字符串 s1
    age : select replace(code,‘SN’,‘abc’) from students;
  25. REVERSE(s): 将字符串s的顺序反过来
    age: select reverse(code) from students;
  26. SPACE(n): 返回n个空格
    age: select space(3) from students;
  27. STRCMP(s1,s2): 比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1
    age: select strcmp(code,name) from students;
  28. SUBSTR(s, start, length) 等同 SUBSTRING(s, start, length): 从字符串 s 的 start 位置截取长度为 length 的子字符串
    age: select substr(code,2,4) from students;
  29. SUBSTRING_INDEX(s, delimiter, number): 返回从字符串 s 的第 number 个出现的分隔符 delimiter 之后的子串。
    如果 number 是正数,返回第 number 个字符左边的字符串。
    如果 number 是负数,返回第(number 的绝对值(从右边数))个字符右边的字符串。
    age: SELECT SUBSTRING_INDEX(‘ab’,’’,1) – a
    SELECT SUBSTRING_INDEX(‘ab’,’’,-1) – b
    SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(‘abcde’,’’,3),’’,-1) – c
##案例SQL表
/*
 Navicat Premium Data Transfer

 Source Server         : localhost
 Source Server Type    : MySQL
 Source Server Version : 50726
 Source Host           : localhost:3306
 Source Schema         : wang_test

 Target Server Type    : MySQL
 Target Server Version : 50726
 File Encoding         : 65001

 Date: 21/06/2021 18:32:54
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for students
-- ----------------------------
DROP TABLE IF EXISTS `students`;
CREATE TABLE `students`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `code` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '0' COMMENT '编号',
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '性名',
  `class` varchar(250) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '选的课1.语文,2.数学,3.english,4.体育',
  `weight` double(10, 3) NULL DEFAULT NULL COMMENT '体重',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of students
-- ----------------------------
INSERT INTO `students` VALUES (1, 'SN0001', 'WangXue', '2,3', 113.568);
INSERT INTO `students` VALUES (2, 'SN0002', 'ZHangXue', '1,3,4', 98.435);

SET FOREIGN_KEY_CHECKS = 1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值