实习总结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语句而不是更新语句

扫描二维码关注公众号,回复: 10570949 查看本文章

  比如我创建表的时候设置的唯一索引为字段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个字符来表示任意二进制数据的方法。

用记事本打开exejpgpdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编码方法。

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。

Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。

发布了651 篇原创文章 · 获赞 226 · 访问量 47万+

猜你喜欢

转载自blog.csdn.net/strivenoend/article/details/103585293