型別
範圍(無符號)
大小範圍(有符號)
用途tinyint
(0,255)
1位元組(-128,127)
小整數值
smallint
(0,65 535)
2位元組(-32 768,32 767)
大整數值
mediumint
(0,16 777 215)
3位元組(-8 388 608,8 388 607)
大整數值
int或integer
(0,4 294 967 295)
4位元組(-2 147 483 648,2 147 483 647)
大整數值
bigint
(0,18 446 744 073 709 551 615)
8位元組(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)
極大整數值
名稱解釋
顯示格式
yyyy-mm-dd
顯示範圍
1601-01-01 到 9999-01-01
應用場景
當業務需求中只需要精確到天時,可以用這個時間格式
後台取值
@jsonfield(format=」yyyy-mm-dd」)
名稱解釋
顯示格式
yyyy-mm-dd hh:mm:ss
顯示範圍
1601-01-01 00:00:00 到 9999-12-31 23:59:59
應用場景
當業務需求中需要精確到秒時,可以用這個時間格式
後台取值
@jsonfield(format=」yyyy-mm-dd hh:mm:ss」)
名稱解釋
顯示格式
yyyy-mm-dd hh:mm:ss
顯示範圍
1601-01-01 00:00:00 到 9999-12-31 23:59:59
應用場景
當業務需求中需要精確到秒或者毫秒時,或者該系統用於不同時區,可以用這個時間格式
後台取值
@jsonfield(format=」yyyy-mm-dd hh:mm:ss:sss」)(這裡只會精確到秒)
名稱解釋
顯示格式
hh:mm:ss
顯示範圍
00:00:00 到 23:59:59
應用場景
當業務需求中只需要每天的時間,可以用這個時間格式
後台取值
@jsonfield(format=」hh:mm」)(這裡是只精確到分,資料庫存的也就是只精確到分,比如 09:36:00,如果需要精確到秒。需要使用@jsonfield(format=」hh:mm:ss」))
1、精度:datetime和timestamp都可以精確到毫秒(我目前使用的5.5的mysql,所以只能精確到秒,據說高版本的可以用timestamp(3)與 datetime(3)精確到毫秒。),但是用的很少,一般精確到毫秒都是用timestamp,2、datetime和timestamp最大的區別只是用的場景不同,如果你的應用 是用於不同時區(就是國內和國外同時使用),這時候如果用datetime就會出現各種各樣的問題,但是如果使用timestamp就不會出現這種時差的問題。
型別範圍
說明char(n) [ binary]
n=1~255 個位元組 binary :分辨大小寫
固定長度
std_name cahr(32) not null
varchar(n) [binary]
n=1~255 個位元組 binary :分辨大小寫
可變長度
std_address varchar(256)
tinyblob
最大長度255個位元組(2^8-1)
blob (binary large objects)儲存二進位資料,且有分大小寫
memo text not null
tinytext
最大長度255個位元組(2^8-1)
blob
最大長度65535個位元組(2^16-1)
text
最大長度65535個位元組(2^16-1)
mediumblob
最大長度 16777215 個位元組(2^24-1)
mediumtext
最大長度 16777215 個位元組(2^24-1
longblob
最大長度4294967295個位元組 (2^32-1)
longtext
最大長度4294967295個位元組 (2^32-1)
enum
集合最大數目為65535
列舉(enumeration),enum單選、set複選
*** enum(1,0) habby set(『玩電玩』,'睡覺』,'看電影』,'聽**』)
set集合最大數目為64
同上辨別null與not null :null為允許儲存空值(null)
在my sql 中varchar定義的長度的單位是字元,哪怕是1個多位元組字元也是1個字元,如中文和英文本母都被當作1個字元來對待。
空值是一種特殊的狀態, 表示某乙個字段"沒有被處理過"幾乎在所有的資料庫中甚至是程式語言中, 空與非空都有其存在的意義, 舉個例子, 乙個人員表中, 有乙個年齡字段, 這個年齡字段如果為非 空, 則在不知道人員年齡的情況下, 資料無法入庫, 否則會顯示個奇怪的年齡(比如0歲, 或者-1歲等)而有些情況澤不可以為空, 最常見的就是"主鍵", 比如身份證號之類的
mysql欄位設計 書 資料庫字段設計
一 上下架欄位 很多產品都有上下架的需求,比如商品管理,廣告管理,圖書管理等等。一般我們都用乙個狀態字段來表示他的狀態來,不同的狀態下我們可以進行不同的業務操作。但有時候真實的狀態又與時間有關。某時間到了就上架,某時間到了就要下架。如果我們只用乙個狀態字段來表示狀態,那麼我們就需設計乙個定時任務,每...
資料庫設計 資料庫設計之欄位冗餘
學過資料庫設計的同學都知道,資料庫設計有三大正規化,但是在實際工作中,三大正規化很難被嚴格的執行。本文將給大家介紹一種常見的 違反正規化的資料庫設計方案 字段冗餘1 經典示例先來看乙個經典的例子,在一些 系統裡,要顯示已購買的訂單,一般會顯示訂單號 下單時間 訂單金額 商品名稱等,如下圖。正常我們如...
資料庫冗餘字段設計作用
在設計資料庫時,某一字段屬於乙個表,但它又同時出現在另乙個或多個表,且完全等同於它在其本來所屬表的意義表示,那麼這個字段就是乙個冗餘字段,外來鍵除外 以上是我自己給出的定義 冗餘欄位的存在到底是好還是壞呢?這是乙個不好說的問題。可能在有人看來,這是乙個很蹩腳的資料庫設計。因為在資料庫設計領域,有乙個...