本文主要是介绍实习总结2019.12,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.mysql唯一索引
之前理论知识期间,认为mysql的这个唯一索引啊,就是能够保证咱这所有记录不重复,没觉得有啥用
到了实际业务时,发现唯一索引的作用大有用处,主要就是用于删除数据的新增,表中设置唯一索引,能够根据这个不在产生冗余数据。
unique——key在业务的实际使用
今天查看数据入库脚本时,看到使用的插入语句是:
INSERT INTO tablename(field1,field2, field3, ...) VALUES(value1, value2, value3, ...) ON DUPLICATE KEY UPDATE field1=value1,field2=value2, field3=value3, ...;
自己第一次遇到,正好查询文档学习下。
使用这条语句的原因,是为了更好的执行插入和更新,因为我们再插入一条语句时,表中可能已经存在了这条语句,我们想实现更新的功能,或者表中没有这条语句,我们想实现插入的功能,而这条语句直接可以同时解决插入和更新的功能。
那么这条语句是如何解释呢,我们很容易理解前面的部分,就是一个简单的插入语句,让我们看下后面的部分ON DUPLICATE KEY UPDATE field1=value1,field2=value2...我们看到后面是一个更新的操作,后面指定了更新的字段,也就是说判断出表中没有这条数据,执行的前半部分,插入指定字段得值,在判断出表中有数据,则执行的的更新操作,更新后半部分指定的字段的值。
那么下一个问题出来了,我们是如何判断出这条数据是存在的,又需要更新哪些字段呢。
规则如下:
如果你插入的记录导致UNIQUE索引重复,那么就会认为该条记录存在,则执行update语句而不是insert语句,反之,则执行insert语句而不是更新语句。
比如我创建表的时候设置的唯一索引为字段a,b,c,那么当a,b,c三个字段完全重复时候,此时就要执行更新语句。当然满足一部分唯一索引是不会触发更新操作的,此时会执行插入操作。
而至于要更新哪些字段,要看我们自己的需求了。
INSERT INTO community_faces (userid, unionid, phone, areaid, available_url) VALUES(?, ?, ?, ?, ?)
on DUPLICATE key
update deleted_date=NULL,unionid=?,phone=?,areaid=?,available_url=? ;
2.base64
是一种转码的方式,用它可以实现网络传输数据的转码操作。
Base64是一种用64个字符来表示任意二进制数据的方法。
用记事本打开exe
、jpg
、pdf
这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编码方法。
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。
Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。
这篇关于实习总结2019.12的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!