1. 程式人生 > >【MySQL】資料型別&時間戳&主鍵&外來鍵&索引

【MySQL】資料型別&時間戳&主鍵&外來鍵&索引

一、資料表的建立

示例:


二、MySQL資料型別

1. 整數型別BIT、BOOL、TINYINT、SMALLINT、MEDIUMINT、 INT、 BIGINT

MySQL資料型別

含義(有符號)

tinyint(m)

1個位元組範圍(-128~127)

smallint(m)

2個位元組範圍(-32768~32767)

mediumint(m)

3個位元組範圍(-8388608~8388607)

int(m)

4個位元組範圍(-2147483648~2147483647)

bigint(m)

8個位元組範圍(+-9.22*1018次方

)

【1】取值範圍如果加了unsigned,則最大值翻倍,如tinyint unsigned的取值範圍為(0~256)


【2】int(m)裡的m是表示SELECT查詢結果集中的顯示寬度,並不影響實際的取值範圍

2. 浮點數型別FLOAT、DOUBLE、DECIMAL

MySQL資料型別

含義

float(m,d)

單精度浮點型    8位精度(4位元組)     m總個數,d小數位

double(m,d)

雙精度浮點型    16位精度(8位元組)    m總個數,d小數位

【1】設一個欄位定義為float(5,3),如果插入一個數123.45678,實際資料庫裡存的是123.457,但總個數還以實際為準,即6位

【2】浮點型在資料庫中存放的是近似值,而定點型別在資料庫中存放的是精確值,decimal(m,d) 引數m<65 是總個數,d<30且 d<m 是小數位

3. 字串型別CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB

MySQL資料型別

含義

char(n)

固定長度,最多255個字元

varchar(n)

固定長度,最多65535個字元

tinytext

可變長度,最多255個字元

text

可變長度,最多65535

個字元

mediumtext

可變長度,最多224次方-1個字元

longtext

可變長度,最多232次方-1個字元

【1】char(n) 若存入字元數小於n,則以空格補於其後,查詢之時再將空格去掉。所以char型別儲存的字串末尾不能有空格,varchar不限於此

【2】char(n) 固定長度,char(4)不管是存入幾個字元,都將佔用4個位元組,varchar是存入的實際字元數+1個位元組(n<=255)或2個位元組(n>255),所以varchar(4),存入3個字元將佔用4個位元組

【3】char型別的字串檢索速度要比varchar型別的快

4. 日期時間型別Date、DateTime、TimeStamp、Time、Year

MySQL資料型別

含義

date

日期 '2008-12-2'

time

時間 '12:25:36'

datetime

日期時間 '2008-12-2 22:06:44'

timestamp

自動儲存記錄修改時間

【1】若定義一個欄位為timestamp,這個欄位裡的時間資料會隨其他欄位修改的時候自動重新整理,所以這個資料型別的欄位可以存放這條記錄最後被修改的時間

【2】時間戳:資料庫中有許多場合都使用時間戳的方式表示時間,即從1970年1月1日起至當前的天數或秒數

5. 其他型別BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection等

6. 資料型別的屬性

MySQL關鍵字

含義

NULL

資料列可包含NULL

NOT NULL

資料列不允許包含NULL

DEFAULT

預設值

PRIMARY KEY

主鍵

AUTO_INCREMENT

自動遞增,適用於整數型別

UNSIGNED

無符號

CHARACTER SET name

指定一個字符集

7. 參考連結

三、主鍵(PRIMARY KEY) &外來鍵(FOREIGN KEY) &索引(INDEX)

1. 主鍵、外來鍵、索引、唯一索引

2. 索引方法:B-Tree索引、Hash索引

3. 外來鍵的定義與使用