MySQL | MySQL实践过程问题汇总(一)【update(更新)、join(连接)、varchar】

最近完成了建表、入库、连接和更新的工作。今日把最近的工作总结如下:

1、varchar 可变长字符串,是MySQL中比较常用的一种数据类型。在数据入库的时候,遇到了设置的字符长度不够用的情况,于是对varchar进行了较为深入的了解。

MySQL4.1以前,VARCHAR数据类型所支持的最大长度255,5.0以上版本支持65535字节长度,utf8编码下最多支持21843个字符(不为空)。

       (1)使用比固定长度类型(char)占用更少存储空间(除了使用ROW_FORMAT=FIXED创建的MyISAM表)。
  (2)使用额外的1-2字节来存储值长度,列长度<=255使用1字节保存,其它情况使用2字节保存。例如varchar(10)会占用11字节存储空间,varchar(500)会占用502字节存储空间。
  (3)节约空间,所以性能会有帮助。在更新的时候会产生额外的工作。
  (4)5.0以上版本,取值或设置值都会保存字符串末尾的空格,4.1之前的版本都会把字符串末尾的空格删除掉。
  (5)最大长度远大于平均长度,很少发生更新的时候适合使用varchar,因为碎片更少了。

  • char 特点

       (1)使用固定长度。
  (2)保存的时候会去掉字符串末尾的空格。
  (3)适合保存MD5后的哈希值或经常改变的值,因为固定的行不容易产生碎片。

 

2、两个表或多个表的连接并更新其中一个表的数据

项目中,两个表(此处简称table1,table2)中有相同的字段pguid,但是在数据导入的过程中,table1是没有pguid这个字段的,需要入库之后,连接table1和table2来更新table1的pguid字段,两个表格通过p_number进行连接。

UPDATE table1 as t1 LEFT JOIN table2 AS t2 ON t1.p_number = t2.p_number SET t1.pguid = t2.pguid

这个语句很好理解,首先通过两个表格相同的字段进行连接,然后在更新需要更新的字段。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值