[轉]分析MySQL資料類型的長度【mysql資料欄位 中length和decimals的作用!熟悉mysql必看】

來源:互聯網
上載者:User

標籤:截取   hive   文章   pac   mat   範圍   schema   bar   重做   

你看到的這個文章來自於http://www.cnblogs.com/ayanmw

轉載自:http://blog.csdn.net/daydreamingboy/article/details/6310907

 

分析MySQL資料類型的長度

      MySQL有幾種資料類型可以限制類型的"長度",有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、FLOAT(Length, Decimals)、DOUBLE(Length, Decimals)和DECIMAL(Length, Decimals)。

      然而,這些資料類型的長度,並不是都指資料的大小。具體說就是:
(1)CHAR、VARCAHR的長度是指字元的長度,例如CHAR[3]則只能放字串"123",如果插入資料"1234",則從高位截取,變為"123"。 VARCAHR同理。

(2)TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT的長度,其實和資料的大小無關!Length指的是顯示寬度,舉個例子:

mysql> create table test(id int(3) zerofill);Query OK, 0 rows affected (0.09 sec)mysql> insert into test(id) values(1),(1234);Query OK, 2 rows affected (0.06 sec)Records: 2  Duplicates: 0  Warnings: 0mysql> select * from test;+------+| id   |+------+|  001 || 1234 |+------+2 rows in set (0.00 sec)

 

 

可以看出,id的顯示寬度為3,不足的左邊補0,資料長度超過的則原樣輸出。如果沒有zerofill,則看不出顯示寬度,沒有前置字元為零。

(3)FLOAT、DOUBLE和DECIMAL的長度指的是全部數位(包括小數點後面的),例如DECIMAL(4,1)指的是全部位元為4,小數點後1位,如果插入1234,則查詢的資料是999.9。過程如下

 

mysql> alter table test add realnum decimal(4,1);Query OK, 2 rows affected (0.03 sec)Records: 2  Duplicates: 0  Warnings: 0mysql> insert into test(id,realnum) values(2,1234);Query OK, 1 row affected, 1 warning (0.05 sec)mysql> select * from test;+------+---------+| id   | realnum |+------+---------+|  001 |    NULL || 1234 |    NULL ||  002 |   999.9 |+------+---------+3 rows in set (0.02 sec)

 

附錄 常見MySQL資料類型(留作備忘)

 

類 型

大 小

描 述

CAHR(Length)

Length位元組

定長欄位,長度為0~255個字元

VARCHAR(Length)

String長度+1位元組或String長度+2位元組

變長欄位,長度為0~65 535個字元

TINYTEXT

String長度+1位元組

字串,最大長度為255個字元

TEXT

String長度+2位元組

字串,最大長度為65 535個字元

MEDIUMINT

String長度+3位元組

字串,最大長度為16 777 215個字元

LONGTEXT

String長度+4位元組

字串,最大長度為4 294 967 295個字元

TINYINT(Length)

1位元組

範圍:-128~127,或者0~255(無符號)

SMALLINT(Length)

2位元組

範圍:-32 768~32 767,或者0~65 535(無符號)

MEDIUMINT(Length)

3位元組

範圍:-8 388 608~8 388 607,或者0~16 777 215(無符號)

INT(Length)

4位元組

範圍:-2 147 483 648~2 147 483 647,或者0~4 294 967 295(無符號)

BIGINT(Length)

8位元組

範圍:-9 223 372 036 854 775 808~9 223 372 036 854 775 807,或者0~18 446 744 073 709 551 615(無符號)

FLOAT(Length, Decimals)

4位元組

具有浮動小數點的較小的數

DOUBLE(Length, Decimals)

8位元組

具有浮動小數點的較大的數

DECIMAL(Length, Decimals)

Length+1位元組或Length+2位元組

儲存為字串的DOUBLE,允許固定的小數點

DATE

3位元組

採用YYYY-MM-DD格式

DATETIME

8位元組

採用YYYY-MM-DD HH:MM:SS格式

TIMESTAMP

4位元組

採用YYYYMMDDHHMMSS格式;可接受的範圍終止於2037年

TIME

3位元組

採用HH:MM:SS格式

ENUM

1或2位元組

Enumeration(枚舉)的簡寫,這意味著每一列都可以具有多個可能的值之一

SET

1、2、3、4或8位元組

與ENUM一樣,只不過每一列都可以具有多個可能的值

 

 

參考資料:http://blog.csdn.net/reanimation1/archive/2008/08/26/2833327.aspx

 

 

mysql查看錶的結構的mysql語句為:

 

mysql查看錶結構命令,如下:desc 表名;show columns from 表名;describe 表名;show create table 表名;use information_schema;select * from columns where table_name=‘表名‘;順便記下:show databases; --顯示資料庫列表use 資料庫名;         --設定為當前工作資料庫show tables;         --顯示當前工作資料庫 下的表 列表原有一unique索引AK_PAS_Name(PAC_Name)在表tb_webparamcounter中,執行以下sql修改索引alter table tb_webparamcounter drop index AK_PAS_Name;alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name);若發現索引的邏輯不對,還需要再加一個欄位進去,執行alter table tb_webparamcounter drop index AK_PAS_Name;alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name,PAC_Value);注意:這時的PC_ID,PAC_Name,PAC_Value三個欄位不是FOREIGN KEY否則必需先drop FOREIGN KEY,再重做上一步才行順便提下oracleselect * from v$database;select * from all_users;select * from user_tables;

 

 

轉載請註明出處:http://www.cnblogs.com/ayanmw 我會很高興的!

[轉]分析MySQL資料類型的長度【mysql資料欄位 中length和decimals的作用!熟悉mysql必看】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.