电话号码中间四位隐藏
select REPLACE('13589679696',SUBSTRING('13589679696',4,4) ,'****')
-- 若题目为13513511234,有相同的数字,则替换前四个,
-- 写法不对,截取位置正确,替换不对,替换的时候没有因为位置替换,他只替换了内容,没有指定位置
-- 找到的中间四位,可能和开头相同 先被替换
select REPLACE('13513511234',SUBSTRING('13513511234',4,4) ,'****') -- 结果为****3511234
-- 正确写法 concat字符串拼接 前3个+****+后4个
select concat(left('13513511234',3),'****',right('13513511234',4))
同时删除两个表的公用数据
-- 1.cascade:在父表上 update / delete记录时,同步 update / delete掉子表的匹配记录
-- 2.No action:如果子表中有匹配的记录, 则不允许对父表对应候选键进行update / delete操作
-- 3.Restrict:同 no action, 都是立即检查外键约束
-- 4.set null:在父表上 update / delete记录时,将子表上匹配记录的列设为 null要注意子表的外键列不能为 not null
-- 5.default:父表有变更时, 子表将外键列设置成一个默认的值但Innodb不能识别
外键约束
当为cascade时,可以同时删除两个表的共用数据
当dept的50被删除,emp的最后一条数据也自动被删除
mysql逻辑删除加获取现在时间
数据库设计自动获得当前时间
保存后变为
逻辑删除默认为0
结果为
尝试将数据库查询的入职日期字段转换成特定的格式,例如"2023年07月04日"
方法1:类型为为String
方法2:得把类型转为Date
数据库生成一个UUID
替换—为空