【DataBase】MySQL 07 SQL函数 单行函数其一 字符函数

SQL函数的概念

-- SQL函数
-- 概念:类似Java的方法,将已经定义好的不再改变的逻辑语句封装在函数体内,对外提供方法的标识
-- 隐藏了实现细节,提高功能的可重用
-- SELECT 函数名称(实参列表) [FROM 表名];
-- 分类: 单行函数,分组函数
-- 字符函数,数字函数,日期函数,其他函数

 

统计字符的字节个数

注意是字节个数

# LENGTH() 计数参数字符串的字节个数
SELECT LENGTH('杰哥不要啊'); -- 中文按 [UTF-8]3个字节的组合,[GBK]2个字节组合

-- 查看当前表的字符集
SHOW VARIABLES LIKE '%char%';

 

拼接参数列表中的字符

# CONCAT() 拼接参数字符
SELECT CONCAT(`first_name`," ",`last_name`) FROM `employees`;

 

转换全大写,全小写

# UPPER(),LOWER() 将参数字符转全大小写
-- 将姓大写,名小写,然后拼接 SELECT CONCAT(UPPER(`last_name`)," ",LOWER(`first_name`)) FROM `employees`;

 

字符片段

# SUBSTR(),SUBSTRING() -- 从索引开始截取字符串,起始位置是从参数开始,包括参数
-- 1个参数就表示截取的起始位置,直接到结束位置 SELECT SUBSTR("大苏打的发射点",5) AS sub1; -- MySQL的字符索引是从1开始的
-- 2个参数就表示截取的起始位置,直到实参的结束位置 [字符长度] SELECT SUBSTR("大苏打的发射点",1,3) AS sub2; 开始位置到结束位置,包括结束位置的字符 -- 案例,姓名中首字符大写,其他字符小写,然后用_拼接,显示出来 SELECT CONCAT( UPPER(SUBSTR(`last_name`,1,1)), LOWER(SUBSTR(`last_name`,2)) ) AS NAME FROM `employees`;

 

获取 参数字符2 在 参数字符1 首次出现的位置

# INSTR(str1,str2) 查找字符串2在字符串1的首次出现的位置,如果未找到返回0 
SELECT INSTR("今天的风景真好啊",'');

 

清除两边的空格,和指定字符的两边清除

# TRIM() 消除两边空格 ,LTRIM() RTRIM() 左右空格消除
SELECT "  ABC  ", TRIM("  ABC  ");

# TRIM(str1 FROM str2) 消除str2左右两边的str1
SELECT TRIM("s" from "ssssssssAsBCsDssssssssssssssss");
SELECT TRIM("ss" FROM "ssssssssAsBCsDssssssssssssssss"); -- 注意区别

 

限定字符长度并填充

# LPAD(str1,length,str2) 规定字符长度为length,如果str1小于实参的长度,则让str2填充剩余字符位[左填充]
SELECT LPAD('HAHA',12,'*') AS LPAD;
# RPAD(str1,length,str2) 规定字符长度为length,如果str1小于实参的长度,则让str2填充剩余字符位[右填充]
SELECT RPAD('HAHA',12,'*') AS LPAD;

 

替换字符串

# REPLACE(str1,str2,str3) 在str1中,使用str3替换str2
SELECT REPLACE('啊实打实大苏打实打实的','','NO');

 

posted @ 2020-04-27 09:24  emdzz  阅读(187)  评论(0编辑  收藏  举报