详细讲解MySQL数据库中的字符串类型,熟练掌握字符串数据的相关操作,能够在开发过程中灵活处理各种问题
MySQL数据库字符串类型有很多,常用的包含char、varchar
CHAR数据类型的长度固定为创建表时声明的长度,插入的数据小于声明长度自动使用空格补充,插入数据效率高,耗费空间。
VARCHAR类型是变长字符串,根据值的长度而定,插入数据较CHAR类型低,节省空间
创建数据表并插入数据
create table person(
id int(10) NOT NULL AUTO_INCREMENT,
name varchar(20),
address char(128),
card_id varchar(20),
PRIMARY KEY (id)
);
insert into person (name,address,card_id) values('张三丰','辽东省懿州城','123456789');
insert into person (name,address,card_id) values('黄蓉','浙江省桃花岛','123412341234');
insert into person (name,address,card_id) values('孙悟空','花果山','5432154321');
1.字符串替换操作,将address字段中的'懿州城'替换为'阜新市'
SELECT id,REPLACE(address,'懿州城','阜新市') FROM person WHERE name= '张三丰';
指定替换字段的位置和长度,设置替换长度为0,则意味着在指定位置插入
select id,name,INSERT(address,4,0,'舟山市') from person where name= '黄蓉';
2.从指定起止位置截取字符串
select id,name,SUBSTRING(card_id,4,9) from person where name= '张三丰';
3.从指定字符串开始截取定长字符串
select id,name,MID(card_id,'4',3) from person where name= '张三丰';
4.截取字段左面/右边指定长度的字符串
select id,name,left(card_id,3), RIGHT(card_id,3)from person where name= '张三丰';
5.去除字段的左空格/右空格/左右空格
select LTRIM(name),RTRIM(name),TRIM(name) from person where name= '张三丰';
6.获取字符串长度
select id,name,length(name) from person where name= '张三丰';
7.拼接字符串concat('str','str1',...)
select id,name,CONCAT(name,address) from person where name= '张三丰';