4、字符串类型

 

本节名词

二进制文件:图片、MP3、视频等。

非二进制:普通文本

定长:固定的存储长度

变长:存多少字符占多少空间

  

一、常用类型

1)char()  max:255字节

场景:用于存储密码、手机号、固话、qq等变化长度不大的数据 (效率最高)

2)varchar max:65535字节

ename varchar(6);//可以存储6个汉字  6个英文字符 6个数字

insert into demo(ename)values('张飞刘备关羽'); //可以插入成功
insert into demo(ename)values('abcdefg');    //可以插入成功
insert into demo(ename)values('123456');     //可以插入成功

3)text() 存储文章正文

  

二 字符集

字符集:字段 -> 表 -> 库  依次继承。每个都可以单独设置。数据真正是存在字段里面的。

show character set; 查看数据库支持的字符集  utf8支持的语言最多。

改变了表的字符集,字段的不会改变,新增的字段会继承。

 

 

三 校对规则

utf8_general_ci 最常用:不区分大小写。

字符串校对规则是影响字符串比较和排序的一种算法 

 

 

四 字符串函数

1、字符串拼接

select concat(name,'.......') from class;

2、大小写转换

select upper(name)as upname from class;  //转为大写

select lower(name) as loname from class; //转为小写

3、取指定长度字符

select left(name,2) from class;  //1 从左侧取

select right(name,2) from class; //2 从右侧取

select mid(name,2,2) from class;//3 从任何位置取 (字段名,从哪里去,取多长) 第三个参数不填,表示取所有

select substring(name,2) from class;//4 从指定位置截取所有的

4、替换函数

replace(string,from_str,to_str) 即:将string中出现的from_str替换为to_str

5、获取字符串长度

select char_length(name) from class; //获取字符串长度

应用实例1 

update class set name = concat('baidu.com',mid(name,10)) where id>8; //1 把某个字段的部分值全部替换
select if(char_length(name)>8,concat(left(name,8),'....'),name) from class; //2 标题超过8个字符的用...代替
select concat('九一小学:',name) from class;//3所有班级前加上:九一小学 

 

五 正则表达式 (regexp)

seelct * from class where cname regexp '^.h'; //1 查找第二个字符为h的
select * from class where cname regexp 'php|mysql';//2 查找有 PHP 和 mysql 的

  //3 课程介绍中包含php与mysql的课程名前加上后盾人
  update class set cname = REPLACE(cname,cname,concat('后盾人:',cname))
  where description REGEXP 'php|mysql';

 六 模糊匹配 like

select *  from class where cname like '_h%'; //1 查找第二个字符为 h 的班级

 

posted @ 2020-12-03 14:34  棉花糖88  阅读(155)  评论(0)    收藏  举报