MySQL資料庫操作4-資料類型

來源:互聯網
上載者:User

標籤:style   blog   http   color   ar   使用   sp   檔案   資料   

整型資料:

1.tinyint,

2.smallint,

3.mediumint,

4.int,

5.bigint。

 

建表聲明的時候我們發現有這樣聲明:

create table main_t (    tiny_id tinyint(12),    small_id smallint(12),    meidum_id mediumint(12),    int_id int(12),    big_t bigint(12));

 

裡面括弧中的12是限制資料的寬度,但是不影響顯示,主要限制在:

1.顯示寬度是在終端下資料顯示的寬度,但是如果資料沒超過類型表示範圍而超過了顯示寬度,仍然可以完全顯示出來。

2.不影響記憶體,就是寬度無論是多少,記憶體配置永遠不變,譬如Int是4個位元組,即使用了100個顯示寬度,也是4個位元組。

 

外注意在不指定顯示寬度的時候系統會使用預設寬度。

 

浮點數和定點數:

1.float,

2.double,

3.decimal。

 

此處decimal是定點數類型,聲明的時候需要聲明精度M和標度D(小數位元),儲存位元組數與M有關,是M+2個位元組。定點數預設是(10,0),浮點數可以不用括弧來聲明精度等。

下面聲明:

create table float_t(    n1 float(5,1),    n2 double(5,1),    n3 decimal(5,1));

 

插入資料:

insert into float_t values(5.12,5.12,5.123);

此時會發現在插入decimal資料的時候出現警告。

 

因是:

在浮點數據插入時,如果精度不滿足會自動進行4舍5入,

在定點數插入時,如果精度不滿足而進行類型轉換會產生警告,(只是警告,不是錯誤)。

注意:

1.一般浮點數容易產生精度問題,在需要精密儲存的資料上最好使用定點數,如貨幣,科學資料,

2.浮點是計算也容易產生精度問題,一般不用浮點數做減法和進行比較。

 

日期和時間:

1.datetime(YYYY-MM-DD HH:MM:SS),

2.date(YYYY-MM-DD),

3.timestamp(YYYY-MM-DD HH:MM:SS),

4.time(HH:MM:SS),

5.year(YYYY)。

 

括弧內的是日期和時間的格式。

注意:

year以四位字串或是4位元字表示1901-2155,2位字串或數字表示,00-69表示2000-2069,70-99表示1970-1999,一個位元組儲存。

time表示的時候如果輸入無意義的時間會自動轉換為00:00:00。

使用NOW()函數可以將系統時間插入資料中:

效果:

同樣可以看出的是,時間戳記的預設值就是當前系統時間。

關於時間的使用介紹起來很複雜,我還是選擇根據用途瞭解。

 

字串:

char(M)   ,固定長度非二進位字串,M在1-255之前,佔用M位元組,

varchar(M) , 變長字串,L+1位元組,L<M,

tinytext,極小字串 ,L+1位元組,

text,小字串,L+2,

mediumtext ,中小字串,L+3,

longtext,大字串,L+4,

以上L不盡相同。

enum,枚舉,

set,集合。

 

於定長字串char,在右側的空格被忽略,

變長字串varchar,會在字串後加結束字元,

text用於儲存大段文本,譬如文章和評論,

 

enum需要提供枚舉值,如:

欄位 enum(值1,值2,…),

從1開始編號方便訪問,因此插入時可以使用編號訪問這些字串值,

 

set需要提供一系列值,在插入的時候會對不在這些值中的值進行錯誤警告,且會合并插入中重複的值,還會按照提供的值的順序排列插入值。

 

二進位類型:

1.bit,

2.binary,

3.varbinary,

4.tinybinary,

5.blob,

6.mediumblob,

7.longblob。

 

bit(M)會按照M位儲存,

binary和varbinary儲存二進位字串,

blob等用來儲存大型位元據。同樣可以儲存二進位字串,不含字元集。一般用於儲存圖片,音頻資訊等二進位檔案。

 

於類型選擇最佳化方面有講,應當有一個比較常用的標準,今後使用的時候可以自己體會,或是找一些項目看看。

MySQL資料庫操作4-資料類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.