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

這個語句很好理解,首先通過兩個表格相同的字段進行連接,然後在更新需要更新的字段。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章