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 的班级

浙公网安备 33010602011771号