mysql的資料型別

2021-06-06 16:41:23 字數 3919 閱讀 9384

mysql的增刪改查

mysql中的資料型別

1,整形

tinyint   1  位元組

smallint  2  位元組

mediumint 3  位元組

int       4  位元組

bigint    8  位元組

表示數字的時候分無符號和有符號型

以  tinyint 為例

tinyint(m) unsigned zerofill

m: 寬度(在0填充的時候才有意義)

unsigned: 無符號型別(非負)

zerofill: 0填充,(預設無符號)

建class 表

create  table class

(name varchar(6) ,

id  tinyint

);tinyint 的用法

tinyint(m) unsighed zerofill  

乙個tinyint型別站8位即乙個位元組

有符號時 tinyint的範圍為  -128-127   無符號時為0-255

insert into  class 

(name,id) 

values 

('zhangsan',128);  --出錯

insert into class 

(name,id) 

values 

('zhang',127);  --執行通過

insert into class

(name,id)

values

('lisi',-129);  --出錯

insert into class

(name,id)

values

('lisi',-128); --通過   這就測試了範圍了

--下面再定義無符號型

--先新增一列

alter table class add score tinyint unsigned

insert into class

(name,id,score)

values

('wangw',102,-1);  --失敗

insert into class

(name,id,score)

values

('wangw',102,0);  --成功

insert into class

(name,id,score)

values

('zhao',112,256);  --失敗

insert into class

(name,id,score)

values

('zhao',112,255);  --成功

--所以無符號型的範圍為  0--255

--下面是zerofill的用法 

其中的m是和zerofill連用的

m是顯示效果 表示顯示資訊的寬度  不足之處用0填充  

alter table class add id2 tinyint zerofill   --當設定了0填充時,那麼一定是無符號的

insert into class

(name,id2)

values

('wang',2);  --結果為 002  因為沒有指定寬度  所以預設了是3個,不足之處用0填充

--當然也可以指定寬度

alter table class add id3 tinyint(4) zerofill

insert into class

(name,id3)

values

('wang',2);  --結果為  0002  這裡的m值不影響數值的表示範圍  僅僅是改變顯示效果

其他整形的用法與tinyint的型別的是一樣的  

2  浮點型

float(m,d)

decimal(m,d)  更精確

m: 精度 資料的總位數  包含小數  但不包含小數點

d: 標度  小數點位數

在class插入一列 score2

alter table class add score2 float(5,2); 

insert into class

(name,score2)

values

('zhou',96.3);  顯示結果  96.30  可知 小數為不足的地方用0填充

insert into class

(name,score2)

values

('li',196.3);

再加入一列

alter table class add score3 decimal(5,2);

insert into class

(name,score2)

values

('fan',96.356);

insert into class

(name,score3)

values

('fan',96.356);

3,字元型

char( )  varchar ( )

char 是定長字元型

varchar 是變長字元型

char在定義時的長度固定不變

如 char(5)  則在插入行時  為該列分配了5個字元的長度(英文本母是乙個字元乙個位元組 如

果是漢字的話乙個字元就要占用三個位元組 因此漢字的字元數是不英文的少的)

而  varchar(5) 該列最大字元長度為5  在實際分配時,所在空間是實際的大小  ,但不能超

過5  

4 時間日期型

year 1個位元組  表示1901-2155 【0000表示錯誤時候的選擇】

如果輸入2為 '00-69'表示 2000-2069  

『70-99』  表示 1970-1999   最好用四位  

date  典型的格式是  1996-04-23   這是日期型別   

範圍為  『1000-01-01』- 9999-12-31

time   時間型別  典型格式  hh:mm:ss  

範圍為  -838.59.59 -- +838.59.59

datetime 日期時間型別  

格式為1955-12-02 15:25:14

範圍 為  1000-01-01 00:00:00--9999-12-31 23:59:59

舉幾個例子

增加出生日期

alter table class add born year;

insert into class 

(name,born)

values

('huang',1988);

alter table class add born2 date;

insert into class 

(name,born2)

values

('huanj','2010-04-23');

alter table class add begin time;

insert into class 

(name,begin)

values

('wa','14:30:00');

alter table class add born3 datetime;

insert into class 

(name,born3)

values

('lih','2012-03-02 14:30:00');

有時候dos視窗太小  不能顯示  可以在進入mysql之前   用如下命令曾寬dos視窗    mode 

con cols=150

【時間戳】

有時候算兩個時間的間隔 則要用到時間戳   用 int來儲存

數值為  當前時間到 1970-01-01 00:00:00的秒數

一般存的是商品發布時間  註冊時間

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...