一:整型資料tinyint:1 byte
smallint 2 byte
mediumint: 3 byte
int: 4 byte
big: 8 byte
這裡詳解tinyint,其他幾種和它的用法類似。
tinyint 無符號表示範圍:0-255,有符號表示範圍:-128-127
1、 三個修飾的可選屬性:tinyint(m) unsigned zerofill
(m):寬度(在0填充時才有意義)
unsigned:無符號(要是不寫,預設是有符號的)eg:age tinyint unsigned
zerofill:0填充(預設無符號)
2、當不填充資料時,推薦使用設定預設值。因為不設定時,沒資料時會預設null,但null不好
比較(比較null的語句為select x is null。返回值1表示是)。eg:not null default 0
3、新增乙個新列
// 新增age列到表msg中,列是tinyint型,5位0填充,預設值為0
eg: alter table msg add age tinyint(5) zerofill not null default 0;
二:小數型資料
float(m, d) 浮點型小數
decimal(m, d) 定點型小數
m:表示小數的總位數,不包括小數點
d:小數的位數
eg:float(6, 2) 表示數的範圍為:-9999.99 —— +9999.99
float(6, 2) unsigned 表示範圍為: 0.00 —— +9999.99(與整型的無符號表示有點區別)
float和deciaml的區別在於,後者表示的資料更精確。
eg: alter table msg add age float(6, 2) zerofill not null default 0.0;
這裡要注意一下,0填充為:000.00 加小數點一共6位。
三:字元型資料
char 定長字串char(m) 0
<= m <=255
varchar 變長字串varchar(m)0
<= m <=65535
text 文字串text 存2萬到6萬個字元
char與varchar的區別:
1、儲存範圍不同
上面的m代表存放字元的個數,如char(8)表示可以存放8個字元(注意:'a','王',
前者佔乙個位元組,後者佔兩個位元組,但都只算乙個字元)。varchar與char有點區別,
它最多存放65535個位元組的資料,由於乙個utf8資料佔3個位元組,因此存放utf8的字元
大約是兩萬個,這就是text為什麼存放資料為2萬到6萬。
2、空間利用率不同
char是定長的:申請m個空間,實存n個空間,當nvarchar是變長的:申請m個空間,實存n個空間,當n(2byte用來表示實際儲存長度)
3、對末尾空格的處理不同
我們知道,char當實際儲存空間小於申請空間時,剩下的空間用空格填充。
因此當資料的末尾是空格時,char型儲存會把空格當填充資料處理
因此會導致資料的丟失。varchar就不會出現這種情況。
4、定長的char型雖然有時候浪費空間,儲存、讀取速度快。
text是文字型別,可以存比較大的文字段,但收索速度較慢,如果文字不是特別長
建議用char或者varchar代替還有就是text不用加預設值,加了也沒用。
四:時間型別:
1、year型別:典型格式:1994表示範圍:1901——2155 注意:0000表示錯誤的選擇
當輸入兩位數時:00——69表示:2023年到2023年
70——99表示:2023年到2023年
2、date型別:典型格式:1949-10-01表示範圍:1000-01-01——9999-12-31
3、time型別:典型格式:12:12:12表示範圍:-838:59:59——+838:59:59
4、datetime型別:典型格式:1949-10-01 12:12:12
表示範圍:1000-01-01 00:00:00 —— 9999-12-31 23:59:59
時間戳:表示1970-01-01 00:00:00 到當前時刻的秒數。
datetime型別表示時間雖然便於我們觀察,但不便於計算機的運算,因此一般儲存註冊時間、
商品發布時間等使用int來記錄時間戳,這樣既便於計算機運算,又便於轉換成易於觀察的格式。
小知識點:
1、在一條語句前面加入#號表示,該行為注釋。eg: #時間型別:
2、關於enum列舉型別。它是字元型別中的一種,但不太符合資料庫的設計原則
eg:// 插入時資料要麼為'男', 要麼為'女'
create table gender(
gender enum('男', '女')
);// 正確(注意插入時不加列選項,表示插入所有列)
insert into gender
values
('男');
// 錯誤
insert into gender
values
('王');
mysql資料型別用法 mysql資料型別和用法
歡迎進入linux社群論壇,與200萬技術人員互動交流 進入 mysql支援多種列型別 數值型別 日期 時間型別和字串 字元 型別。本章首先對這些列型別進行了概述,然後更加詳細地描述了各種列的型別,以及列型別儲存需求的總結。概述很簡單。關於具體列型別 歡迎進入linux社群論壇,與200萬技術人員互...
mysql 資料型別 真假 MySQL 資料型別
mysql基礎 資料型別 整型型別 根據所儲存的整數數值取值範圍不同,可分為以下五類 1 tinyint佔1個位元組 2 smallint佔2個位元組 3 mediumint 佔3個位元組 4 int佔4個位元組 5 bigint佔8個位元組 根據每種型別所佔的位元組數可確定其無符號整數和有符號整數...
mysql 郵箱 資料型別 mysql 資料型別
1 整型mysql資料型別含義 有符號 tinyint m 1個位元組 範圍 128 127 smallint m 2個位元組 範圍 32768 32767 mediumint m 3個位元組 範圍 8388608 8388607 int m 4個位元組 範圍 2147483648 21474836...