zoukankan      html  css  js  c++  java
  • mysql之字符函数

    进阶4:常见函数之字符函数

    概念:类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名
    好处:1、隐藏了实现细节  2、提高代码的重用性
    调用:select 函数名(实参列表)from 表】;
    特点:
    	①叫什么(函数名)
    	②干什么(函数功能)
    
    分类:
    	1、单行函数 如 concat、length、ifnull等
    	2、分组函数
    	功能:做统计使用,又称为统计函数、聚合函数、组函数
    
    • 以下如图数据库为例编写案例

    在这里插入图片描述

    常见函数:

    一、单行函数
    	字符函数:
    	length:获取字节个数(utf-8一个汉字代表3个字节,gbk为2个字节)
    	concat
    	substr
    	instr
    	trim
    	upper
    	lower
    	lpad
    	rpad
    	replace
    	
    	数学函数:
    	round
    	ceil
    	floor
    	truncate
    	mod
    	
    	日期函数:
    	now
    	curdate
    	curtime
    	year
    	month
    	monthname
    	day
    	hour
    	minute
    	second
    	str_to_date
    	date_format
    	
    	其他函数:
    	version
    	database
    	user
    	控制函数
    	if
    	case
    

    一、字符函数

    1. length 获取参数值的字节个数

    SELECT LENGTH('xdr630');
    SELECT LENGTH('兮动人630');
    

    在这里插入图片描述
    在这里插入图片描述
    这里客户端使用的字符集是utf-8,一个汉字等于三个字节,所以为12

    注意:

    • 查看客户端使用的字符集,这里使用的是 utf-8一个汉字占三个字节,一个英文占一个字节。
    • 如果客户端使用的字符集是gbk那就是一个汉字占两个字节,一个英文占一个字节。
    SHOW VARIABLES LIKE '%char%'
    

    在这里插入图片描述

    2. concat 拼接字符串

    • 姓名拼接,中间用下划线连接
    SELECT CONCAT(last_name,'_',first_name) 姓名 FROM employees;
    

    在这里插入图片描述

    3. upper、lower

    SELECT UPPER('xdr630');
    SELECT LOWER('MIKE');
    

    在这里插入图片描述
    在这里插入图片描述

    示例1:将姓变大写,名变小写,然后拼接

    SELECT CONCAT(UPPER(last_name),LOWER(first_name))  姓名 FROM employees;
    

    在这里插入图片描述

    4. substr、substring

    注意索引从1开始

    (1) 截取从指定索引处后面所有字符

    SELECT SUBSTR('李莫愁爱上了陆展元',7)  out_put;
    

    在这里插入图片描述

    (2) 截取从指定索引处指定字符长度的字符

    • 这里的第一个参数表示从第一个索引开始,第二个参数表示字符的长度
    SELECT SUBSTR('李莫愁爱上了陆展元',1,3) out_put;
    

    在这里插入图片描述

    案例1:姓名中首字符大写,其他字符小写然后用_拼接,显示出来

    SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2)))  out_put
    FROM employees;
    

    SELECT LENGTH(TRIM(’ 张翠山 ')) AS out_put;
    在这里插入图片描述

    5. instr 返回子串第一次出现的索引,如果找不到返回0

    SELECT INSTR('杨不殷六侠悔爱上了殷六侠','殷六侠') AS out_put;
    

    在这里插入图片描述

    SELECT INSTR('杨不殷六侠悔爱上了殷六侠','殷八侠') AS out_put;
    

    在这里插入图片描述

    6. trim 去前后空格

    SELECT TRIM('    张翠山    ') AS out_put;
    

    在这里插入图片描述

    SELECT LENGTH(TRIM('    张翠山    ')) AS out_put;
    

    在这里插入图片描述

    • 去掉前后的a参数
    SELECT TRIM('a' FROM 'aaaaaaaaa张aaaaaaaaaaaa翠山aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')  AS out_put;
    

    在这里插入图片描述

    • 两个a表示成双去掉,最后多余了一个a
    SELECT TRIM('aa' FROM 'aaaaaaaaa张aaaaaaaaaaaa翠山aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')  AS out_put;
    

    在这里插入图片描述

    7. lpad 用指定的字符实现左填充指定长度

    • *填充左边字符为10个
    SELECT LPAD('殷素素',10,'*') AS out_put;
    

    在这里插入图片描述

    • 如果填充的长度小于字符的长度,返回原字符
    SELECT LPAD('殷素素',2,'*') AS out_put;
    

    在这里插入图片描述

    8. rpad 用指定的字符实现右填充指定长度

    SELECT RPAD('殷素素',12,'ab') AS out_put;
    

    在这里插入图片描述

    9.replace 替换,可以多个替换参数

    SELECT REPLACE('周芷若周芷若周芷若周芷若张无忌爱上了周芷若','周芷若','赵敏') AS out_put;
    

    在这里插入图片描述

    本文来自博客园,作者:兮动人,转载请注明原文链接:https://www.cnblogs.com/xdr630/p/15254842.html

  • 相关阅读:
    java 读取src下的配置文件
    图书管理系统
    StaticDemo
    MatixDemo
    Magics
    GetPrime
    ConWithThis
    TestTHIS
    ConstructorOverLoad
    Sequence
  • 原文地址:https://www.cnblogs.com/xdr630/p/15254842.html
Copyright © 2011-2022 走看看