mysql常用基础操作语法(十一)~~字符串函数【命令行模式】

注:sql的移植性比较强,函数的移植性不强,一般为数据库软件特有,例如mysql有mysql的函数,oracle有oracle的函数。

1、concat连接字符串:

从上图中可以看出,直接使用select concat就可以连接任意两个以上的字符串,同时也可以用来连接查询结果,一般情况中也是会用来连接查询结果。需要注意的是,如果连接的内容有null存在的话,那么结果就只会是null。

2、concat_ws使用分隔符连接字符串:

在上边的语法中,第一个字符传代表指定的连接格式,其他的代表需要连接的字符串内容。与concat还有所不同的是,这里如果出现null,null会被忽略掉。

3、strcmp比较字符串的大小:

如上图可以看到,当第一个字符串小于第二个时返回-1,反之返回1,如果相等则返回0.

4、length和char_length来获取字符串的长度:

从图中可以看出length计算的是字节数长度,而char_length计算的是字符数长度。

5、使用upper或ucase和lower或lcase来实现对英文字符的大小写转换:

6、find_in_set查找字符串的位置:

如图可以看到,需要查找的字符串必须满足一定的格式,即需要逗号隔开,因此这里不能理解为子字符串。

7、使用field查找字符串的位置:

注意这里和上一个的区别,一个是在同一个字符串中用逗号隔开,而这里是几个字符串。

8、locate、position和instr查找字符串的位置:

这里三个的作用基本一样,只是使用的语法略有不同,position要和in结合使用,locate和instr的参数位置相反,都是返回一个字符串中子字符串的位置。

9、使用elt返回指定位置的字符串,语法格式和field类似:

10、从现有字符串中截取子字符串:

其中left指从最左开始截取指定长度的字符串,right是从右开始;substring和mid的第一个数字参数指开始截取的位置,第二个数字参数指截取的长度。

11、去除字符串的空格:

ltrim去掉左边的空格,rtrim去掉右边的空格,trim去掉前后的空格,只是这里都不太好看出来。

12、insert字符串替换:

如图可以看出,第一个参数为原始字符串,第二个为需要替换的其实位置,第三个表示需要替换的长度,第四个表示用来替换原字符串的新字符串;需要注意的是,当指定的需要替换长度超过剩余长度时会替换所有,当指定的位置刚好是比字符串长度大一时,会把新字符串加到末尾,当指定的位置比字符串长度大2以上时,原字符串不变。

13、replace替换字符串:

与上边不同的是,这里不是指定位置和长度,而是直接指定一个字符串,如果这个字符串不存在原字符串中,则替换失败。

时间: 2024-10-01 19:20:58

mysql常用基础操作语法(十一)~~字符串函数【命令行模式】的相关文章

mysql常用基础操作语法(四)--对数据的简单无条件查询及库和表查询【命令行模式】

1.mysql简单的查询:select 字段1,字段2...  from tablename; 如果字段那里写一个*,代表查询所有的字段,等同于指定出所有的字段名,因此如果要查询所有字段的数据,一般都是用*. 2.去重查询:select distinct 字段1,字段2... form tablename: 可以结合上一张图的结果来对比. 3.直接在查询时做数学四则运算,加减乘除余: 4.查询时给查询结果字段重命名:select 字段1 as 名称1,字段2 as 名称2 ... from ta

mysql常用基础操作语法(九)~~外连接查询【命令行模式】

1.左外连接left outer join或者left jion,outer可以省略不写,下边的右连接和全连接也一样: 左外连接的意思是,以left join左边的表中的数据为基准,即左边的表中有的必须要全部显示出来,如下图: 这里第一个查询中,company表在左边,因此就以company为基准,所以显示的结果中除了depart_id相同的6条数据外,还把company中存在的另外一条也显示出来. 而第二个查询中,emp在左边,就以emp为基准,因此显示的结果中除了depart_id相同的6条

mysql常用基础操作语法(七)--统计函数和分组查询【命令行模式】

注:文中所有的...代表多个. 1.使用count统计条数:select count(字段名...) from tablename; 2.使用avg计算字段的平均值:select avg(字段名) from tablename: 这里都可以适当的拓展,比如加条件,重命名等等. 3.使用sum求和:select sum(字段名) from tablename: 4.使用max和min求最大值.最小值: 5.注意:使用这些函数时,如果数据库中没有数据,count返回0,其他的返回null: 6.使用

mysql常用基础操作语法(五)--对数据的简单条件查询【命令行模式】

1.单条件查询:select 字段名 from tablename where 条件: 2.简单多条件查询,使用&&或者between and等: 3.is null和is not null查询,这里要注意null不是空字符串不是0: 4.in和not in查询,相当于是用or把in后边的集合元素连起来.注意如果in后边带的集合中存在null,那么不会影响结果,但not in后边集合中有null,就不会查处任何结果,not in也查不出null: 5.like模糊查询(不仅适用字符串):

mysql常用基础操作语法(十)~~子查询【命令行模式】

mysql中虽然有连接查询实现多表连接查询,但是连接查询的性能很差,因此便出现了子查询. 1.理论上,子查询可以出现在查询语句的任何位置,但实际应用中多出现在from后和where后.出现在from后的子查询结果通常是多行多列的,充当临时表:而出现在where后的子查询结果通常是单行单列,充当条件: 2.where后作为条件的子查询多与"="."!=".">"."<"等比较运算符一起使用.结果虽然通常是单行单列,但

mysql常用基础操作语法(三)~~对数据的增删改操作【命令行模式】

1.插入单条数据:insert into tablename(字段名1,字段名2,...) values(值1,值2,...); 从图中可以看出,插入时不需要每个字段都有值(在没有相关的约束前提下),但是需要注意的是字段的数量和后边的值的数量必须一致,还要和自定的字段的顺序一致,类型也要一致,否则会报错.另外,如果没有指定任何字段的情况下,默认是选择了所有字段,则必须每个字段都有对应的值,并且需要和表中的字段顺序一致,否则会报错,如图: 2.插入多条数据:insert into tablenam

mysql常用基础操作语法(二)~~对表的增删改操作【命令行模式】

1.修改表名:alert table oldtablename rename newtablename; 或者alert table oldtablename rename to newtablename; [图形界面用多了,alter老是敲成alert] 2.在表的最后添加一个字段列:alter table tablename add 属性名 属性类型; 3.在表的第一列添加字段:alter table tablename add 属性名 属性类型 first; 4.在表指定字段后增加字段:a

mysql常用基础操作语法(六)--对数据排序和限制结果数量的条件查询【命令行模式】

1.使用order by对查询的结果进行排序,asc升序,desc降序: 也可以在order by后指定多个字段名和排序方式进行多级排序: 2.使用limit限制查询结果的数量: 上图中的0,代表查询的开始位置,也可以理解为跳过的数量:上图中的2代表需要查询出的数量.这个表中有3条数据,因为限制了条数为2,因此实际结果只是两条.另外,这里的初始位置是0,实际上可以不写,默认就是0: 这里还有一种情况,就是指定查询结果的数量可能大于表中的实际数量,这个时候返回结果会返回表中所有符合条件的数据,例如

mysql常用基础操作语法(一)~~对库的操作【命令行模式】

1.创建数据库:create Database databaseName;例如需要创建mysqlTest数据库,create Database mysqlTest; 由此还可以看出,这里的名称是不分大小写的,据我所知可以通过设置设置为全大些或者全小写. 2.查看系统中已经存在的数据库:show databases; 3.选择数据库:use databaseName;(本文中所有databaseName均是一个代称,表示数据库名称,tableName也是代称,表示表名): 4.删除数据库:drop