mysql欄位型別如何選用

2021-08-19 22:05:45 字數 3508 閱讀 2654

mysql支援多種型別,常用的主要有三類:數值、日期/時間和字串(字元)型別。

型別大小

範圍(有符號)

範圍(無符號)

用途tinyint

1 位元組

(-128,127)

(0,255)

小整數值

smallint

2 位元組

(-32 768,32 767)

(0,65 535)

大整數值

mediumint

3 位元組

(-8 388 608,8 388 607)

(0,16 777 215)

大整數值

int或integer

4 位元組

(-2 147 483 648,2 147 483 647)

(0,4 294 967 295)

大整數值

bigint

8 位元組

(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)

(0,18 446 744 073 709 551 615)

極大整數值

float

4 位元組

(-3.402 823 466 e+38,-1.175 494 351 e-38),0,(1.175 494 351 e-38,3.402 823 466 351 e+38)

0,(1.175 494 351 e-38,3.402 823 466 e+38)

單精度 浮點數值

double

8 位元組

(-1.797 693 134 862 315 7 e+308,-2.225 073 858 507 201 4 e-308),0,(2.225 073 858 507 201 4 e-308,1.797 693 134 862 315 7 e+308)

0,(2.225 073 858 507 201 4 e-308,1.797 693 134 862 315 7 e+308)

雙精度 浮點數值

decimal

使用二進位制格式儲存

decima

值,具體依賴於m和d的大小

依賴於m和d的值

依賴於m和d的值

小數值1、選用哪種型別

2、著重說下bigint(m) m的含義

bigint(m) 這個m代表顯示寬度,整數列的顯示寬度與mysql需要用多少個字元來顯示該列數值,與該整數需要的儲存空間的大小都沒有關係,比如,不管設定了顯示寬度是多少個字元,bigint都要占用8個位元組。

個人認為:超出範圍的m是沒有意義的 比如tinyint最大值(127,255)為3,tinyint(4)並沒有什麼意義

3、 decimal

m是表示有效數字數的精度。m範圍為1〜65。

d是表示小數點後的位數。 d的範圍是0~30。mysql要求d小於或等於(<=)m。

mysql分別為整數和小數部分分配儲存空間。 mysql使用二進位制格式儲存decimal值。它將9位數字包裝成4個位元組。

對於每個部分,需要4個位元組來儲存9位數的每個倍數。剩餘數字所需的儲存如下表所示

剩餘數字

位元組

0

0

1–2

1

3–4

2

5–6

3

7-9

4

例如,decimal(19,9)對於小數部分具有9位數字,對於整數部分具有19位= 10位數字,小數部分需要4個位元組。 整數部分對於前9位數字需要4個位元組,1個剩餘位元組需要1個位元組。decimal(19,9)列總共需要9個位元組。

字串型別指char、varchar、binary、varbinary、blob、text

型別大小

用途char

0-255位元組

定長字串

varchar

0-65535 位元組

變長字串

tinyblob

0-255位元組

不超過 255 個字元的二進位制字串

tinytext

0-255位元組

短文本字串

blob

0-65 535位元組

二進位制形式的長文字資料

text

0-65 535位元組

長文字資料

mediumblob

0-16 777 215位元組

二進位制形式的中等長度文字資料

mediumtext

0-16 777 215位元組

中等長度文字資料

longblob

0-4 294 967 295位元組

二進位制形式的極大文字資料

longtext

0-4 294 967 295位元組

極大文字資料

1、char和varchar的區別

2、

varchar和text、blob型別的區別

型別大小 (位元組)

範圍格式

用途date

31000-01-01/9999-12-31

yyyy-mm-dd

日期值time

3'-838:59:59'/'838:59:59'

hh:mm:ss

時間值或持續時間

year

11901/2155

yyyy

年份值datetime

81000-01-01 00:00:00/9999-12-31 23:59:59

yyyy-mm-dd hh:mm:ss

混合日期和時間值

timestamp

41970-01-01 00:00:00/2038

結束時間是第 2147483647 秒,北京時間 2038-1-19 11:14:07,格林尼治時間 2023年1月19日 凌晨 03:14:07

yyyymmdd hhmmss

混合日期和時間值,時間戳

mysql選擇字段 mysql欄位型別如何選擇

本文主要和大家分享mysql欄位型別如何選擇。希望能幫助到大家。盡量少的佔據儲存空間 整型 時間型別 選擇準確的型別 型別含義time 時分秒 datetime 年月日 時分秒 year 年份 date 年月日 timestamp 時間戳 1970 1 1到現在經歷的秒數 資料的整合最好固定長度 c...

mysql欄位型別解析 MySQL欄位型別最全解析

前言 要了解乙個資料庫,我們必須了解其支援的資料型別。mysql 支援大量的字段型別,其中常用的也有很多。前面文章我們也講過 int 及 varchar 型別的用法,但一直沒有全面講過字段型別,本篇文章我們將把字段型別一網打盡,講一講常用字段型別的用法。常用的字段型別大致可以分為數值型別 字串型別 ...

mysql密碼字段型別 MySQL欄位型別最全解析

前言 要了解乙個資料庫,我們必須了解其支援的資料型別。mysql 支援大量的字段型別,其中常用的也有很多。前面文章我們也講過 int 及 varchar 型別的用法,但一直沒有全面講過字段型別,本篇文章我們將把字段型別一網打盡,講一講常用字段型別的用法。常用的字段型別大致可以分為 數值型別 字串型別...