avatar

mysql中的函数

replace函数使用方法

在使用数据库的时候我们如果需要修改字符串中的部分数据,不去修改全部数据怎么才能做到呢?这种情况下要使用replace函数实现
replace函数不支持正则表达式,所以如果需要替换比较复杂的建议另寻他法

语法

REPLACE ( string_expression , string_pattern , string_replacement )

  • string_expression 要搜索的字符串表达式。string_expression 可以是字符或二进制数据类型。
  • string_pattern 是要查找的子字符串。string_pattern 可以是字符或二进制数据类型。string_pattern 不能是空字符串 (‘’)。
  • string_replacement 替换字符串。string_replacement 可以是字符或二进制数据类型。
    返回类型
  • 如果其中的一个输入参数数据类型为 nvarchar,则返回 nvarchar;否则 REPLACE 返回 varchar。
  • 如果任何一个参数为 NULL,则返回 NULL。

使用

查询替换

select *,replace(fname,'Mich','hihi') as fname from employee

查询替换只是替换结果,不会改变数据库的值,

更新替换

update employee set fname = replace(fname,'a','haha') where emp_id=1;

这里直接修改了数据库文件,将emp_id为1的数据的fname中的a变成了haha

插入替换

replace into employee(emp_id,fname,lname) values(1,'Michael','smm');

总结:向表中“替换插入”一条数据,如果原表中没有emp_id = 1这条数据就作为新数据插入(相当于insert into作用);如果原表中有emp_id = 1这条数据就做替换(相当于update作用)。对于没有指定的字段以默认值插入。这里update是全量的update。

Mysql中的字段属性含义

  • PK:primary key 主键
  • NN:not null 非空
  • UQ:unique 唯一索引
  • BIN:binary 二进制数据(比text更大)
  • UN:unsigned 无符号(非负数)
  • ZF:zero fill 填充0 例如字段内容是1 int(4), 则内容显示为0001
  • AI:auto increment 自增
  • G: Generated Column mysql5.7新特新:这一列由其他列计算而得
文章作者: zenshin
文章链接: https://zlh.giserhub.com/2020/03/25/cl35o0ms00068p4tggu0j4g3o/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zenshin's blog
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论