1. 程式人生 > >5.4 數據庫數據類型

5.4 數據庫數據類型

ron 形式 data val 字符串 字段 pan 枚舉類 col

數字(默認是有符號的)

整型:

  tinyint(小整型):一個字節

  int(整型):  四個字節。註意:int的 寬度指的是顯示的寬度,與存儲無關

有符號: -21474836482147483647
無符號:04294967295

  bigint(大整形):八個字節

有符號:-92233720368547758089223372036854775807
無符號: 018446744073709551615

小數:

  float:在位數比較短的情況下不精準(**** 數值越大,越不準確 ****)

  double:在位數比較長的情況下不精準(**** 數值越大,越不準確 ****)

  decimal:如果是小數,則推薦使用decimal

      因為精準,內部原理是以字符串的形式去存


最後:  整形類型,其實沒有必要指定顯示寬度,使用默認的就ok

字符

char:

  固定長度,不夠就用空格湊夠固定長度存放起來,
  浪費空間,但是存儲速度快



varchar:

  不固定長度,
計算出待存放數據的長度,
  精準,節省空間,存取速度慢
 

日期

datetime:

  2017-09-06 10:30:22

date:

  2017-09-06

time:

  10:30:22

year:

  2017

timeatamp:

  和datatime是一樣的,就是支持的範圍datatime的大

枚舉與集合

使用場景:

  單選框,多選框

enum枚舉:

  規定一個範圍:這個範圍可以有多個,但是為該字段傳值時,只能取規定範圍內的其中一個

  enum如果你不傳值,默認是第一個值,或者為NUll

set集合:

  規定一個範圍:這個範圍可以有多個,但是為該字段傳值時,可以取規定範圍內的一個或多個

----------枚舉和集合-----------
create table stu1(
id int primary key auto_increment,
name char(5),

sex enum(
male,female),   #enum 代表枚舉類型 hobbies
set(eat,play,study,coding)   #set 代表集合類型 );
insert into stu1(name,sex,hobbies) values(haiyan,none,dsfdg);

select * from stu1;    #如果設置了sex是枚舉類型,就的從設定的裏面選其中的一個存 insert into stu1(name,sex,hobbies) values(haiyan,female,play,study); select * from stu1;    #如果設置了hobbies是集合類型,就得從設定的裏面選其中一個或者多個值來存

5.4 數據庫數據類型