MySQL入門 資料型別分析

2021-10-05 14:12:15 字數 1491 閱讀 4304

mysql的資料型別主要分為三類: 數字型、字串型、日期和時間型別

需要學習者著重了解的是char與varchar的固定長度與可變長度的意義、int(m)所代表的意義

整型(部分):

型別位元組

tinyint

1bool

1smallint

2int(也就是integer)

4bigint

8浮點(部分):

型別位元組

float

8或4double

8計算機最小單位為』位』(只有0或1兩個值),單位是bit。

28bit=1byte(位元組),4個位元組為28x28x28x28=232(注意是相乘的關係,而不是乘以4)

型別包含

說明普通文字型別

char(m)

固定長度為m個字元,m的取值範圍是0~255,固定長度意味著當你儲存了小於m的字元時,mysql將會自動在後面加上空格直至總體長度達到m(在取的時候會trim掉多餘空格的)。這樣整齊的長度儲存方式相對於可變長度的儲存更有利於檢索,但也浪費了空間。適用場景:身份證號碼等固定長度數值

普通文字型別

varchar(m)

可變長度儲存,如儲存的字元小於m,實際上儲存的不會以空格填充。如果超過了m個字元,會被自動擷取扔掉的。還要注意他會自動加乙個字元來儲存長度。他更節省空間,但相比char檢索慢。

可變型別

text

適合儲存長文字資料

可變型別

blob

適合儲存二進位制資料,比如聲音、影象等

特殊型別

enum(「value1」,「value2」,…)

該型別的列只可容納所列值之一或null,它非常適合select的option選項組

特殊型別

set(「value1」,「value2」,…)

類似於enum

字元與位元組的關係:字元是有編碼的,編碼方式不同,它換算出來的位元組則不同

ansi編碼標準下,每個英文及數字佔1個位元組,每個漢字佔2個位元組。

unicode編碼標準下,所有字元都佔2個位元組。

utf-8編碼標準下,每個英文及數字佔1個位元組,每個漢字佔3個位元組。

注意:int(m)—— 這裡的m與varchar(m)中代表的意義不同,varchar中表示的是儲存字元的長度個數,int中表示的是查出的結果在顯示時展現的寬度,int中的m並不會影響儲存字元的長度,int的位元組固定就是4個位元組。展現寬度指的是,比如m=3,數值為24,那麼查得的展示結果為 024,即會展現m位數值,不足前面補零、超了也無所謂(比如m=3,數值為4212,展示結果為4212)。

型別格式

date

yyyy-mm-dd

time

hh:mm:ss

datetime

yyyy-mm-dd hh:mm:ss

timestamp

year

如果傳入不合法的值,將會被0代替

mysql資料型別分析 mysql資料型別選擇分析

1 char varchar text的選擇 原則,最通用的並不是最適合的。因為更改資料型別會耗費很長的時候,在定義的時候需要謹慎 例如存放密碼的md5加密資料,那麼我們就絕對用char 32 因為char使用固定的block,具有更快的偏移速度。例如存放使用者名稱這樣的資料,長的使用者名稱最多也就...

MySQL入門 資料型別

mysql支援多種型別,大致可以分為三類 數值 日期 時間和字串 字元 型別。型別大小 範圍 有符號 範圍 無符號 用途tinyint 1 位元組 128,127 0,255 小整數值 smallint 2 位元組 32 768,32 767 0,65 535 大整數值 mediumint 3 位元...

解釋分析MySQL資料型別

資料庫儲存中的資料型別與大小各異。有些地方只儲存數字型別,有些只儲存文字型別,有些二者而兼之。而很多資料庫支援各種專用型別 日期和時間型別,二進位制字元型別以及布林型別。選擇資料型別與資料相匹配是資料庫設計中最為重要的部分,因為這種型別將會影響到rdbms的效率與效能。所以,對rdbms的資料型別選...