【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');